68 lines
1.8 KiB
Python
68 lines
1.8 KiB
Python
import random
|
|
import string
|
|
from locust import HttpUser, FastHttpUser
|
|
|
|
class Auth():
|
|
token: string
|
|
|
|
def __init__(self, token):
|
|
self.token = token
|
|
|
|
class User():
|
|
email: string
|
|
name: string
|
|
password: string
|
|
|
|
def __init__(self, email, password, name, token = ""):
|
|
self.email = email
|
|
self.password = password
|
|
self.name = name
|
|
self.token = token
|
|
|
|
|
|
class BackendApi():
|
|
http: FastHttpUser
|
|
|
|
def __init__(self, http: FastHttpUser):
|
|
self.http = http
|
|
|
|
def user_create(self) -> User:
|
|
email = ''.join(random.choices(string.ascii_lowercase + string.digits, k=10)) + '@test.test'
|
|
name = ''.join(random.choices(string.ascii_letters, k=10))
|
|
password = 'Abcdef1!!1'
|
|
|
|
response = self.http.client.post(
|
|
"/user/create",
|
|
json={
|
|
"email": email,
|
|
"password": password,
|
|
"name": name,
|
|
},
|
|
)
|
|
if response.status_code != 200:
|
|
raise AssertionError('can not create user')
|
|
|
|
return User(email, password, name)
|
|
|
|
def user_login(self, user: User) -> Auth:
|
|
response = self.http.client.post(
|
|
"/user/login",
|
|
json={
|
|
"email": user.email,
|
|
"password": user.password,
|
|
},
|
|
)
|
|
if response.status_code != 200:
|
|
raise AssertionError('can not login user')
|
|
|
|
token = response.json()['token']
|
|
if token == '':
|
|
raise AssertionError('empty user token')
|
|
|
|
return Auth(token)
|
|
|
|
def dummy_get(self, auth: Auth):
|
|
headers = {"X-Auth": auth.token}
|
|
response = self.http.client.get("/dummy", headers=headers)
|
|
if response.status_code != 200:
|
|
raise AssertionError('something wrong') |