"""=================================================
@Project -> File :Locast_study -> roomservice.py
@Author :mazl
@Date :2023/3/12 14:35
@Desc :
=================================================="""
import json
import os
from random import randint
from locust import HttpUser, TaskSet, task, between
from common.roomid import rand_roomid
class UserBebavor(TaskSet):
def __init__(self, parent: "User"):
super().__init__(parent)
self.room_id = None
def on_start(self):
self.memberId = ["SY1", "SY2", "SY3", "SY4", "SY5", "SY6", "SY1", "SY7", "SY8", "SY9", "SY10"]
def setup(self):
print('task setup')
def teardown(self):
print("task teardown")
@task(1)
def create_room(self):
url = '/ccm/v1/room?app_id=winPcAppid&room_id=' + rand_roomid()
payload = json.dumps({
"callbackUrl": "",
"roomExtraInfo": "",
"tid": "winPcToken",
"topic": "测试主题"
})
headers = {
'Content-Type': 'application/json'
}
with self.client.post(url, headers=headers, data=payload, verify=False, catch_response=True) as response:
if 0 == int(json.loads(response.text)['error']['code']):
response.success()
else:
response.failure("创建房间失败!")
self.room_id = json.loads(response.text)['roomId']
@task(2)
def join_room(self):
url = '/ccm/v1/member?app_id=winPcAppid&room_id=' + str(self.room_id)
ranIndex = randint(1, 1000) % len(self.memberId)
memberID = self.memberId[ranIndex]
print("memberID------>", memberID)
payload = json.dumps({
"memberId": memberID,
"memberExtraInfo": "eyJjYW1FbmFibGUiOnRydWUsIm1pY0VuYWJsZSI6dHJ1ZSwiaG9zdCI6ZmFsc2UsIm5pY2tOYW1lIjoiV2ViXzY2NiJ9",
"tid": "joinRoom_20230313 17:05:49.155"
})
headers = {
'Content-Type': 'application/json'
}
with self.client.post(url, headers=headers, data=payload, verify=False,catch_response=True) as response:
if 0 == int(json.loads(response.text)['error']['code']):
response.success()
else:
response.failure("加入房间失败!")
class WebstieUser(HttpUser):
ait_time = between(2, 5)
def setup(self):
print('task setup')
def teardown(self):
print("task teardown")
task_set = task(UserBebavor)
host = "填写请求地址"
min_wait = 2000
max_wait = 5000
if __name__ == '__main__':
os.system('locust -f roomservice.py')