Testing 将jmeter聚合报告信息获取到变量中

Testing 将jmeter聚合报告信息获取到变量中,testing,load,reporting,jmeter,Testing,Load,Reporting,Jmeter,我正在使用jmeter对web应用程序运行一系列测试,这些应用程序主要是由Jboss托管的web服务,很快将成为Tomcat 大多数测试都是自动运行的,我通常会将结果写入报告数据库 我试图找到一种方法来获取分配给变量的聚合报告中显示的信息(平均值、中值、最大值等) 如果我能将这些值转换成变量,我就可以将它们写入我的报告数据库和/或使用它们执行计算 聚合报告提供的正是我想要的信息,但如果我能成功,我不想手动将数据移动到报告系统。最简单的方法是配置聚合报告以将输出写入文件。测试完成后,您应该能够按如

我正在使用jmeter对web应用程序运行一系列测试,这些应用程序主要是由Jboss托管的web服务,很快将成为Tomcat

大多数测试都是自动运行的,我通常会将结果写入报告数据库

我试图找到一种方法来获取分配给变量的聚合报告中显示的信息(平均值、中值、最大值等)

如果我能将这些值转换成变量,我就可以将它们写入我的报告数据库和/或使用它们执行计算


聚合报告提供的正是我想要的信息,但如果我能成功,我不想手动将数据移动到报告系统。

最简单的方法是配置聚合报告以将输出写入文件。测试完成后,您应该能够按如下方式将数据加载到数据库(MS SQL示例)

如果您想要更大的灵活性,我建议使用JSR223后处理器和Groovy作为语言来获取之前的采样器细节

有一个预定义变量名为
prev
,它代表类-请参阅可用方法中的链接JavaDoc。您可以提取所需的值并将其存储到JMeter变量,如:

vars.put("StartTime", String.valueOf(prev.getStartTime()));
然后根据需要处理变量

选择JSR223而不是Javascript、BSF、Beanshell的原因是,在Groovy语言和编译缓存启用的情况下,JSR223采样器的性能几乎等同于本机Java代码


我找到了一种方法。使用放置在我想要监视的每个采样器之后的BSF侦听器,我可以使用以下代码theTime=sampleResult.getTime()
timestring=time.toString()
vars.put(“report.loginTime”,时间字符串);这给了我上一个样本完成所需的时间(以毫秒为单位),我可以在我的报告系统中记录所有这些,然后自己计算中位数和平均值。我意识到可能有一个更优雅的解决方案,一个真正的程序员可能在一行中完成所有这些,但我尽我所能。这看起来像是一种“重新发明轮子”。使用命令行调用:jmeter-hp.bat-n-t%1.jmx-l%2.jtl-l选项创建一个jtl文件,其中包含每个示例所需的大部分数据。可以通过jmeter.properties文件控制输出格式。看一看:和
vars.put("StartTime", String.valueOf(prev.getStartTime()));