Java类字段,Beanshell中的对象使用

我将Java与JSF和Beanshell脚本一起使用。我想在beanshell中使用Java类的字段和对象。我已经尽力从Google寻求帮助,但是找不到任何有用的信息。例如

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import bsh.EvalError;

import bsh.Interpreter;

public class C {

static Map<String,Object> map = new HashMap<String,Object>();

static List<String> list = new ArrayList<String>();

static Map<String,Integer> integerMap = new HashMap<String,Integer>();

public static void main(String[] arg) throws EvalError{

list.add("Hello");

list.add("World");

Interpreter i = new Interpreter(); // Construct an interpreter

map.put("stringList", list);//in java

i.eval("map.put(\"stringList\", list)");// gives error

List list = (List) map.get("stringList");

for(String str:(List<String>)list){

System.out.println(str);

}

}

}

我想执行所有可用于在Java中收集到beanshell中的同一对象的操作。

Jmeter提供了这样的功能,用户可以在beanshell中更新变量,并根据链接上给出的详细信息,似乎Jmeter正在使用字符串映射,我想做同样的事情,但它是针对对象的。

如果您可以使用Java中的任何技术或框架来满足我的要求,那么我将不胜感激。

回答:

在JMeter的Beanshell或更好的JSR223 Sampler(Java语言)中,您可以将对象放在JMeter变量中,如下所示:

JMeterVariables vars = JMeterContextService.getContext().getVariables();

vars.putObject("stringList", stringList);

并获得:

vars.getObject("stringList");

在Java一般情况下,您需要向Beanshell Interpreterwith set方法添加变量:

    list.add("Hello");

list.add("World");

Interpreter i = new Interpreter(); // Construct an interpreter

map.put("stringList", list);//in java

try {

i.set("map", map);

i.set("list", list);

System.out.println(i.eval("map.put(\"stringList\", list)"));

} catch (EvalError e1) {

e1.printStackTrace();

}

以上是 Java类字段,Beanshell中的对象使用 的全部内容, 来源链接: utcz.com/qa/409477.html

回到顶部