我在这里绝对是菜鸟(我的意思是JAVA),花了几个小时寻找解决方案,现在我只想开枪。
我想在 beanshell 断言中创建一个字符串,它位于 HTTP 请求的正上方。
在豆壳中,我写道:
String docid="abcd";
(实际上我希望将一个字符串与一些变量连接起来)
在 HTTP 请求中,发送我添加的参数
${docid}
。
在BeanShell 断言描述部分中,您可以找到以下内容:
vars - JMeterVariables - e.g. vars.get("VAR1"); vars.put("VAR2","value"); vars.putObject("OBJ1",new Object());
props - JMeterProperties (class java.util.Properties) - e.g. props.get("START.HMS"); props.put("PROP1","1234");
因此,要在 beanshell 代码中设置 jmeter 变量(在您的情况下为 BeanShell 断言采样器),请使用以下命令:
String docid = "abcd";
vars.put("docid",docid);
或者干脆
vars.put("docid","abcd");
然后您可以将其称为 ${docid},就像您在 HTTP 请求中所做的那样。
如果您不太了解 Java,您可以使用 BSF 或 JSR223 测试元素中的任何一个,然后选择 Javascript 语言作为脚本语言
http://jmeter.apache.org/usermanual/component_reference.html#JSR223_Sampler
如果您需要将值从一个 bean shell 采样器传递到另一个,您应该使用变量。
vars.put("a", "something")
在其他采样器中,您应该具有以下内容:
String otherSampler = vars.get("a")
关于调试 Shell 采样器 - 这并不容易。我建议使用 SampleResult 对象。如何使用,可以看这里Debugging Bean Shell Sampler