12

我在这里绝对是菜鸟(我的意思是JAVA),花了几个小时寻找解决方案,现在我只想开枪。
我想在 beanshell 断言中创建一个字符串,它位于 HTTP 请求的正上方。

  • 在豆壳中,我写道:

    String docid="abcd";
    

    (实际上我希望将一个字符串与一些变量连接起来)

  • 在 HTTP 请求中,发送我添加的参数${docid}

4

3 回答 3

24

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 请求中所做的那样。

于 2012-07-26T14:39:32.237 回答
3

如果您不太了解 Java,您可以使用 BSF 或 JSR223 测试元素中的任何一个,然后选择 Javascript 语言作为脚本语言

http://jmeter.apache.org/usermanual/component_reference.html#JSR223_Sampler

于 2012-07-27T07:35:13.210 回答
2

如果您需要将值从一个 bean shell 采样器传递到另一个,您应该使用变量。

vars.put("a", "something")

在其他采样器中,您应该具有以下内容:

String otherSampler = vars.get("a")

关于调试 Shell 采样器 - 这并不容易。我建议使用 SampleResult 对象。如何使用,可以看这里Debugging Bean Shell Sampler

于 2013-11-25T15:51:17.690 回答