# retoor import random from locust import HttpUser, between, task PAGES = ["/", "/roll", "/standard", "/flyers", "/memes", "/people", "/join", "/docs"] class Reader(HttpUser): wait_time = between(0.5, 2.0) def on_start(self): response = self.client.get("/roll", headers={"Accept": "application/json"}, name="/roll [json]") self.slugs = [post["slug"] for post in response.json().get("posts", [])] if response.ok else [] @task(6) def home(self): self.client.get("/") @task(4) def listing(self): self.client.get(random.choice(PAGES), name="[page]") @task(3) def post(self): if self.slugs: self.client.get(f"/posts/{random.choice(self.slugs)}", name="/posts/[slug]") @task(1) def json_face(self): self.client.get("/standard", headers={"Accept": "application/json"}, name="/standard [json]") @task(1) def join_form(self): self.client.post( "/join", data={"name": f"Load {random.randint(1, 10**6)}", "contact": "load@example.invalid", "repo_url": "", "message": "", "website": ""}, name="/join [post]", )