Python 带请求的双重身份验证

Python 带请求的双重身份验证,python,python-requests,locust,Python,Python Requests,Locust,我正在使用蝗虫(它使用请求)进行页面加载测试。该页面有一个弹出窗口,请求访问该页面的用户名和密码,并且有一个标准登录页面 我正在使用client.auth进行首次身份验证(在弹出窗口中),以打开页面并发送POST请求中的数据以登录帐户 问题是,即使我跳过第二次身份验证,蝗虫也不会显示失败。换句话说,如果我进行client.auth身份验证,我可以获得任何页面(即使是需要进行身份验证的页面,我跳过第二次身份验证),并且蝗虫不会显示401错误。所以我做错了什么 以下是我正在使用的代码: class

我正在使用蝗虫(它使用请求)进行页面加载测试。该页面有一个弹出窗口,请求访问该页面的用户名和密码,并且有一个标准登录页面

我正在使用
client.auth
进行首次身份验证(在弹出窗口中),以打开页面并发送POST请求中的数据以登录帐户

问题是,即使我跳过第二次身份验证,蝗虫也不会显示失败。换句话说,如果我进行client.auth身份验证,我可以获得任何页面(即使是需要进行身份验证的页面,我跳过第二次身份验证),并且蝗虫不会显示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")
我想要测量的是当许多用户尝试加载页面时,加载页面所需的时间。我有两个页面,一个加载速度快,另一个加载速度慢,但是测试显示了两个页面的相同值。我认为蝗虫的模拟用户每次都会被重定向到登录页面,因此他们有相同的响应时间,不会报告401或404,也不会报告任何错误


请帮助我正确执行此操作。

要测试所需的登录页面,您应该在标题中发送登录用户信息(cookie)

class UserBehavior(TaskSet):

cookie = ""

def on_start(self):
    self.cookie = self.get_user_cookie()

def get_user_cookie(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)
    if r.status_code == 200:
        return r.request.headers['Cookie']
    else:
        print "User cannot login"

@task
def progress(self):
    self.client.get("/needed/authorization", headers = {"Cookie": self.cookie})