使用locust进行性能测试
Locust是一款开源的负载测试工具,它使用python语言实现,支持单机测试和分布式部署联合测试。 使用python编写相关的测试脚本,简单易用功能强大。
- 为什么使用负载测试工具呢?
-
对于测试人员,手动测试只能测试功能相关的问题,对于性能手动测试无能为力
-
对于开发人员,可以指导程序优化,提高程序运行效率。
-
对于程序而言,可以检验程序在高并发的稳定性,和数据库关键数据的ACID特性
- Locust有什么优点?
-
安装,部署,使用简单,开包即用
-
脚本编写简单,套用模板,请求函数和python requests库的使用完全一致。
-
支持本地单机运行和主从结构多机运行,能够完成日常使用
- Locust一个简单脚本和运行
import random
from locust import HttpLocust, TaskSet, task
class UserBehavior(TaskSet):
def on_start(self):
self.login()
def on_stop(self):
self.logout()
def login(self):
pass
def logout(self):
pass
#定义任务,可以定义多个任务,参数1表示执行的比例
@task(1)
def set_user_info(self):
headers = {}
data = {
"schools": "BUPT",
"user_birthday": "2000-01-01"
}
x = self.client.post("/api/setUserInfo", data=data, headers=headers)
print(x.status_code)
print(x.text)
class WebsiteUser(HttpLocust):
task_set = UserBehavior
min_wait = 5000
max_wait = 9000
- 执行脚本
# 单机运行方式,也支持多机分布式部署
locust -f locust_test.py --host=https://api.test.com
# 分布式部署-主机
locust -f locust_test.py --master --host=https://api.test.com
# 分布式部署-本地从机
locust -f locust_test.py --slave --host=https://api.test.com
# 远程分布式部署-远程从机
locust -f locust_test.py --slave --master-host=192.168.0.100 --host=https://api.test.com
- locust启动页(总人数和每秒增加的数量)