在 运行 代理后面的 Jmeter 脚本时收到错误代码 307

Receiving Error Code 307 while running Jmeter scripts behind proxy

我必须在移动应用程序上进行 PT。 录制是在个人笔记本电脑上完成的,我们没有遇到任何问题。

但是,当我们将 PT 脚本传输到测试网络时,我们每次 运行 都会遇到以下错误:-

样本结果错误:-

响应代码:307 响应消息:需要身份验证

回应headers: HTTP/1.1 307 需要身份验证 日期:2015 年 10 月 19 日星期一 09:53:21 GMT Proxy-Connection: 关闭 通过:1.1 localhost.localdomain Cache-Control: no-store Content-Type: text/html Content-Language: zh

响应数据错误:-

需要身份验证

请帮助我们,因为我们提供结果的时间非常有限。

  1. 如果您在代理后面使用 运行 JMeter,您可以通过命令行参数传递凭据,例如:

    -H, --proxyHost <argument>
        Set a proxy server for JMeter to use
    -P, --proxyPort <argument>
        Set proxy server port for JMeter to use
    -N, --nonProxyHosts <argument>
        Set nonproxy host list (e.g. *.apache.org|localhost)
    -u, --username <argument>
        Set username for proxy server that JMeter is to use
    -a, --password <argument>
    

    请参阅 Full list of command-line options 了解其他可能有用的键

  2. 可能是内部应用程序正在测试身份验证挑战,例如它期望某些HTTP Header or Cookie。检查它的最简单方法是再次记录相同的操作并检查 2 个 JMX 文件是否有任何差异。如果它们是 - 它们需要相互关联。

经过几轮头脑风暴,我找到了解决方案。 只需确保将 HTTP 请求实现设置为 "JAVA" 并将 "Redirect Automatically" 设置为签入。

脚本将 运行 仅用于此组合。