locust库python
pip install locustio
pip install -i https://pypi.douban.com/simple locustio
安装成功以后,在cmd控制台将会新增一条命令,可输入以下命令查看:linux
locust --help
在项目根目录下建立locustfile.py文件web
from locust import Locust, TaskSet, task class MyTasks(TaskSet): """ 建立测试任务类,须要继承TaskSet 能够添加多个测试任务 """ # 每一个测试任务,每每会以实例方法的形式来呈现 # 同时须要使用task装饰器来装饰测试任务 @task def one_task(self): print("执行一个伟大的测试任务!") class RunTasks(Locust): """ 建立运行测试类,须要继承Locust父类 """ task_set = MyTasks # 指定测试任务类,使用task_set覆盖父类的类属性 min_wait = 2000 # 指定启动任务间隔的时间范围(单位毫秒):2~5秒之间 max_wait = 5000 # 使用min_wait、max_wait覆盖父类的类属性
执行性能测试浏览器
# 打开Pycharm Terminal控制台 # 运行以下命令: locust
运行以后,控制台会在本地监听一个端口服务器
a. 程序文件要命名为 locustfile.py才行并发
b. 假如命名为one_example.py,则须要这样运行分布式
locust -f one_example.pypost
在浏览器打开UI设置界面性能
from locust import HttpLocust, TaskSet, task class AdminLoadTest(TaskSet): """ 建立后台管理站点压测类,须要继承TaskSet 能够添加多个测试任务 """ def login(self): """ 登陆实例方法 :return: """ self.client.post("http://localhost:8088/users/login/", {"user_account": "admin", "password": "123456"}) def logout(self): """ 登出实例方法 :return: """ self.client.get("http://localhost:8088/users/logout/") def on_start(self): """ 当任何一个task调度执行以前, on_start实例方法会被调用 先登陆 :return: """ self.login() def on_stop(self): """ 当任何一个task调度执行以后, on_stop实例方法会被调用 后登出 :return: """ self.logout() @task def admin_index(self): """ 对后台主页进行压测 :return: """ self.client.get("http://localhost:8088/admin/") class RunLoadTests(HttpLocust): """ 建立运行压测类 """ task_set = AdminLoadTest
注意:--host参数指定http主机地址,-f参数指定压测程序文件名测试
设置并发用户数为10,每5秒建立一个用户
压测过程截图
美轮美奂的压测报告
压测失败详情
下载压测统计数据
下载的压测统计数据csv文件