使用python的locust库进行性能测试
2021-01-26 22:13
标签:一个用户 方法 脚本 war header def min tps 含义 Locust(俗称 蝗虫), 一个轻量级的开源压测工具,用Python编写。 AdminLoadTest类继承TaskSet类,用以描述用户行为: 使用@task装饰的方法为一个事务,方法的参数用于指定该行为的执行权重,参数越大每次被用户执行的概率越高,默认为1(事务blogs()被执行的概率是bky_index()的2倍); on_start():每个locust用户执行测试事务之前执行一次,用于做初始化的工作,如登录; on_stop(): 每次执行完测试事务之后执行一次。 task_set:指向定义的一个用户行为类; min_wait:模拟用户在执行每个任务之间等待的最小时间,单位为毫秒; max_wait:模拟用户在执行每个任务之间等待的最大时间,单位为毫秒(min_wait和max_wait默认值为1000,因此,如果没有声明min_wait和max_wait,则locust将在每个任务之间始终等待1秒。); weight:一个文件中有多个locust用户类时,指定用户类的权重(默认新增locust用户时会随机选择一个用户类); ????使用上面的命令行启动Locust之后,应该打开浏览器并将其指向http://localhost:8089/(如果您在本地运行Locust)。 设置好模拟用户后,点击Start swarming开始测试,测试结果如下: Locust官网 使用python的locust库进行性能测试 标签:一个用户 方法 脚本 war header def min tps 含义 原文地址:https://www.cnblogs.com/pyweb/p/12851843.html
安装
pip3 install locust
Python编写性能测试脚本
import json
from locust import HttpLocust, TaskSet, task
"""
创建后台管理站点压测类,需要继承TaskSet
可以添加多个测试任务
"""
class AdminLoadTest(TaskSet):
# 用户执行task前调用
def on_start(self):
pass
# 用户执行task后调用
def on_stop(self):
pass
@task(1)
def download(self):
header = {"Content-Type": "application/json"}
data = {
"staff_id": 94
}
data = json.dumps(data)
self.client.post(‘/get_know_list‘, data=data, headers=header)
@task(2)
def body(self):
header = {"Content-Type": "application/json"}
data = {
"staff_id": 94
}
data = json.dumps(data)
self.client.post(‘/get_answer_list‘, data=data, headers=header)
class RunLoadTests(HttpLocust):
"""
创建运行压测类
"""
task_set = AdminLoadTest
min_wait = 1000
max_wait = 50000
weight = 1
if __name__ == "__main__":
import os
os.system("locust -f test_download.py --host=http://127.0.0.1:5000")
RunLoadTests类用于设置性能测试属性:启动
os.system
在代码里面写入启动命令
各个参数的含义
打开Locust的web界面
其他
文章标题:使用python的locust库进行性能测试
文章链接:http://soscw.com/index.php/essay/47460.html