性能测试工具 命令行模式运行 Jmeter 时,到底要怎样设置才能在结果文件中保存请求数据和响应数据呢?

donly · January 31, 2018 · Last by replied at May 14, 2019 · 7172 hits

如题,设置了jmeter.properties,也按照其他人的做法中user.properties中增加了相应的配置,但是结果文件中还是没有存储请求数据和响应数据。是哪里出错了吗??
截图如下:



共收到 18 条回复 时间 点赞

本地调试还是远程调试,希望看到什么样格式的结果文件(jtl还是csv)?

lvqianjob 回复

现在是本地调试

donly 回复

jtl或则csv都可以,能看到sample结果,请求数据和响应数据就可以了。因为目前是做接口测试,所以这些是最关注的。

donly 回复

本地调试,一般GUI下,可以通过View Results Tree可以直接查看。
非GUI模式下:jmeter -n -t [测试脚本.jmx] -l [结果文件.jtl] -e -o [Path to output folder]

注意看 properties文件中的注释文字
# response_data is not currently supported for CSV output
可能会有用😀

lvqianjob 回复

这个命令我知道,也用过,问题是没有保存请求的具体内容和响应的具体内容。。

donly 回复

csv和jtl都试过,都没有响应和请求的具体内容。。。。

加个公共后置beanshell处理器,prev.setDataType("text");原因是响应头中没有content-type,视为Binary数据,我估计配置什么的你都试过了

刚才没仔细看,你这第一个图里都红了,先看看有没有报错日志信息吧;我上一条发的是查看结果树正常,但是保存在jtl文件中没有的情况。。然后你图里查看结果树request显示No data to display 这个估计是用的事务控制器吧。。是正常的,往下点分层

donly 回复

本地调试前,有没有提前建预期结果文件的空文件(例如结果文件期望为result.jtl,再执行调试前建一个该文件),另外可以注意下路径中是不是包含中文,有时候也会因为中文路径的问题报错。
如果这些都试过,在查看结果树里还是看不到结果的话,有可能是response的输出不是太标准,可以考虑加个Log Set BeanShell PostProcessor,然后强制将返回结果写到对应ResponseMessage里试试看看:
prev.setResponseMessage(prev.getResponseDataAsString());

题主自己的查看结果树中怎么设置保存内容的?
如果配置了监听器的话,把.jmx打开,查找一下ResultCollector下面的saveConfig节点,把该节点下面该保存的都设置为true,比如:responseData,samplerData, xml 等等。
因为jmeter 会优先加载 .jmx 文件中的配置,如果 .jmx 中没有ResultCollector的配置,才会使用 .properties 中的配置。所以可能是你 .jmx 中的相关配置没有配好(jmeter GUI导出来的 .jmx 中监听器的默认配置是只保存关键信息,不包含请求数据和返回数据的)。
如果不用命令行运行,而在GUI中直接跑 .jmx 就不会有这个问题。
注意xml节点要选择为true,原因如5楼所说。

楼主解决了吗,我现在搭建在服务器上面,有命令执行也是保存不到jtl结果文件里面

数据保存格式设为xml即可

jmeter.save.saveservice.response_data=true 配置文件里改这个 就能看到响应了。不过你测性能的时候记得关掉

吴远杰 回复

jmeter.save.saveservice.output_format=csv
把csv 改成xml ,csv 不支持

楼主问题解决了吗?我现在用jmeter4.0在linux上运行也遇到类似的问题了

楼主问题解决了吗,遇到同样的问题了

jmeter.property
mode=standy

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up