Locust为一款通过编写python脚本来执行性能测试 支持分布式及可扩展的性能测试工具。Locust基于事件驱动 即使是一台机器也能产生数千并发请求。同时有一个简单的用户界面 可以展示基本的测试过程信息。
Locust安装Locust目前仅支持python3.6及其以上版本 安装前请确定python版本符合要求。
python满足条件后 用pip进行安装 python3 -m pip install locust。
安装完成后 执行locust -V 以验证是否安装成功。
安装过程中的一些tips升级python3后 需要到.bash_profile中更改环境变量PATH 保存后执行 source~/.bash_profile。
下载过程中遇到不信任证书导致下载失败的错误 可尝试卸载再重新安装pip。
python3 -m pip uninstall pip setuptools curl https://bootstrap.pypa.io/get-pip.py | python3Locust使用
Locust有两种运行模式 单进程运行以及多进程分布式。
单进程运行即为在单个Python进程中运行所有虚拟并发用户。在使用形式上 又分为使用web界面及不使用web界面在终端输入命令执行。
单进程运行模式下 基于web界面的应用locust示例脚本
from locust import HttpUser, task, between,tag class QuickstartUser(HttpUser): wait_time between(5, 9) # 使每个虚拟用户在执行每个任务之后随机等待5-9秒 host http://www.***.com/api/ # 被测服务器地址 task def detail(self): self.client.get( /detail ) # Httpuser类继承后 每个实例可以使用其client属性发起http请求。如果一个locust文件中有多个HttpUser类 可在启动测试时将类名写在最后 则仅会执行该Http请求。 # task装饰器定义任务信息时 可选择设置权重。
进入脚本所在文件夹 执行locust -f locustfile.py。
执行成功后 浏览器访问 http://localhost:8089 输入参数进行压力测试 并查看测试结果。
设置参数页面
Number of total users to simulate: 设置总体并发用户数Spawn rate (users spawned/second): 启动虚拟用户的速率 每秒产生多少个并发用户 参数配置完毕后 点击【Start swarming】即可开始测试。运行时状态
程序会按照设置的用户数重复请求host 直至点击【STOP】停止运行。期间可以观察RPS及FAILURES查看压测结果。
默认情况下 响应码 400 则被认为是请求失败 也可以自定义设置成功和失败的请求条件。
回到终端页面 退出运行后也可以看到一些运行情况结果。
终端运行结果
此外可在charts页面查看一些数据指标的走势。
charts
也可在Failures查看报错数据、Exceptions中查看异常数据、download data中下载详细数据。
其它可查看数据
单进程运行模式下 不基于web界面的应用命令行执行 无UI界面 更加节省客户端资源。
locust -f locustfile.py --headless -u 100 -r 50 -t 10s
启动参数
–-headless:表示不使用Web界面运行测试。
-u:设置总体并发用户数。
-r:设置每秒启动虚拟用户数。
-t:设置运行时间(例如300s, 20m, 3h, 1h30m) 时间到达时locust自动关闭。
可以执行locust --help查看更多参数命令。
其实这是一篇之前写的旧文啦 今天有主动学习 但是来不及也没有足够的精力去更新啦。但是locust我确实近期压测一直在用 并且觉得对于技术有些薄弱的人十分友好。当然我目前负责的项目接口结构比较固定 现有的知识基本可以满足压测的需求 但也需要继续深入。
关于脚本 其实还有一些写过的知识点 明天分享给大家。
自我记录 有错误欢迎指正~
最后 可以在公众号 伤心的辣条 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享 其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容 请 “点赞” “评论” “收藏” 一键三连哦 喜欢软件测试的小伙伴们 可以加入我们的测试技术交流扣扣群 914172719 里面有各种软件测试资源和技术讨论
好文推荐转行面试 跳槽面试 软件测试人员都必须知道的这几种面试技巧
面试经 一线城市搬砖 又面软件测试岗 5000就知足了…
面试官 工作三年 还来面初级测试 恐怕你的软件测试工程师的头衔要加双引号…
什么样的人适合从事软件测试工作
那个准点下班的人 比我先升职了…
测试岗反复跳槽 跳着跳着就跳没了…



