0


关于在JMeter保存数据的办法

关于在JMeter压测期间保存数据的办法

性能测试人员经常遇到需要将响应数据从请求保存到文件系统的情况,比如

  • 测试的目的就是保存响应数据:常见的就是保存服务器上的文件,一般是显式的下载测试。
  • 共享数据:和开发同事共享/反馈测试结果。
  • 响应太大:如果响应超过200k,我们可能无法在结果树等监听器中看到响应,此时我们可以保存到文件中查看。
  • 调试请求:在非GUI模式下进行性能测试时比较常见,因为在性能测试时无法实时查看JMeter的响应(如HTTP响应)。

本文主要介绍两种常用的可以在压测期间保存 response data 的方法。

使用监听器

用过JMeter的读者可能发现有很多的监听器都有如下这一部分:
在这里插入图片描述

  • ${__TestPlanName}表示测试计划名;
  • Errors:使能表示只保存错误(主要为断言错误)请求的内容;
  • Sample Result Save Configuration 表示需要保存的一些配置项。

这部分包含在 Simple Data Writer、View Results Tree 等监听器中,作用除了将结果实时保存到输入框中指定的路径外,还能从文件(jtl/xml)加载结果。

此外还有一种常见的专用于保存响应的监听器,名字也很直观,叫 Save Responses to a file,如下图所示
在这里插入图片描述

详细配置请通过链接查看,截图表示只保存错误请求,并使用${__TestPlanName}和${__samplerName()}等内置函数区分每一个保存的文件

user.properties

我们还可以用JMeter的properties文件指定的属性来保存响应数据到文件,它也是笔者常用的一种在性能测试中保存数据的方式。

首先我们知道关于JMeter的配置文件在Jmeter.properties文件中(bin目录下),里面的参数非常多,这里我们关注以下几个:

#jmeter.save.saveservice.output_format=csv
#jmeter.save.saveservice.response_data=false
#jmeter.save.saveservice.response_data.on_error=false

这是默认的配置,表示JMeter以csv格式保存测试结果,但不会保存响应的具体内容,更多信息可以查看 Properties Reference。
现在让我们将配置信息修改为以下结果:

#csv格式不支持保存 response_data,因此修改为xml
jmeter.save.saveservice.output_format=xml
#jmeter.save.saveservice.response_data=false
jmeter.save.saveservice.response_data.on_error=true
注意,JMeter最佳实践是将jmeter.properties文件的内容保留,复制想要修改的配置到user.properties中。

通过以上的修改,当我们执行以非GUI模式运行测试时,便可通过

-l <.jtl>

,将错误的响应数据保存到xml格式的文件中,正确的响应不保存。

这种方法的副作用是,当

.jtl

文件保存为xml格式后,将无法通过它生成测试结果报表,而我们不仅需要通过保存的响应数据排查错误原因,也需要结果报表判断 TPS 等曲线趋势,这种情况如何解决?我们在后面再来讨论。

标签: 压力测试 java

本文转载自: https://blog.csdn.net/qq_36314423/article/details/126100290
版权归原作者 麻烦木头 所有, 如有侵权,请联系我们删除。

“关于在JMeter保存数据的办法”的评论:

还没有评论