Reputation: 43
Recently I switched from old locust version (0.14.2) to 1.3.1. Previously I was able to run in debug mode with command WebsiteUser().run() and it stops on all breakpoints.
When I try to run new version with the same command I get next error:
File "/home/user/PycharmProjects/my_test/venv/lib/python3.7/site-packages/locust/user/users.py", line 210, in init super().init(*args, **kwargs) TypeError: init() missing 1 required positional argument: 'environment'
I am sure that it's possible to debug new version as previous one, but what I am doing wrong?
locustfile.py:
class UserBehaviour(MyTask):
@task
def task_one(self):
self.action_one()
class WebsiteUser(HttpUser):
conf = Config()
host = conf.host
tasks = [UserBehaviour]
wait_time = between(0.5, 1.5)
if __name__ == "__main__":
WebsiteUser().run()
my_task.py:
class MyTask(BaseTaskSet):
def action_one(self):
self.client.get('dummy_path')
Upvotes: 4
Views: 5411
Reputation: 1885
You are calling
class WebsiteUser()
without an HttpUser
argument.
You have to use like this:
class WebsiteUser(HttpUser)
Upvotes: 1
Reputation: 2856
Locust 1.0+ has more robust support for using Locust as a library. It enables a lot more flexibility and customization in using Locust but there were a number of breaking changes to achieve this (one reason for the 1.0 designation). What you're hitting is Locust now requires an Environment for all Users
and associated classes. What you'll probably want to do is:
if __name__ == "__main__":
from locust.env import Environment
my_env = Environment(user_classes=[WebsiteUser])
WebsiteUser(my_env).run()
Upvotes: 8