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

donly · 2018年01月31日 · 最后由 回复于 2019年05月14日 · 5503 次阅读

如题,设置了 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

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册