gpt4 book ai didi

python - 系统打开文件限制导致 Locust 错误

转载 作者:行者123 更新时间:2023-12-04 09:32:34 36 4
gpt4 key购买 nike

我有一个关于 Locust 的问题。我写了一个简单的脚本来检查 Locust 是否工作。它应该检查我是否可以使用电话号码和密码登录到我正在测试的应用程序。我用命令启动它:
locust -f LM.py --host=https://api... <-要登录的api地址

import random, json
from locust import HttpUser, task, between, TaskSet, User


class UserBehavior(User):
def __init__(self, parent):
super(UserBehavior, self).__init__(parent)

self.token = ""
self.headers = {}

def on_start(self):
self.token = self.login()

self.headers = {'Authorization': 'Token ' + self.token}

def login(self):
response = self.client.post("/v1/auth/login", data={'phoneNumber': '+666000666', 'password': 'dupadupa'})


@task
def index(self):
self.client.get("/v1/me/profile", headers=self.headers)



class WebsiteUser(HttpUser):
task_set = UserBehavior
min_wait = 5000
max_wait = 9000
但是当我运行它时,我有:
[2020-07-07 00:39:53,931] DESKTOP-2JQB2EC/WARNING/locust.main: System open file limit setting is not high enough for load testing, and the OS wouldnt allow locust to increase it by itself. See https://docs.locust.io/en/st
able/installation.html#increasing-maximum-number-of-open-files-limit for more info.
[2020-07-07 00:39:53,932] DESKTOP-2JQB2EC/INFO/locust.main: Starting web interface at http://:8089
[2020-07-07 00:39:53,955] DESKTOP-2JQB2EC/INFO/locust.main: Starting Locust 1.1
[2020-07-07 00:40:06,436] DESKTOP-2JQB2EC/INFO/locust.runners: Hatching and swarming 1 users at the rate 1 users/s (0 users already running)...
[2020-07-07 00:40:06,437] DESKTOP-2JQB2EC/INFO/locust.runners: All users hatched: UserBehavior: 1, WebsiteUser: 0 (0 already running)
Traceback (most recent call last):
File "src\\gevent\\greenlet.py", line 854, in gevent._gevent_cgreenlet.Greenlet.run
File "c:\users\warpath\pycharmprojects\locustlm\venv\lib\site-packages\locust\user\users.py", line 164, in run_user
user.run()
File "c:\users\warpath\pycharmprojects\locustlm\venv\lib\site-packages\locust\user\users.py", line 131, in run
self.on_start()
File "C:\Users\Warpath\PycharmProjects\LocustLM\LM.py", line 13, in on_start
self.token = self.login()
File "C:\Users\Warpath\PycharmProjects\LocustLM\LM.py", line 18, in login
response = self.client.post("/v1/auth/login", data={'phoneNumber': '+666000666', 'password': 'dupadupa'})
File "c:\users\warpath\pycharmprojects\locustlm\venv\lib\site-packages\locust\user\users.py", line 16, in __getattr__
raise LocustError("No client instantiated. Did you intend to inherit from HttpUser?")
locust.exception.LocustError: No client instantiated. Did you intend to inherit from HttpUser?
2020-07-06T22:40:06Z <Greenlet at 0x215dca9e048: run_user(<LM.UserBehavior object at 0x00000215DC9F67C8>)> failed with LocustError
有人可以解释我如何处理这个错误吗?

最佳答案

我认为错误来自您使用 User而不是 HttpUserUserBehavior类(class)。见 quickstart .

HttpUser provides self.client for each session: "Here we define a class for the users that we will be simulating. It inherits from HttpUser which gives each user a client attribute, which is an instance of HttpSession, that can be used to make HTTP requests to the target system that we want to load test."


此外,您正在使用 Locust 1.1 和 task_set已被删除。来自 1.0 changelog :

"The task_set attribute on the User class (previously Locust class) has been removed. To declare a User class with a single TaskSet one would now use the the tasks attribute instead:"


尝试这个:
import random, json
from locust import HttpUser, task, between, TaskSet, User


class UserBehavior(HttpUser):
min_wait = 5000
max_wait = 9000

def __init__(self, parent):
super(UserBehavior, self).__init__(parent)

self.token = ""
self.headers = {}

def on_start(self):
self.token = self.login()

self.headers = {'Authorization': 'Token ' + self.token}

def login(self):
response = self.client.post("/v1/auth/login", data={'phoneNumber': '+666000666', 'password': 'dupadupa'})


@task
def index(self):
self.client.get("/v1/me/profile", headers=self.headers)

关于python - 系统打开文件限制导致 Locust 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62765586/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com