diff --git a/api/tests/loadtesting/library.py b/api/tests/loadtesting/library.py new file mode 100644 index 0000000000000000000000000000000000000000..6413a161f19bd3425a941b4bca48726921764985 --- /dev/null +++ b/api/tests/loadtesting/library.py @@ -0,0 +1,38 @@ +import os +import urllib.parse + +from locust import HttpLocust, TaskSet, task + +JWT_TOKEN = os.environ.get("JWT_TOKEN") + +DATA = {"playable": True} +HEADERS = {} +if JWT_TOKEN: + print("Starting authenticated session") + HEADERS["authorization"] = "JWT {}".format(JWT_TOKEN) + + +class WebsiteTasks(TaskSet): + @task + def albums(self): + self.client.get( + "/api/v1/albums?" + urllib.parse.urlencode(DATA), headers=HEADERS + ) + + @task + def artists(self): + self.client.get( + "/api/v1/artists?" + urllib.parse.urlencode(DATA), headers=HEADERS + ) + + @task + def tracks(self): + self.client.get( + "/api/v1/tracks?" + urllib.parse.urlencode(DATA), headers=HEADERS + ) + + +class WebsiteUser(HttpLocust): + task_set = WebsiteTasks + min_wait = 1000 + max_wait = 3000