【问题标题】:407 authenticationrequired in JMeterJMeter 需要 407 认证
【发布时间】:2020-02-03 08:42:26
【问题描述】:

我在一家使用代理访问任何浏览器网站的公司工作。

我们想用 JMeter 开始 API 测试,但是遇到了一个问题。

例如,每当我尝试将 API 调用添加到 petstore.swagger.io/v2/pet/10 时,并将代理详细信息放入 HTTP 请求的“高级”部分 + 添加 HTTP 授权管理器用户名 + 密码,它仍然给我一个“407 Authenticationrequired”错误。

请求标头:

响应标头:

在我的信息中,代理是“规则集名称:使用 Kerberos 和 NTLM 回退进行身份验证”。

如果我想测试具有任何授权的内部 API,这是一个很大的问题。

【问题讨论】:

  • “我们使用代理来访问任何浏览器网站...使用 Kerberos 进行身份验证” >> 这种代理适用于浏览器(即人类),而不是服务。尤其是对于 Java 的东西。您能否获得许可在您的桌面上安装 proxyfier 实用程序,以弥合 JDumpster 和您的代理之间的差距?我怀疑微软的扩展在混合......
  • 您好,很遗憾,公司不允许我绕过代理。作为一个简单的自动化测试人员,我没有这些权利。我已经看到我可以使用 Jmeter 使用 kerberos 进行身份验证,这会是您认为的解决方案吗?我一直在尝试使用 NTLM 进行身份验证。但即使使用用户/通行证 + 域,我总是会得到 407 回复
  • “proxyfier”不会绕过代理——它会处理无法在本机上执行此操作的应用程序的代理协商。检查维基百科...
  • 我已经安装了proxyfier并设置了proxy+proxy规则。即使这样,我仍然会得到相同的 407 错误。 (我在研究后意识到我的错误,对不起我的不好。)但即使有了它,它仍然不起作用。有什么建议吗?

标签: jmeter ntlm proxy-authentication


【解决方案1】:

HTTP Status code 407 表示需要 proxy 身份验证,您似乎正在使用公司代理来访问被测应用程序,并且此代理需要凭据。

您有 2 个选项将代理凭据传递给 JMeter:

  1. Command-line arguments点赞:

    jmeter -H my.proxy.server -P 8000 -u username -a password
    
  2. JMeter System properties(你可以把这些行放到system.properties文件中

    http.proxyUser=username
    http.proxyPass=password
    

【讨论】:

  • 感谢您的回复,我已在属性文件(以及 http 请求中的代理服务器)中添加了凭据,但仍有 407 状态代码。两者会不会互相冲突?我没主意了。 :)
  • 你重启 JMeter 来获取属性了吗?
  • 是的,我有。甚至多次尝试。仔细检查。
猜你喜欢
  • 2018-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多