Locust POST 请求以一种格式而不是另一种格式工作
Locust POST Request working in one format and not another
在我们的 Locust 脚本中,我们遵循 self.client.post 的标准化格式。在这种格式下,我无法使这个 post 请求生效:
loginCreds = {"data":{"email":"email@email.net","password":"password"}}
string=json.dumps(loginCreds)
with self.client.post("/apis/authentication/login", name=f'login-{self.client.userrole} || /apis/authentication/login', data=string, headers=auth_headers, catch_response=True) as r:
我尝试使用不同的格式,但它确实适用于相同的请求:
loginCreds = {"data":{"email":"email@email.net","password":"password"}}
string=json.dumps(loginCreds)
requests.post("https://xyz.xyz.com//apis/authentication/login", data=string, headers=auth_headers)
在第一种格式的情况下,完整的 URL 是从 headers 传递的,我可以看到它正在尝试找到正确的地址。在第二种格式中,它无法从 headers 中提取它,我添加了它。不过这好像不是问题所在
我收到的错误是:
错误请求
您的浏览器发送了该服务器无法理解的请求。
我认为这与 loginCreds 数据的传递方式有关。在 self.client.post 格式中我们应该做些什么来让它正确通过?
我要尝试的第一件事是将完整的 URL 放在 self.client.post
中,而不仅仅是路线。就像您为 requests.post
.
做的那样
您还可以获得final request info from the response object。用它来比较实际发送的内容。
loginCreds = {"data":{"email":"email@email.net","password":"password"}}
string=json.dumps(loginCreds)
r = self.client.post("/apis/authentication/login", name=f'login-{self.client.userrole} || /apis/authentication/login', data=string, headers=auth_headers)
print(r.request.url)
print(r.request.headers)
print(r.request.body)
在我们的 Locust 脚本中,我们遵循 self.client.post 的标准化格式。在这种格式下,我无法使这个 post 请求生效:
loginCreds = {"data":{"email":"email@email.net","password":"password"}}
string=json.dumps(loginCreds)
with self.client.post("/apis/authentication/login", name=f'login-{self.client.userrole} || /apis/authentication/login', data=string, headers=auth_headers, catch_response=True) as r:
我尝试使用不同的格式,但它确实适用于相同的请求:
loginCreds = {"data":{"email":"email@email.net","password":"password"}}
string=json.dumps(loginCreds)
requests.post("https://xyz.xyz.com//apis/authentication/login", data=string, headers=auth_headers)
在第一种格式的情况下,完整的 URL 是从 headers 传递的,我可以看到它正在尝试找到正确的地址。在第二种格式中,它无法从 headers 中提取它,我添加了它。不过这好像不是问题所在
我收到的错误是: 错误请求
您的浏览器发送了该服务器无法理解的请求。
我认为这与 loginCreds 数据的传递方式有关。在 self.client.post 格式中我们应该做些什么来让它正确通过?
我要尝试的第一件事是将完整的 URL 放在 self.client.post
中,而不仅仅是路线。就像您为 requests.post
.
您还可以获得final request info from the response object。用它来比较实际发送的内容。
loginCreds = {"data":{"email":"email@email.net","password":"password"}}
string=json.dumps(loginCreds)
r = self.client.post("/apis/authentication/login", name=f'login-{self.client.userrole} || /apis/authentication/login', data=string, headers=auth_headers)
print(r.request.url)
print(r.request.headers)
print(r.request.body)