有没有可能让Locust传递一个带有安全令牌的头部命令来对API进行负载测试?
我正在尝试为编码器测试我们的API,其中包含一个带有令牌的标头标志,因为被测试的服务器必须接收请求中的令牌,即:
curl -H "Authorization: Token token string" http://someserver
有没有可能让Locust传递一个带有安全令牌的头部命令来对API进行负载测试?
我正在尝试为编码器测试我们的API,其中包含一个带有令牌的标头标志,因为被测试的服务器必须接收请求中的令牌,即:
curl -H "Authorization: Token token string" http://someserver
是的,您可以使用:
token_string = "token string"
resp = self.client.post(
url="http://someserver",
data=json.dumps(data),
auth=None,
headers={"authorization": "Token " + token_string},
name="http://someserver",
)
此外,如果您希望为每个请求使用相同的标题,您还可以在on_start
方法中将它们设置给客户端。这些标题将自动用于每个客户端请求。
class User(HttpUser):
def on_start(self):
self.client.headers = {'Authorization': 'my-auth-token'}
@task
def my_authenticated_task(self):
self.client.post('enspoint') # this will use headers we set earlier
class User(HttpUser):
host = 'http://127.0.0.1:8000'
@task
def predict_post(self):
self.client.post("/route/", data=json.dumps({
"text": "finish all the track to hear and great good tune u do a great job alan walker",
"max_op_words": 10,
"max_time": 1,
"max_predictions": 1
}),auth=None,
headers={"authtoken":"your-auth-token", 'content-type': 'application/json'})
self.client.get(uri, headers={"Authorization": "Token token string"})
应该可行。 - enderlandauth
字段,例如auth=("username", "password")
,并将headers
字段保持为None
。 - Matt Doyle