locust简介:基于python编写,简单易于上手;支持分布式;脚本编写容易,web图形化界面操作容易,结果简洁,易读。
官网:Locust - A modern load testing frameworkhttps://locust.io/一、环境搭建:
1.搭建 python环境
2.安装:pip3 install locust
2.1windows可以使用pycharm环境下进行搭建 或者 先从windows商店,先安装个Ubuntu再搭建环境即可
二 、脚本编写:
#!/usr/bin/env python
# _*_ coding: UTF-8 _*_
import random,gevent,requests,json
from locust import TaskSet, task, between, HttpUser
# 任务集
class MyTask(TaskSet):
def on_start(self):
print("用户初始化")
# self.login();
def on_stop(self):
print("用户结束")
# self.logout();
@task
def goods_list(self):
# url = '/api/light-chain-goods/app/goods/hot-goods-page?size=20¤t=1'
url = '/light-chain-goods/app/goods/hot-goods-page?size=20¤t=1'
header={'cache-control': "no-cache",'postman-token': "dbbc1665-e9a6-0ca4-6c69-3ecbed643866"}
response =self.client.get(url,headers=header)
res = response.json()
if res['code'] == 200 and len(res['data'])!=0:
return
else:
print("商品列表,获取失败 !")
# 用户类
class MyUser(HttpUser):
tasks = [MyTask] # 指定用户运行的任务类
# wait_time = between(1,1) #等待时间
# if __name__ == '__main__':
# # os.system("locust -f locustfile.py --host=https://xxxxxxxx.ltd ") #括号里面你的请求域名地址
单个执行可以直接取消最后两行注释。
三 、分布式环境搭建:
"""
pycharm下可以如下:
目标:locust分布式
角色:
1.主机(控制机) --master
2.从属主机(执行机) --salve --master-host=mater主机ip地址
从属主机必须依赖重点(可mac,可linux,可windows):
1.必须有python及locust环境
2.必须有主机的副本
Terminal Local:
locust -f venv\locustfile.py --host=http://47.96.85.8:81 --master
Terminal Local(2):
locust -f venv\locustfile.py --worker --master-host=192.168.0.175
"""
四 、命令行运行:
"""
命令行,实现分布式
a. 命令
locust -f 路径/文件.py --master --no-web -c 100 -r 10 --expect-workers 2 --run-time 20 --csv=./master_result.csv
b. 参数
--no-web : 无web页面运行
-c : 虚拟用户数
-r : 每秒孵化数
--expect-workers : 指定从属主机数量
--run-time : 运行指定时长
--csv : 保存结果
"""
五 、后台服务器监控可以结合nmon使用:
服务端监控工具nmon下载安装_u013080870的博客-CSDN博客下载网址:http://nmon.sourceforge.net/pmwiki.php?n=Site.Download以centos7为例,下载建议,可以打开网页,然后全局搜索Ctrl+Fhttps://blog.csdn.net/u013080870/article/details/119605192