python - 蝗虫多用户登录
问题描述
我想允许我的 locust 应用程序使用多个用户帐户登录。
我试过 random.shuffle(),但它仍然只有一个帐户。
这是代码:
from locust import HttpUser, task, TaskSet, between, exception, events
import logging
import random
paths_in_dict = {"hard_path": "secure/izar.xhtml/",
"standard_analysis_path": "analysis/STANDARD/",
"smart_analysis_path": "analysis/SMART/"}
passwd = 'radio'
logins = [
'aaa', 'bbb', 'ccc', 'ddd', 'eee'
]
random.shuffle(logins)
login_pass = [(elem, passwd) for elem in logins]
if len(login_pass) > 0:
user, passwd = login_pass.pop()
default_headers = {'X-Username': user, 'X-Password': passwd}
class MyUser(HttpUser):
wait_time = between(5, 9)
host = "https://localhost:9003/"
def on_start(self):
self.client.verify = False
self.login()
def on_stop(self):
pass
def login(self):
self.client.request(method="POST", url="login.xhtml", headers=default_headers,
name="---ON START---LOGIN")
logging.info('Login with %s username and %s password', user, passwd)
# ----------------------------------MAIN LINKS/DROPDOWNS----------------------------------------------
@task
def dashboard(self):
dashboard_get_response = self.client.get(paths_in_dict["hard_path"] + "dashboard", name="Dashboard")
return dashboard_get_response
如何使其适用于登录列表中的所有元素?
解决方案
我已经解决了这个问题。
只是更改random.shuffle(logins)
为random.choice(logins)
并将其与 ...pop() 一起移至登录方法。
推荐阅读
- python - Python CV2根据条件在视频捕获上显示徽标
- css - 如何使 flex 容器缩小到最小的合理尺寸?
- c# - 使用 LINQ 检查字符串是否包含字符串或字符列表
- pandas - 如何在熊猫中对月份和年份进行排序以进行时间序列可视化?
- android - 如何在 ACTION_VIEW 的引用文件上授予 UriPermissions()?
- swift - 当一定数量的报告 Firebase 时删除帖子
- math - SageMath,内核问题
- c++ - 我应该总是在类之外定义一个 constexpr 静态数据成员吗?
- javascript - PHP 中 .toString('binary') 的等价物是什么?
- mysql - 格式化日期sql