问题描述
社区。 p>
我需要由不同工作人员创建的用户不能重复。即如果 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作为标识符。