Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JMeter无法使GET HTTP请求工作,在PostMan中工作正常_Jmeter_Jmeter 5.0 - Fatal编程技术网

JMeter无法使GET HTTP请求工作,在PostMan中工作正常

JMeter无法使GET HTTP请求工作,在PostMan中工作正常,jmeter,jmeter-5.0,Jmeter,Jmeter 5.0,我正在尝试通过JMeter执行GET HTTPS请求。它是一个简单的请求,内容类型为application/json,并带有一个auth令牌。现在由于未知的原因,它在Postman中工作得非常完美,没有任何问题,但在JMeter中我得到了一个错误 我是JMeter的新手,所以我只能假设我只是设置了一些错误的东西 我正在发送的HTTP请求是: https://www.server.com/api/userinfo?fields=['id'] 在postman中,我得到了一个200响应和预期的

我正在尝试通过JMeter执行GET HTTPS请求。它是一个简单的请求,内容类型为application/json,并带有一个auth令牌。现在由于未知的原因,它在Postman中工作得非常完美,没有任何问题,但在JMeter中我得到了一个错误

我是JMeter的新手,所以我只能假设我只是设置了一些错误的东西

我正在发送的HTTP请求是:

 https://www.server.com/api/userinfo?fields=['id'] 
在postman中,我得到了一个200响应和预期的JSON响应。 然而,在JMeter中,它给了我一个错误:

Could not parse fields query. Must be valid JSON.
我试图通过从路径中删除?字段=['id'],而不是在参数区域中设置它们,来搞乱JMeter中的'send parameters with the request'选项,但这给了我完全相同的400错误响应代码


另外,如果我使用SendParameters部分,并且查看请求,它似乎没有使用我设置的参数。所以我回到了直接在URL路径中传递参数的问题。

解决了::问题是JMeter不喜欢在路径字段中使用双引号。你可以用%22来代替双引号。这解决了通过路径传递参数时未收到错误的问题

  • 将采样器添加到测试计划中
  • 配置如下:

  • 您可能还需要添加为请求的子级,并将其配置为发送相关的头
  • 可以使用查看结果树侦听器验证发送的数据:



    还请注意,您可以通过使用

    记录请求来轻松地从Postman创建JMeter测试。错误表明请求不是正确的JSON(正如您指定的
    content-type:application/JSON
    )。你能分享API作为请求参数的确切期望吗?它期望一个参数'fields',它的值是我想要返回的属性列表。具体地说,我希望返回用户id,因此我要传递参数?fields=['id']。如果我通过路径发送参数,它会给出上面提到的关于它必须是有效JSON的错误。如果我试图通过“随请求发送参数”部分发送参数,据我所知,该参数根本没有被发送,并给我一个错误,即字段参数丢失。演示如何在Postman中提交更多困惑:在Postman中,如果我对[“id”]使用双引号,它会起作用。如果我使用single,我会得到相同的“必须是有效的json”错误。然而,在JMeter中,如果我使用双引号,它会给我一个错误,即我使用了非法字符。@user7294900在Postman中,我发送的请求与我原来的帖子完全相同,只是我使用了双引号。在JMeter中,双引号为非法字符提供了一个错误。至于它的价值,我仍然不知道为什么JMeter不会发送我在HTTP请求的参数部分输入的任何内容。。如果有人知道这方面的信息,那就太棒了。如果我使用“随请求发送参数”UI部分输入参数,它们不会传递到HTTP请求。这是通过检查请求中的HTTP选项卡来验证的。如果我通过路径传递参数,它们将被传递到HTTP请求。通过查看请求中的HTTP选项卡也验证了这一点。据我所知,JMeter的那个部分根本不起作用,所有参数都需要从路径中传递。