从 groovy 传递 jmeter 采样器结果

Jef*_*aer 5 groovy jmeter

我是 JMeter 的新手,正在尝试编写一些 Groovy 采样器。我无法从脚本代码中找到有关如何与 JMeter 框架进行通信的文档/示例。我希望有人能给我指出一个好的文档起点。

我在 JSR223 采样器中尝试了以下操作

import org.apache.jmeter.samplers.SampleResult;
println(" running test") 
SampleResult sr=new SampleResult();
sr.setResponseCode("300");
sr.setSuccessful(false);
sr.setErrorCount(2);
sr.setResponseData("This is the response");
ResponseCode=300
return sr;
Run Code Online (Sandbox Code Playgroud)

但看起来好像没有任何效果。查看结果树侦听器输出,采样器结果是

Thread Name: Thread Group 1-1
Sample Start: 2016-03-22 17:38:07 CDT
Load time: 12
Connect Time: 0
Latency: 0
Size in bytes: 0
Headers size in bytes: 0
Body size in bytes: 0
Sample Count: 1
Error Count: 0
Response code: 200
Response message: OK
Run Code Online (Sandbox Code Playgroud)

....

Dmi*_*i T 6

那样的话是行不通的。

如果您查看 JSR223 Sampler GUI,您将看到一些预定义的变量,例如:

  • ctx
  • 变量
  • 道具
  • 样本结果
  • ETC。

JSR223 预定义变量

所以你已经有了一个实例化的SampleResult,可以直接使用它,如下所示:

SampleResult.setResponseCode("300");
SampleResult.setSuccessful(false);
SampleResult.setErrorCount(2);
SampleResult.setResponseData("This is the response");
Run Code Online (Sandbox Code Playgroud)

有关使用 groovy 脚本和脚本编写最佳实践的更多信息,请查看Beanshell 与 JSR223 与 Java JMeter 脚本编写:您一直在等待的性能下降!指导。

  • 明白了,我不应该导入 SampleResult。那么静态方法就不会出现错误 (2认同)