我正在使用 Locust(它使用 Requests)来进行页面加载测试。该页面有一个弹出窗口,要求用户名和密码访问该页面,并且有一个标准登录页面。
我client.auth
第一次使用身份验证(在弹出窗口上)打开页面并在 POST 请求中发送数据以登录帐户。
问题是蝗虫从不显示失败,即使我跳过了第二次身份验证。换句话说,如果我进行 client.auth 身份验证,我可以获取任何页面(甚至是需要身份验证的页面,并且我跳过了第二次身份验证)并且 Locust 不会显示 401 错误。所以我在这里做错了。
这是我正在使用的代码:
class UserBehavior(TaskSet):
def on_start(self):
self.login()
def login(self):
# Set basic auth credentials
if BASIC_AUTH_CREDENTIALS:
self.client.auth = BASIC_AUTH_CREDENTIALS
headers = {
'referer': 'http://myreferer.com'
}
data = {
'username': 'John',
'password': 'Doe',
'csrfmiddlewaretoken': '123456712345671234567'
}
r = self.client.post('/login', data=data, headers=headers)
@task
def progress(self):
self.client.get("/needed/authorization")
我想要的是测量当许多用户尝试加载页面时加载页面所需的时间。我有几个页面可以测量,一个加载速度快,另一个加载速度慢得多,但测试显示两者的值相同。我认为 Locust 的模拟用户每次都会被重定向到登录页面,因此他们具有相同的响应时间并且不会报告 401 或 404 或任何错误。
请帮助我正确地做到这一点。