栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

利用python-locust实现接口自动化压测

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

利用python-locust实现接口自动化压测

Locust简介

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 | python3
Locust使用

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就知足了…

面试官 工作三年 还来面初级测试 恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作

那个准点下班的人 比我先升职了…

测试岗反复跳槽 跳着跳着就跳没了…

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268219.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号