Skip to content
Snippets Groups Projects
Commit ba7a8720 authored by Jan Pokorný's avatar Jan Pokorný :lifter_tone2:
Browse files

Utilizing the bearer token to retrieve data from api

parent 504aeb0c
No related branches found
No related tags found
1 merge request!37M3 locust
Pipeline #
...@@ -17,88 +17,126 @@ class StudentActor(HttpUser): ...@@ -17,88 +17,126 @@ class StudentActor(HttpUser):
wait_time = between(.250, .500) wait_time = between(.250, .500)
weight = 1 weight = 1
course_ids = set() course_id = None
lecture_ids = set() lecture_id = None
student_ids = set() id = None
header = None
@task(3) def on_start(self):
def get_courses_english(self): self.header = {'Authorization': f'Bearer {self.environment.parsed_options.token}'}
self.client.get(
url='/courses/findAllByLang?lang=ENGLISH', response = self.client.post(
url='/users',
auth=None, auth=None,
headers=header, headers=self.header,
name="Find Courses" 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) @task(3)
def get_courses_spanish(self): def get_courses_english(self):
self.client.get( response = self.client.get(
url='/courses/findAllByLang?lang=SPANISH', url='/courses/findAllByLang?lang=ENGLISH',
auth=None, auth=None,
headers=header, headers=self.header,
name="Find Courses" name="Find Courses"
) )
if response.status_code == 200:
json = response.json()
if len(json) > 0:
self.course_id = json[0]["id"]
@task @task
def enrol(self): def enrol(self):
if self.course_id is None or self.id is None:
return
self.client.patch( self.client.patch(
url=f'/courses/enrol/{1}?studentId={1}', url=f'/courses/enrol/{self.course_id}?studentId={self.id}',
auth=None, auth=None,
headers=header, headers=self.header,
name="Enrol Courses" name="Enrol Courses"
) )
@task @task
def get_lecture_by_id(self): def get_lectures_by_course(self):
self.client.get( if self.course_id is None:
url=f'/lectures/findByCourse?courseId={1}', return
response = self.client.get(
url=f'/lectures/findByCourse?courseId={self.course_id}',
auth=None, auth=None,
headers=header, headers=self.header,
name="Find Lectures" name="Find Lectures"
) )
if response.status_code == 200:
json = response.json()
if len(json) > 0:
self.lecture_id = json[0]["id"]
class LecturerActor(HttpUser): class LecturerActor(HttpUser):
weight = 0 weight = 0
fixed_count = 1 fixed_count = 1
wait_time = between(.100, .400) wait_time = between(.100, .900)
courses_created = 0 courses_created = 0
lecture_created = 0 lecture_created = 0
course_ids = set() 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 @task
def new_course(self): def new_course(self):
if self.courses_created < 3: if self.courses_created < 3:
self.client.headers['Content-Type'] = "application/json"
response = self.client.post( response = self.client.post(
url="/courses", url="/courses",
auth=None, auth=None,
headers=header, headers=self.header,
name="Create Course", name="Create Course",
json={ json={
"name": "string", "name": "string",
"capacity": 10, "capacity": 10,
"language": random.choice(["SPANISH", "ENGLISH"]), "language": random.choice(["SPANISH", "ENGLISH"]),
"proficiency": random.choice(["A1", "B1", "C1"]) "proficiency": random.choice(["A1", "B1", "C1"])
} }
) )
values = response.json() if response.status_code == 201:
self.course_ids.add(response.json()['id'])
print("course " + str(values['id']) + " created.") self.courses_created += 1
self.course_ids.add(values['id'])
self.courses_created += 1
@task @task
def new_lecture(self): def new_lecture(self):
if self.courses_created > 0 and self.lecture_created < 10: if self.courses_created > 0 and self.lecture_created < 10:
self.client.headers['Content-Type'] = "application/json"
response = self.client.post( response = self.client.post(
url="/lectures", url="/lectures",
auth=None, auth=None,
headers=header, headers=self.header,
name="Create Lecture", name="Create Lecture",
json={ json={
"lectureFrom": "2024-04-26T18:06:30.658Z", "lectureFrom": "2024-04-26T18:06:30.658Z",
...@@ -108,10 +146,7 @@ class LecturerActor(HttpUser): ...@@ -108,10 +146,7 @@ class LecturerActor(HttpUser):
"courseId": random.choice(list(self.course_ids)) "courseId": random.choice(list(self.course_ids))
} }
) )
if response.status_code == 201:
print("lecture " + str(response.json()['id']) + " created.") self.lecture_created += 1
if self.lecture_created >= 20:
self.lecture_created += 1
if self.lecture_created >= 9:
raise StopUser() raise StopUser()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment