locust压测工具
1、项目中需要对某一个接口进行调优,支持更高的并发,测试一般用阿里云提供的压测平台,但是这个是收费的,我们开发自己测试一般不会直接用这个平台,这里推荐一款压测工具,比较适合开发使用。
Locust是一款易于使用的分布式负载测试工具,完全基于事件,即一个locust节点也可以在一个进程中支持数千并发用户,不使用回调,通过gevent使用轻量级过程(即在自己的进程内运行)。
2、代码(模板)
# 保存为locust2.py
# coding:utf-8
import random
from locust import HttpUser, TaskSet, task
import requests
class BlogDemo(TaskSet):
@task(1)
def open_blog(self):
# 定义requests的请求头
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"}
num = random.randint(1, 1000)
param = {
"name": "user" + str(num)
}
req = self.client.get("/redis/seckill", params=param, headers=header, verify=False)
print(req)
class websitUser(HttpUser):
tasks = [BlogDemo]
min_wait = 3000 # 单位毫秒
max_wait = 6000 # 单位毫秒
if __name__ == "__main__":
import os
os.system("locust -f locust2.py --host=http://localhost:8086")
Header :请求头
param:请求参数
写上调用的请求参数、请求头、路径等信息。
这个是对一个接口进行压测,还有更多的特性,可以百度。
3、启动
打开网址默认端口8089
上面填写两个参数:总用户数量以及用户增长速率