58 lines
1.9 KiB
Python
58 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
||
|
||
from locust import HttpUser,task,TaskSet
|
||
import jpath
|
||
import json
|
||
from ensure import ensure
|
||
|
||
# 定义ScriptTasks类,继承TaskSet类
|
||
class ScriptTasks(TaskSet):
|
||
#初始化,每个locust用户开始做的第一件事
|
||
def on_start(self):
|
||
#放置 用户名和密码
|
||
res = self.client.post('/api/user/login', {
|
||
"username":"13700998877",
|
||
"password":'c123456'
|
||
})
|
||
#断言
|
||
ensure(res.status_code).equals(200)
|
||
#值
|
||
code = jpath.get('code', json.loads(res.text))
|
||
ensure(code).equals(0)
|
||
msg = jpath.get('msg', json.loads(res.text))
|
||
ensure(msg).equals("登录成功")
|
||
|
||
|
||
#@task()装饰的方法为一个事务,方法的参数用于指定该行为的执行权重,参数越大每次被虚拟用户执行的概率越高,默认为1
|
||
@task(1)
|
||
def about(self):
|
||
#self.client 属性使用python的request库的方法,调用和使用方法和request一样
|
||
task_rel = self.client.get('/api/user/user_info')
|
||
#断言
|
||
ensure(task_rel.status_code).equals(200)
|
||
#值
|
||
code = jpath.get('code', json.loads(task_rel.text))
|
||
ensure(code).equals(0)
|
||
msg = jpath.get('msg', json.loads(task_rel.text))
|
||
ensure(msg).equals("操作成功")
|
||
|
||
# @task(2)
|
||
# def demo(self):
|
||
# payload = {}
|
||
# headers = {}
|
||
# self.client.post('/demo', data = payload,headers = headers)
|
||
|
||
#TaskSet类,该类定义用户任务信息(模拟用户信息),
|
||
|
||
class WebsitUser(HttpUser):
|
||
#指向一个定义的用户行为
|
||
task_set = task(ScriptTasks)
|
||
#被测系统的host,
|
||
host = 'http://sky.nnzhp.cn'
|
||
#每个用户执行两个任务间隔时间最小值,单位是(毫秒,默认是1000ms)
|
||
min_wait = 100
|
||
# 每个用户执行两个任务间隔时间最大值,单位是(毫秒)
|
||
max_wait = 5000
|
||
|
||
|