【问题标题】:HTTP Status 405 - Request method 'POST' not supported in jmeterHTTP 状态 405 - jmeter 不支持请求方法“POST”
【发布时间】:2016-06-03 05:29:01
【问题描述】:

我已经录制了一个脚本并运行它。但我收到以下错误。

HTTP Status 405 - Request method 'POST' not supported in jmeter

我不确定是脚本问题还是编码问题。 我们的应用程序已安装在 HTTPS 上,但尚未安装安全证书。

谁能帮帮我。

【问题讨论】:

    标签: java jmeter performance-testing


    【解决方案1】:

    可能是以下之一

    • 您请求的端点不支持POST,它可能只支持GET,请将Jmeter中的方法更改为GET或您的url支持的方法
    • 端点可能需要正确的 CSRF 令牌。它可能与您录制的不匹配。所以请从先前请求的响应中提取 CSRF 令牌并使用它。您可以通过 Jmeter 中的 RegEx Extractor 进行操作。

    【讨论】:

    • 我尝试使用 GET 方法,但仍然遇到同样的错误。这次是 HTTP 状态 405 - 不支持请求方法“GET”。实际上我来自测试团队。为了检查代码,开发人员应该在他们的代码中检查哪里(我的意思是任何特定的功能等)?
    • 当你通过浏览器发出同样的请求时,会有什么反应?
    • 我们能够在浏览器中以 200 响应状态启动应用程序。
    • 请检查是否需要发送 CSRF 令牌,出于安全原因,它主要用于所有 POST 请求。这些令牌因每个会话/请求而异(基于实现)。当您记录 csrf 令牌时,可能会有所不同,而当您从 jmeter 中点击时,它可能会有所不同。如果是这种情况,那么您需要从先前请求的响应中获取令牌
    • Cookie 数据:XSRF-TOKEN=6532135e-ec63-4003-a748-a62894e15f53; SESSION=4e130461-f4ab-4288-9796-9f85e6443097 我们在 cookie 数据中获取此值。此令牌编号未出现在任何服务中。
    【解决方案2】:

    JMeter 确实支持 POST 方法,所以可能是由于:

    • 您使用的端点不支持 POST 方法(它需要其他方法,如 GET、PUT、DELETE 等)
    • 您发送的请求配置不正确。

    最常见的原因是缺少相关的Content-Type 标头。您可以使用 HTTP Header Manager 来发送相关的 Content-Type 标头,对于 REST,通常是 application/json,对于 SOAP,通常是 text/xml 或类似的标头。

    有关使用 JMeter 进行 API 测试的更多信息,请参阅 Testing SOAP/REST Web Services Using JMeter 文章。

    您还可以考虑以下方法:

    1. 使用专门的 Web 服务测试工具,例如 SoapUIRESTClient 来触发请求
    2. 使用上述工具或第 3 方嗅探器(如 Wireshark)来捕获请求
    3. 配置 JMeter 以发送完全相同的请求

    【讨论】:

      猜你喜欢
      • 2013-03-03
      • 2016-11-11
      • 2015-06-26
      • 2012-06-24
      • 2015-05-01
      • 2015-04-09
      • 2016-03-29
      • 2014-09-24
      • 1970-01-01
      相关资源
      最近更新 更多