【问题标题】:JMeter HTTP Request failedJMeter HTTP 请求失败
【发布时间】:2019-02-08 14:08:54
【问题描述】:

我对 JMeter 真的很陌生。正如我在一些视频中看到的那样,我正在尝试做一个简单的测试。当我尝试运行简单测试时,结果树中出现错误。它说:响应代码:非 HTTP 响应代码。 我在 stackoverflow 上看到了很多东西,但没有出现任何错误。 如果这是一个重复的问题,真的很抱歉,但我没有找到任何适合我的案例的解决方案。

这是我想要做的:

【问题讨论】:

  • 您的请求下没有标头管理器?尝试使用 HTTP(S) 测试脚本记录器从浏览器记录 google url

标签: testing jmeter automated-tests performance-testing


【解决方案1】:

请不要将性能测试工具指向您不拥有、管理或控制的网站,也不要获得拥有这些角色的人的许可。您的 GOOGLE 最终用户协议特别禁止在其接口上使用自动化工具,只有支持的接口用于自动化发布的 Web 服务 API。

性能测试工具相当于战术核软件。它们旨在对目标施加最大压力,直至并包括破坏其继续运行的能力。将这种类型的任何工具指向您不拥有或未获准瞄准的地点,这与从穿过社区的皮卡后面随机向房屋投掷炸弹没有什么不同。我最近没有通过 Jmeter 许可,但所有商业性能测试工具都禁止在许可下进行此活动。

下载一个 GNU 应用程序,自行安装,然后进行测试。我可以推荐 SugarCRM

【讨论】:

  • 也许是因为我在工作中限制了对网站的访问?但我可以访问 google.com
  • 这里存在道德问题。当您同意使用网站时,包括限制,您应该遵守它们。您使用的工具也是如此 - 我不喜欢许多许可限制,但我严格遵守它们。为什么有人会接受来自愿意违反许可和协议的测试人员的测试结果?在我自己的组织中,将不再允许这样的测试人员担任该角色。您在未经他人许可的情况下将他人的工作置于负载之下。坏魔法。
【解决方案2】:

should not be load testing web sites you don't own without explicit permissions of these website owners

所以我的期望是:

  1. 您应该停止向 google.com 发送请求。考虑使用您自己的 Web 应用程序或专为这种实践形式设计的网站,例如 http://blazedemo.com/http://www.newtours.demoaut.com/。如果您所指的教程假设现实生活中的网站 - 我不会非常信任本教程。
  2. 您在 Google 端或ISP 端或router / firewall 可能具有自动欺诈行为检测和预防逻辑被阻止

【讨论】:

    【解决方案3】:

    您的配置适合我。请尝试服务器地址 www.google.com。 调用 google.com 时会发出两个请求:

    1. 第一个请求“GET http://google.com/”返回 HTTP 301 Moved Permanently。 First Request when calling google.com
    2. 以下请求“GET http://www.google.com/”返回 HTTP 200 Second Request when calling google.com

    当您调用 www.google.com 时,不会返回 301: Request with www result in only one request

    确保您的网络连接正常。

    【讨论】:

    【解决方案4】:

    如果您查看响应消息,您可能会注意到错误原因:“连接超时:连接”。

    您的连接时间接近 21 秒,然后您收到超时。 这是默认的 TCP 连接超时(请参阅Where does the socket timeout of 21000 ms come from?)。

    我建议检查与运行 JMeter 的主机的网络连接。

    【讨论】:

      【解决方案5】:

      我刚刚浏览了图像的采样器结果选项卡。我想这不是您的 Jmeter 配置的问题。如果您查看采样器结果,它看起来像这样。

      Load time: 21074
      Connect Time: 21074
      Latency: 0
      Size in bytes: 2723
      Sent bytes:0
      Headers size in bytes: 0
      Body size in bytes: 2723
      Sample Count: 1
      Error Count: 1
      Data type ("text"|"bin"|""): text
      Response code: Non HTTP response code: 
      Response message: Non HTTP response message:  google.com:80 ... connection timeout
      
      
      HTTPSampleResult fields:
      ContentType: 
      DataEncoding: null
      

      如果您查看 加载时间连接时间,它们都超过 27 秒,并且两者具有相同的值。那么 Sent bytes 值和 Headers size in bytes0响应消息说这是一个连接超时

      查看这些结果,Jmeter 似乎尝试建立连接 27 秒,然后超时而未发送任何请求。这就是发送字节值为 0 的原因。

      由于响应显示连接到 google.com:80,我怀疑这是由于代理问题或可能是由于连接速度慢。

      作为解决方案,首先检查您的代理连接是否在端口 80 上。如果是,请尝试删除代理并再次运行测试。如果没有检查网络连接速度。您的脚本没有问题。

      祝你好运

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-07
        • 2014-11-19
        • 2016-12-17
        • 1970-01-01
        相关资源
        最近更新 更多