无法从使用 locustio 执行 post 的 API 获得 200 响应
Can't get a 200 response from an API performing a post using the locustio
我正在使用 Locust 来尝试执行负载测试。我无法从我们正在使用的 API 获得良好的 (200) 响应。它不断地给我一个:
{
"message": "Invalid API key",
"status": 400
}
但是,使用我在 Postman 中用于 Locust 的相同信息会生成正确的响应。 post 是一个跨站点 post,因此它不会转到为蝗虫定义的主机。我已经用 Redacted 替换了所有敏感信息。那我做错了什么?任何帮助表示赞赏。
代码示例:
targetURL = 'https://Redacted, name=https:Redacted'
searchBody1 = {"params": "facets=%5B%22Property%20Type%22%2C%22amenities.Property%20Amenities%22%2C%22amenities.Suitability%22%2C%22amenities.Area%20Activities%22%2C%22Bedrooms%22%2C%22Total%20Beds%22%2C%22Bathrooms%22%5D&hitsPerPage=0"}
searchHeader1 = {'Host': 'Redacted',
'Connection': 'keep-alive',
'Content-Length': '223',
'accept': 'application/json',
'Origin': 'Redacted',
'User-Agent': 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G930U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36',
'content-type': 'application/x-www-form-urlencoded',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'cors',
'Referer': 'Redacted',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'en-US,en;q=0.9'}
response = self.client.post(url=targetURL, json=searchBody1, headers=searchHeader1, catch_response=True)
您正在将 url 参数设置为“https://Redacted, name=https:Redacted”。 Python 不会像您假设的那样将其扩展为两个不同的参数。
您应该在调用 post() 时将名称指定为独立参数,如下所示:
self.client.post(url='https://Redacted', name='your_short_name', ...)
我正在使用 Locust 来尝试执行负载测试。我无法从我们正在使用的 API 获得良好的 (200) 响应。它不断地给我一个:
{
"message": "Invalid API key",
"status": 400
}
但是,使用我在 Postman 中用于 Locust 的相同信息会生成正确的响应。 post 是一个跨站点 post,因此它不会转到为蝗虫定义的主机。我已经用 Redacted 替换了所有敏感信息。那我做错了什么?任何帮助表示赞赏。
代码示例:
targetURL = 'https://Redacted, name=https:Redacted'
searchBody1 = {"params": "facets=%5B%22Property%20Type%22%2C%22amenities.Property%20Amenities%22%2C%22amenities.Suitability%22%2C%22amenities.Area%20Activities%22%2C%22Bedrooms%22%2C%22Total%20Beds%22%2C%22Bathrooms%22%5D&hitsPerPage=0"}
searchHeader1 = {'Host': 'Redacted',
'Connection': 'keep-alive',
'Content-Length': '223',
'accept': 'application/json',
'Origin': 'Redacted',
'User-Agent': 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G930U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.93 Mobile Safari/537.36',
'content-type': 'application/x-www-form-urlencoded',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'cors',
'Referer': 'Redacted',
'Accept-Encoding': 'gzip, deflate, br',
'Accept-Language': 'en-US,en;q=0.9'}
response = self.client.post(url=targetURL, json=searchBody1, headers=searchHeader1, catch_response=True)
您正在将 url 参数设置为“https://Redacted, name=https:Redacted”。 Python 不会像您假设的那样将其扩展为两个不同的参数。
您应该在调用 post() 时将名称指定为独立参数,如下所示:
self.client.post(url='https://Redacted', name='your_short_name', ...)