使用 JMeter 时出现 503 HTTP 错误,但网页在浏览器上加载正常

Posted

技术标签:

【中文标题】使用 JMeter 时出现 503 HTTP 错误,但网页在浏览器上加载正常【英文标题】:I am getting a 503 HTTP error when using JMeter, but web page loads on browser just fine 【发布时间】:2017-12-22 11:08:13 【问题描述】:

我正在使用 JMeter 3.2 版在具有 HTTPS 协议的页面上执行负载测试,我收到 503 HTTP 响应代码。 另一方面,当我在浏览器上键入 URL 时,页面被加载。 使用 Chrome 浏览器我可以看到请求的结果:

result of the request

页面已显示。我的问题是我在 JMeter 脚本上使用 HTTP 响应代码来评估响应代码。

首先,有谁知道为什么即使我可以看到页面,我也会收到 503 响应代码? 其次,我该如何克服这个问题来正确完成 Jmeter 脚本?

谢谢。 马科斯

【问题讨论】:

【参考方案1】:

这是您在网站上可能没有的图标。

当您在浏览器中输入网站时,它也可能发生。

浏览器搜索 favicon 以显示类似于移动应用程序的网站小图标。可以看cisco答案:

浏览器会在 URL 的左侧显示一个图标。这被称为 'favicon.ico',通常从 website.com/favicon.ico 获取。 您的浏览器会在浏览到不同的地方时自动请求它 网站

【讨论】:

你知道为什么请求图标吗? 见***.com/questions/1321878/…【参考方案2】:

如果嵌入资源之一无法加载,JMeter 将自动使父采样器失败。这是正常的默认行为,您拥有HTTP Status Code 503 的事实表明您的应用程序中存在错误。

至少有两种解决方法:

    使用HTTP Request Defaults 过滤掉“favicon”请求。在“高级”选项卡上应该有“URLs must match”部分,可用于excluding certain domains from your load test,相关的正则表达式类似于:

    ^((?!favicon).ico)*$ 
    

    Configuring JMeter 用于在嵌入资源出现错误时不失败。将下一行添加到 user.properties 文件(位于 JMeter 的“bin”文件夹中)

    httpsampler.ignore_failed_embedded_resources=true
    

    需要重新启动 JMeter 才能获取该属性。

【讨论】:

【参考方案3】:

实际上,您通常会收到 200 条回复。 503 响应仅针对请求的资源“favicon.ico”我不知道那是什么,但看起来该页面的所有其他请求都返回 200。我猜 favicon.ico 是 ui 的一些默认图像或其他东西?

【讨论】:

这是个谜,因为网页源代码没有 favicon.ico。

以上是关于使用 JMeter 时出现 503 HTTP 错误,但网页在浏览器上加载正常的主要内容,如果未能解决你的问题,请参考以下文章

从我的 Java 程序访问 URL 时出现 HTTP 503 错误 [重复]

谷歌机器人在索引我的网站时出现 503 错误

尝试连接到新环境时出现 503 错误

使用 Jmeter 5.0 测试基于桌面的应用程序时出现 HTTP 采样器设置错误

检查服务器状态时出现 Elasticsearch 503 错误

AFNetworking 2.0:多部分 POST 时出现错误 503