所有请求
我有一个JMeter的脚本,通过一束请求去重复JMeter的正则表达式提取,每个都是不同的,获取,邮政等...所有请求
每个请求从服务器返回一个自定义标题其中有一些数字值。这个头返回它在服务器端的实际处理时间(没有延迟/ http开销)
我能够添加一个正则表达式提取从头获得该值没有任何问题,但是我希望这对所有请求重复。
通过使用调试采样器,我可以看到提取器只运行一次,似乎是最后一个实例。
如何获取运行所有请求并从头文件中收集所有值的提取器。
奖金问题。最后,我希望能够汇总这些值并获得一个平均值。
免责声明:这个其他问题与我的类似,但它没有解释如何根据提取器和调试采样器的位置来实际执行它。
Track results of a regular expression extractor in JMeter
谢谢。
虽然德米特里的答案是这样做的一种方式。但是我想要一些不同的东西,每次将它导出到一个文件并进行后期处理......
我终于实现了这个“手动”
通过手动我的意思是我加了一个BSF断言与语言= JavaScript,然后写了一些JavaScript来做到这一点:
- 拉出值出来的头(如果找到)
- 保持总/计数使用变量
- 的记录更新一个变量,显示在集合总是
- 添加调试采样得到轻松的交流在测试之后等待数值。
以下是我在BSF断言使用的代码:
var responseHeaders = prev.getResponseHeaders();
var xNodetasticRt = /x-nodetastic-rt: (\d+\.?\d*)/.exec(responseHeaders);
if (xNodetasticRt) {
var value = parseFloat(xNodetasticRt[1]);
vars.put("xNodetasticRt", value);
var total = parseFloat(vars.get("xNodetasticRt-Total"));
if (!total) {
total = 0.0;
}
total += value;
vars.put("xNodetasticRt-Total", total);
var count = parseFloat(vars.get("xNodetasticRt-Count"));
if (!count) {
count = 0;
}
count++;
vars.put("xNodetasticRt-Count", count);
vars.put("xNodetasticRt-Average", total/count);
}
只要把在同一水平作为你的HTTP请求取样正则表达式提取,这将适用于所有的人
查看更详细的解释Scoping Rules用户手动输入。
关于价值收集,最好的选择是使用Sample Variables财产。给你你的头值存储到一个变量叫${foo}
你可以得到追加加入下一行到user.properties文件JTL结果文件:
sample_variables=foo
JMeter的重启将被要求挑选财产向上。另一种方式(不需要重新启动)通过-J
命令行参数传递的财产
jmeter -Jsample_variables=foo -n -t test.jmx -l result.jtl
正如你会得到一个额外的列堪称.jtl结果文件foo
的结果,它会举行每个采样器的变量值为${foo}
。完成测试后,您将能够使用MS Excel或同等版本打开.jtl结果文件,并使用AVERAGE函数获取您要查找的值。
请参阅Apache JMeter Properties Customization Guide了解更多关于根据您的需要设置和修改Configuring JMeter的各种JMeter属性的信息。