Files
ad/locustfile.py
T

40 lines
1.2 KiB
Python

# retoor <retoor@molodetz.nl>
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]",
)