403禁止在Jmeter中出现错误,但api在邮递员中可以正常工作

时间:2019-08-26 06:45:04

标签: jmeter postman

我有一个在GET方法中运行的API。在状态为200的邮递员中,它可以正常工作。但是,当我尝试在jmeter中运行API时,会抛出403禁止的错误。我已经配置了调试采样器,并尝试重新运行测试。调试采样器通过200传递,但是http请求仍然失败。

  1. 我已经尝试建立关联,但是即使失败了。
  2. 我从HTTP请求中删除了端口号,但仍然失败。
  3. 我已经添加了授权管理器,并且输入用户名和密码仍然失败。
  4. 脚本中添加了HTTP cookie管理器和缓存管理器。

2 个答案:

答案 0 :(得分:0)

根据HTTP Status Code 403描述

  

HTTP 403禁止的客户端错误状态响应代码表示服务器理解了该请求,但拒绝对其进行授权。

     

此状态类似于401,但是在这种情况下,重新认证不会有任何区别。永久禁止访问并将访问与应用程序逻辑绑定在一起,例如对资源的权限不足。

很可能您在源自Postman和JMeter的请求之间存在不一致之处。

有两种可能的原因:

  1. 您无法正确配置JMeter的HTTP Request采样器。鉴于您的请求在Postman中可以正常工作,您可以尝试使用JMeter的HTTP(S) Test Script Recorder

    进行记录
    • 准备进行记录的JMeter。最简单的方法是使用JMeter Templates Feature

      • 从JMeter的主菜单中选择File -> Templates -> Recording,然后单击“创建”
      • 打开HTTP(S)测试脚本记录器,然后单击“开始”
    • 准备邮递员进行记录。

      • 在“设置”页面上,将代理主机设置为127.0.0.1,并将端口设置为8888

        enter image description here

    • 在邮递员中执行请求

  2. 邮递员使用特定的Authorization标头,无法记录和重放。在Authorization标签中查找该请求,并确定使用了哪个请求-在JMeter中实现相同的请求:

    enter image description here

答案 1 :(得分:0)

状态代码403表示您无权访问它,因此请确保您对GET调用使用正确的授权。