1.python3环境安装

locust基于python开发,需要依赖python环境,大部分Linux发行版系统都会自带python,Ubuntu18.04自带python2.7和python3.6.9(建议使用python3)
如纯净版系统可参照下面链接进行安装:

python3安装链接
pyhton3安装python包需要用pip3工具,安装工具指令:

sudo apt install python3-pip

pip3默认从外网下载,所以速度会很慢。有时候下载超时,导致下载失败,建议将pip3下载镜像源改为国内镜像源,配置地址如下:

pip国内镜像源配置

2.locust工具安装

locust工具安装非常简单,使用pip3工具安装,指令如下:

pip3 install locust
# 可指定版本:
pip3 install locust==2.1.0
# 查看版本
locust -V

3.locust使用

简单用例:

详细代码可参照locust_request_test.py文件

class UdeskUser(HttpUser):wait_time = between(1, 2)@events.init.add_listenerdef on_locust_init(environment, **kwargs):"""初始化参数,多用于分布式等环境:param kwargs::return:"""def on_start(self):"""可用于用户登录测试:return:"""print("初试化数据,只执行一次")# self.client.post("/login", json={"username":"admin@udesk.cn", "password":"admin"})def on_stop(self):"""程序被杀死时调用:return:"""print("实例用户被被杀死")@events.test_start.add_listenerdef on_test_start(environment, **kwargs):print("A new test is starting")@events.test_stop.add_listenerdef on_test_stop(environment, **kwargs):print("A new test is ending")@taskdef post_query(self):"""POST查询接口请求测试,@task(1)表示所有测试接口中所占比重为1:return:"""@tag("tag2")@task(10)def post_query_2(self):response = self.client.post("/v2/robot/query", json={"robot_id": "222", "query": "北京大学怎么走?", })# print("response:{}".format(response.text))self.parse_robot_query_post_result(response.content)def parse_robot_query_post_result(self, bytes_data):"""解析查询响应的json数据:param bytes_data::return:"""def get_query_dict(self):"""获取查询问答字典:return:"""

启动locust测试工具

# 命令行执行
locust -f locust_request_test.py --host http://120.78.15.109:17555
# locust_request_test.py 为测试功能代码脚本,--host 指定测试服务的ip:port

也可以在locust.conf 中配置启动参数

# 指定测试脚本
locustfile = /Users/wuhao/Desktop/locust_request_test_project/locust_request_test.py
# 指定待测试服务器host
host = http://120.78.15.109:17555
# 指定非测试任务
exclude-tags = tag2
# 指定log地址
logfile = /Users/wuhao/Desktop/locust_request_test_project/log/locust.log

命令行指令:

locust --config=./locust.conf
# ./locust.conf 配置文件路径

4.web_UI扩展

locust支持web_ui扩展功能,详细代码可参照locust_request_test.py文件
简单用例如下:

# web_ui 拓展开发
stats = {}
response_list = []
path = os.path.dirname(os.path.abspath(__file__))
extend = Blueprint("extend","extend_web_ui",static_folder=f"{path}/static/",static_url_path="/static/",template_folder=f"{path}/templates/",
)@events.init.add_listener
def locust_init(environment, **kwargs):"""我们得找个地方储存数据。在主节点上,统计数据将包含所有成功测试的汇总和,而在工作节点上,这将是自上次统计报告发送到主节点以来的成功测试的总和"""def on_request(request_type, name, response_time, response_length, exception, context, response, **kwargs):"""Event handler that get triggered on every request:param request_type::param name::param response_time::param response_length::param exception::param context::param kwargs::return:"""@events.reset_stats.add_listener
def on_reset_stats():"""Event handler that get triggered on click of web UI Reset Stats button"""global statsstats = {}

5.查询接口压力测试目录结构

# locust_request_test_project 目录结构
├── common
│   ├── __init__.py
│   ├── auth.py
│   └── config.py
├── locust.conf
├── locust_request_test.py
├── log
│   └── locust.log
├── query.txt
├── requirements
│   └── requirements.txt
├── static
│   └── extend.js
└── templates└── extend.html
# common 公共基础包
# locust.conf 配置文件
# log 日志文件
# requirements python需求包
# locust_request_test.py 测试脚本文件
# static web_ui扩展 静态文件(包括.js文件等)
# templates 前端页面文件

6.帮助文档

locust帮助文档

locust测试工具入门相关推荐

  1. locust测试工具

    一.locust是什么? 一个支持分布式架构的测试工具,能够很轻松的编写测试脚本,完成网站的并发性能测试. 官方网站(Locust - A modern load testing framework) ...

  2. android导出apk文件_Android测试工具入门介绍(三)

    介绍一款牛逼的测试框架Drozer,一款可以检测Android一些公共漏洞的工具(可能远不止这些.还可以继续挖掘),还可以生成shellcode,进行安卓设备的远程exploit. 附下载地址:htt ...

  3. 安卓apk签名提取工具_Android测试工具入门介绍(二)

    今天我们来讲讲一款牛逼的安卓集成工具:就是大名还算顶顶的AndroidKill: 先来个软件界面截图: 多么简单有华丽的界面啊!我说的是功能华丽,该有的功能他都有. 首先我们先点开菜单中的Androi ...

  4. android studio怎么改软件扫码界面_Android测试工具入门介绍(二)

    今天我们来讲讲一款牛逼的安卓集成工具:就是大名还算顶顶的AndroidKill: 先来个软件界面截图: 多么简单有华丽的界面啊!我说的是功能华丽,该有的功能他都有. 首先我们先点开菜单中的Androi ...

  5. 开源网络负载测试工具-基准测试

    译者注:在上一篇<开源网络负载测试工具测评>文章中,我以我微薄的翻译功底向大家展现了Ragnar Lönn先生对当前主流开源负载测试工具的一些看法.Ragnar Lönn先生主要以测试工具 ...

  6. mysql的ab测试工具_轻量级性能测试工具ab / wrk / locust 分析 对比

    很早前,介绍过4款压力测试工具 今天再推荐下两款更强大的. 1. ab 是目前最常见的压力测试工具.其典型用法如下: shell> ab -k -n 1000 -c 10 -t 100 http ...

  7. Go入门系列(十八) 反射、包和测试工具

    本系列文章目录 展开/收起 Go入门系列(一) 初识Go语言 Go入门系列(二) 变量.指针.数据类型简介和作用域 Go入门系列(三) 基础类型--整型.浮点型.布尔类型和字符串 Go入门系列(四) ...

  8. 渗透测试工具集(非常详细),从零基础入门到精通,看完这一篇就够了(附安装)

    写在前面:这段时间由于发布了很多关于黑客工具教程的文章,后台经常会受到很多初学安全朋友的私信"初学者如何入门安全"."要去哪里找学习资料"等等.想起当初自己学安 ...

  9. 【小白渗透入门系列】P5 自动化渗透测试工具

    大家好! 我是小黄,很高兴又跟大家见面啦 ! 拒绝水文,从我做起 !!!! 未经允许,禁止转载 ,违者必究!!!! 本实验仅适用于学习和测试 ,严禁违法操作 ! ! ! 今天更新的是: P5 自动化渗 ...

  10. 测试小白入门必知必会的8个测试工具

    1.Fiddler:网络抓包工具 Fiddler在测试中一般用于篡改接口请求或接口返回数据以测试前后端业务场景或对异常功能的兼容.它能监控进出设备的http协议请求,并且支持重新编辑请求与返回,从而测 ...

最新文章

  1. Hadoop的搭建,VmwareWorkstation 16pro + Ubuntu18.04.1
  2. mongodb 字符串 截取_Mongodb split字符串后分组统计
  3. linux arm ffmpeg configure文件,ffmpeg库的交叉编译记录
  4. C++——拷贝构造函数和赋值函数的注意点
  5. JAVA类加载机制详解
  6. 吐槽表情包计算机系,网友用表情包形容自己的专业 分明是场吐槽大会
  7. SQLAlchemy部分
  8. 如何查看自己阿里云服务器的ip地址
  9. 光纤分布式声波传感DAS语音还原介绍
  10. dlopen failed: empty/missing DT_HASH in quot;libx.soquot; (built with --hash-style=gnu?)
  11. DEDECMS站点内容怎么自动更新到新浪微博
  12. 经典文献阅读之--PON
  13. 打印服务进程spoolsv 导致电脑变慢
  14. buu-[ACTF新生赛2020]rome
  15. 驾校机器人教练售价_驾校机器人教练温柔鼓励!网友:好怕它被我气死
  16. 少年中国说——梁启超〔近现代〕
  17. 痉挛性斜颈头颤怎么办?
  18. 计算机领域nt=p,09计算机基础PwerPoint单选.doc
  19. 【Android App】定位导航GPS中开启手机定位功能讲解及实战(附源码和演示 超详细)
  20. linux运行雷神之锤,Ubuntu下多人射击类游戏 Quake Live 雷神之锤

热门文章

  1. HealthKit框架参考
  2. 【论文投稿】电子信息类中文权威期刊(SCIEI)投稿攻略
  3. Java程序强制删除文件
  4. 系统运维安全管理办法_7.系统运维安全管理规定
  5. FPT工具LeapFTP3.1.0.50 的注册码
  6. xp系统装不上vmware
  7. 用Python中的VTK库导入并显示Assembly的STL文件
  8. 【自制】3D全息投影
  9. CHK文件恢复工具、软件(CHKRecovery V2.0)
  10. 汇编1-地址总线、数据总线与控制总线详解