Locust是一个开源的性能测试工具,可以结合python代码(需要有一定的python代码基础)进行用户并发测试,能够测试出一个系统可以并发处理多少个用户,扩展性强

1、安装

需要在python下安装locust模块

  1. 要有python环境(先安装python,可见其他文章:python下载安装以及环境变量配置),我的安装目录是D:\Python382
  2. win+R打开命令行窗口,进入python安装目录下的Scripts文件夹下,或者在D:\Python382\Scripts目录直接输入cmd回车(可直接打开该目录下的命令窗口)
  3. 运行命令:pip install locust
  4. 检查安装的命令是:pip show locust
  5. 查看版本的命令是:locust -V

2、使用

:需要在有locustfile.py文件的文件夹下运行命令locust,因为默认的性能测试文件就是这个locustfile.py,该文件为python脚本,实例见最后
(我的locustfile.py文件放在了E:\locusttest下)

否则如下:

2.1、有Web界面

更直观,操作简单

1、启动
运行命令:locust(最基础的运行方式)
(不能关闭命令窗口,关掉窗口就停止了)

2、打开
浏览器输入:http://localhost:8089/

Number of total users to simulate:要模拟的总用户数
Spawn rate (users spawned/second):生成率(用户生成/秒)
Host (e.g. http://www.example.com):主机地址(例如 http://www.example.com)

3、下载报告
Download request statistics CSV:对应的是Statistics
Download failures CSV:对应的是Failures
Download exceptions CSV:对应的是Exceptions
Download Report:包含全部

2.2、无Web界面

功能较多,较灵活

1、启动运行
直接运行命令:locust -f locustfile.py --host=https://www.baidu.com --headless -u 1 -r 1
(根据需要对应替换掉文件,地址,总用户数,生成率。指定性能测试文件,把locustfile.py替换成你自己的文件即可,但还是要在你文件所在的路径下运行,百度的地址替换成自己的测试地址)

host:主机
headless:无图形模式
-u:要模拟的总用户数
-r:生成率(用户生成/秒)

2、设置运行时间
无Web界面没有停止按钮,如果没有设置运行时间,就会一直运行下去

加:–run-time 10或者-t 10
运行命令:locust -f locustfile.py --host=https://www.baidu.com --headless -u 1 -r 1 --run-time 10
或者:locust -f locustfile.py --host=https://www.baidu.com --headless -u 1 -r 1 -t 10
默认秒:s,分钟:m,小时:h,1分30秒:1m30s

3、导出CSV格式报告
加:–csv=example(example是生成的文件前缀,可根据需要修改)
运行命令:locust -f locustfile.py --host=https://www.baidu.com --headless -u 1 -r 1 -t 10 --csv=example

生成四个csv文件

文件example_stats.csv效果如下

3、帮助

需要更多用法等,可以查看帮助
运行命令:locust -h

4、脚本示例

locustfile.py脚本示例,供参考

# 保存为locustfile.py
# coding=utf-8
from locust import HttpUser, TaskSet, task'''
实现场景:先登录(只登录一次),然后访问->收藏->消息列表
访问收藏页面权重为2,消息列表权重为1'''class UserBehavior(TaskSet):'''蝗虫行为类'''def _login(self):'''登录方法'''loginUrl = "登录的接口地址"  # 自己修改h = {  # 请求头,自己修改"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.90 Safari/537.36","Content-Type": "application/x-www-form-urlencoded",}body = {  # 请求体,自己修改"name": "111","pswd": "123456"}result = self.client.get(loginUrl, data=body, headers=h)print(result.text)global token  # 定义一个全局的tokentoken = result.json()["data"]["token"]print(token)assert "登录成功" in result.text  # 判断是否登录成功def on_start(self):'''任务开始准备工作:只登录一次'''self._login()# 任务1-收藏@taskdef task_my(self):print("---访问页面-收藏---")h = {  # 请求头,自己修改"token": token}data = {  # 请求体,自己修改"favorite": "110"}r = self.client.get(url="收藏的接口地址", data=data, headers=h)  # 地址自己修改print(r.text)assert "操作成功" in r.text  # 判断是否收藏成功# 任务2-消息列表@taskdef task_news(self):print("---访问页面-消息列表---")h = {  # 请求头,自己修改"token": token}data = {  # 请求体,自己修改"page": "1","limit": "10"}r = self.client.get("消息列表的接口地址", data=data, headers=h)  # 地址自己修改print(r.text)assert "访问成功" in r.textclass WebsiteUser(HttpUser):tasks = [UserBehavior]min_wait = 1000max_wait = 1000if __name__ == "__main__":import osos.system("locust -f locustfile.py --host=主地址")  # 主地址自己修改

Locust的安装和有无Web界面的使用,附脚本示例供参考相关推荐

  1. ArangoDB 学习笔记(一)简介 | ArangoDB 数据模型和概念 | ArangoDB在Windows下的安装与使用 | Web界面的增删改查

    文章目录 一.ArangoDB 简介 二.ArangoDB 数据模型和概念 2.1 ArangoDB的数据库交互 2.2 ArangoDB的数据模型 2.2.1 文档 Documents 2.2.2 ...

  2. 手把手教你docker安装RabbitMQ及其Web界面

    极简版: win+R,打开控制台输入: docker pull rabbitmq:management docker run -d -p 5672:5672 -p 15672:15672 --name ...

  3. 海康威视web插件层级遮挡问题,仅供参考

    关于海康威视web插件层级遮挡问题的解决方法,仅供参考,不包解决 其实在开发包里的最关键的文件就是webVideoCtrl.js 我遇到的问题是因为embed标签的显示层高于div出现遮挡情况 解决方 ...

  4. 解决:安装jenkins时web界面出现jenkins实例似乎已离线问题

    https://blog.51cto.com/8593714/2318144?tdsourcetag=s_pctim_aiomsg Windows下环境也可以解决: 转载于:https://www.c ...

  5. Ubports安装和使用gedit和ros等记录(仅供参考)

    之前,只给出部分提示,调试顺畅,果然手机也是生产力工具啊! UBport与机器人的插曲(Ubuntu Touch+ROS) 只收,无发送节点,无消息显示! 收发同时开启,效果如上! 主题和节点,哈哈哈 ...

  6. zabbix使用web界面监控本机

    文章目录 一.zabbix服务器监控本机 1.将本机服务端设置为监控数据 2.修改为中文web管理 二.服务端监控远程客户端 1.agent上安装zabbix-agent 2.web界面配置客户端监控 ...

  7. zabbix监控Web界面

    目录 zabbix监控web界面功能说明 zabbix监控配置流程 web界面模块说明 第三方邮箱网页配置告警 本地邮箱告警 结合grafana zabbix监控web界面功能说明 zabbix监控配 ...

  8. hp服务器通过ilo5安装系统,HPE ProLiant Gen10 通过iLO 5(v1.15) web界面多种方式更新服务器固件,包含升级系统恢复集方法...

    一.iLO web界面固件&操作系统软件界面简单介绍 1.固件 这个界面可以查看服务器安装的固件版本,可以查看以下类型的固件: u电源管理控制器Power Management Control ...

  9. RabbitMq安装Web界面插件报错

    RabbitMq安装Web界面插件报错 最近在安装rabbitmq-plugins的时候报了以下的错误,一直不知道什么原因,上网百度了很多,自己尝试了很多,总结下来就是这几步,希望可以给大家帮助: 错 ...

最新文章

  1. mysql常用字段及长度
  2. 使用Formik轻松开发更高质量的React表单(一)入门
  3. PyCUDA学习:gpuarray与kernel的抽象原型
  4. Linux应用总结(1):自动删除n天前日志
  5. okhttp 对应java版本_java – Android |在运行时获取OkHTTP库版本
  6. Mysql索引命中问题
  7. 《最后的守护者》的开发技术猜想
  8. Python基础-包
  9. PHP中的ob_start用法详解
  10. 2021牛客暑期多校训练营6 Hopping Rabbit 扫描线 + 矩形 + 细节
  11. 全国计算机vb考试经典程序设计,全国计算机二级《VB语言程序设计》考试要点...
  12. mariadb10.2 mysql5.7_说说在MySQL5.7迁到MariaDB10.2时栽的一部分坑
  13. python接口自动化(三十九)- logger 日志 - 上(超详解)
  14. python进行谱曲_python进行曲——迭代生成
  15. 靠着零代码报表工具,转行报表开发后月薪超过3万
  16. 揭秘:快手用AI在短视频里玩出三大花样,背后是怎样的技术原理?
  17. Python数据可视化1.5 可视化图像
  18. dede在首页调用留言本
  19. 事件--[Asp.Net]
  20. 201521123014 《Java程序设计》第7周学习总结

热门文章

  1. Git Clone克隆GitHub项目
  2. python语言程序设计_梁勇—第五章练习题重点题目答案
  3. linux学习与回顾2
  4. Python采集双色球数据,做数据分析,让我自己实现自己的富豪梦
  5. 大学python和vb哪个简单-VB强大还是python强大
  6. 一分钟彻底清除电脑中的垃圾
  7. python selenium 框架说明_UI自动化框架bok-choy(selenium+python+page object)使用介绍
  8. 康耐视软件,康耐视加密狗详细分类
  9. java毕业生设计中小学图书馆管理计算机源码+系统+mysql+调试部署+lw
  10. STM32F407实现FRAM驱动