distributed - 在分布式模式下,蝗虫可以知道其他工作人员是否已经为特定用户运行任务
问题描述
社区。
我需要不同工作人员创建的用户不会被复制。即如果worker_1创建用户fake1并为该用户运行任务,worker_2必须不能创建用户fake1。
目前它仅在独立模式下工作。
credentials = [ (f"fake{i}", 'password') for i in range(100) ]
class MobileUser(HttpUser):
tasks = [RealTimeTask]
wait_time = constant_pacing(1)
def __init__(self, parent):
super().__init__(parent)
if len(credentials) > 0:
shuffle(credentials)
self.username, self.password = credentials.pop()
解决方案
并不真地。奴隶们幸福地不知道彼此。
我认为您最好的选择是在工作人员开始时设置一个环境变量:
WORKER_ID=1 locust --worker ...
(然后插入os.env['WORKER_ID']
您的用户名以使其唯一)
每个工作人员都有一个唯一的 id(可以从使用 的任务中访问self.environment.runner.client_id
),但它们不是有序的(它们包含主机名 + UUID),所以我不知道这是否真的对你有帮助。
另一种选择可能是使用主机名 + 进程 ID 作为标识符。
推荐阅读
- jenkins - 将环境变量从 Jenkins 文件传递到具有管道即代码的共享库
- java - 遍历字符串。搜索特殊字符。使用正则表达式
- python - 错误:AttributeError:“NoneType”对象没有属性“strip”
- markdown - Liquid 异常:Liquid 语法错误(第 170 行):xyz 中用于降价代码块的未知标签“elif”
- api - Keycloak API 是否包含任何评估指定资源的用户权限的方法?
- python - 如何在 Python 中适当地实现无限 while 循环?
- sql - 如何根据前一行创建列?
- python - Python - 比较excel文件
- c++ - 如何将工厂方法中的有效指针返回到基于底层操作系统的派生类
- sql - SparkSQL 查询数据框