diff --git a/application/locustfile.py b/application/locustfile.py
index 5cc90f33ce0c99a127c9f3d307561a916e8abf33..8ea2f32ee9ebbe7ff7db91f46ecc9b0052d1c37c 100644
--- a/application/locustfile.py
+++ b/application/locustfile.py
@@ -17,88 +17,126 @@ class StudentActor(HttpUser):
     wait_time = between(.250, .500)
     weight = 1
 
-    course_ids = set()
-    lecture_ids = set()
-    student_ids = set()
+    course_id = None
+    lecture_id = None
+    id = None
+    header = None
 
-    @task(3)
-    def get_courses_english(self):
-        self.client.get(
-            url='/courses/findAllByLang?lang=ENGLISH',
+    def on_start(self):
+        self.header = {'Authorization': f'Bearer {self.environment.parsed_options.token}'}
+
+        response = self.client.post(
+            url='/users',
             auth=None,
-            headers=header,
-            name="Find Courses"
-            )
+            headers=self.header,
+            json={
+                "username": "xnocni",
+                "email": f"xnocni{random.randint(0, 42069)}@mail.muni.cz",
+                "firstName": "Hana",
+                "lastName": "Sykorova"
+            },
+            name="Add User"
+        )
+        if response.status_code == 201:
+            self.id = response.json()["id"]
+        return super().on_start()
 
     @task(3)
-    def get_courses_spanish(self):
-        self.client.get(
-            url='/courses/findAllByLang?lang=SPANISH',
+    def get_courses_english(self):
+        response = self.client.get(
+            url='/courses/findAllByLang?lang=ENGLISH',
             auth=None,
-            headers=header,
+            headers=self.header,
             name="Find Courses"
-            )
-
+        )
+        if response.status_code == 200:
+            json = response.json()
+            if len(json) > 0:
+                self.course_id = json[0]["id"]
 
     @task
     def enrol(self):
+        if self.course_id is None or self.id is None:
+            return
         self.client.patch(
-            url=f'/courses/enrol/{1}?studentId={1}',
+            url=f'/courses/enrol/{self.course_id}?studentId={self.id}',
             auth=None,
-            headers=header,
+            headers=self.header,
             name="Enrol Courses"
-            )
-
+        )
 
     @task
-    def get_lecture_by_id(self):
-        self.client.get(
-            url=f'/lectures/findByCourse?courseId={1}',
+    def get_lectures_by_course(self):
+        if self.course_id is None:
+            return
+        response = self.client.get(
+            url=f'/lectures/findByCourse?courseId={self.course_id}',
             auth=None,
-            headers=header,
+            headers=self.header,
             name="Find Lectures"
-            )
+        )
+        if response.status_code == 200:
+            json = response.json()
+            if len(json) > 0:
+                self.lecture_id = json[0]["id"]
+
 
 class LecturerActor(HttpUser):
     weight = 0
     fixed_count = 1
-    wait_time = between(.100, .400)
-
+    wait_time = between(.100, .900)
 
     courses_created = 0
     lecture_created = 0
     course_ids = set()
+    id = None
+    header = None
+
+    def on_start(self):
+        self.header = {'Authorization': f'Bearer {self.environment.parsed_options.token}'}
+
+        response = self.client.post(
+            url='/users',
+            auth=None,
+            headers=self.header,
+            json={
+                "username": "xhana",
+                "email": f"xhana{random.randint(0, 42069)}@mail.muni.cz",
+                "firstName": "Hana",
+                "lastName": "Sykorova"
+            },
+            name="Add User"
+        )
+        if response.status_code == 201:
+            self.id = response.json()["id"]
+        return super().on_start()
 
     @task
     def new_course(self):
         if self.courses_created < 3:
-            self.client.headers['Content-Type'] = "application/json"
             response = self.client.post(
                 url="/courses",
                 auth=None,
-                headers=header,
+                headers=self.header,
                 name="Create Course",
                 json={
-                "name": "string",
-                "capacity": 10,
-                "language": random.choice(["SPANISH", "ENGLISH"]),
-                "proficiency": random.choice(["A1", "B1", "C1"])
-             }
+                    "name": "string",
+                    "capacity": 10,
+                    "language": random.choice(["SPANISH", "ENGLISH"]),
+                    "proficiency": random.choice(["A1", "B1", "C1"])
+                }
             )
-            values = response.json()
-
-            print("course " + str(values['id']) + " created.")
-            self.course_ids.add(values['id'])
-            self.courses_created += 1
+            if response.status_code == 201:
+                self.course_ids.add(response.json()['id'])
+                self.courses_created += 1
 
     @task
     def new_lecture(self):
         if self.courses_created > 0 and self.lecture_created < 10:
-            self.client.headers['Content-Type'] = "application/json"
             response = self.client.post(
                 url="/lectures",
                 auth=None,
-                headers=header,
+                headers=self.header,
                 name="Create Lecture",
                 json={
                     "lectureFrom": "2024-04-26T18:06:30.658Z",
@@ -108,10 +146,7 @@ class LecturerActor(HttpUser):
                     "courseId": random.choice(list(self.course_ids))
                 }
             )
-
-            print("lecture " + str(response.json()['id']) + " created.")
-
-            self.lecture_created += 1
-        
-        if self.lecture_created >= 9:
+            if response.status_code == 201:
+                self.lecture_created += 1
+        if self.lecture_created >= 20:
             raise StopUser()