无法在 JMeter 中看到响应主体,查看结果树侦听器

Unable to see Response Body in JMeter, View Results Tree listener

当我 运行 一个 Http 请求时,到一个应该 return 响应主体的页面(我知道它有效,因为我已经在 Postman 中尝试过)。当我执行采样器时,它会发送一个 200 OK 代码,但 查看结果树 侦听器中的响应主体为空。为什么会这样?

我使用MAC OS,我用Brew安装了JMeter。我已经尝试在 user.properties 文件中添加以下信息:

jmeter.save.saveservice.output_format=xml
jmeter.save.saveservice.response_data=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.responseHeaders=true

看起来像这样:

您所做的更改不会对 View Results Tree 侦听器输出产生任何影响,它们仅适用于 .jtl 结果文件。

尝试以下操作:

  1. Run your JMeter test in command-line non-GUI mode 喜欢

    jmeter -n -t test.jmx -l result.xml
    

    并打开 result.xml 包含您喜欢的文本或 XML viewer/editor 的文件。您应该会看到如下内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <testResults version="1.2">
        <httpSample t="93" it="0" lt="93" ct="42" ts="1568029799118" s="true" lb="HTTP Request" rc="200" rm="OK" tn="Thread Group 1-1" dt="text" by="759" sby="139" ng="1" na="1">
            <responseData class="java.lang.String">{
                &quot;userId&quot;: 1,
                &quot;id&quot;: 1,
                &quot;title&quot;: &quot;delectus aut autem&quot;,
                &quot;completed&quot;: false
                }</responseData>
            <java.net.URL>http://jsonplaceholder.typicode.com/todos/1</java.net.URL>
        </httpSample>
    
    </testResults>
    

    其中 responseData 标记包含 XML-escaped response data. If there is some data in the file - most probably something is wrong with your JMeter installation, try re-installing it by downloading JMeter from the official website,因为 Brew 包可能已损坏。

  2. 检查jmeter.log file contents,如果出现任何问题,JMeter 通常会将结果写入日志消息。

我确实遇到了这个问题,最终的答案是使用 Java 版本 9,或者在我的情况下是 Java 版本 8。这解决了问题,我现在可以查看响应 body 和响应 headers。

我发现您没有在“查看结果树”面板中加载生成的 *.jtl 文件。您应该浏览并打开该文件,然后您就可以看到结果。请记住,您必须添加监听器,运行 非 GUI 模式下的测试一次,然后 *.jtl 文件将包含结果。在这里打开它们:

而且我认为没有显示正确的结果。