【Linux】【压测】基于python Locust库实现自动化压测实践
关于python+locust系列:
【Linux】【压测】关于python实现性能自动化工具之Locus: https://www.cnblogs.com/haochuang/articles/13230602.html
【Linux】【压测】基于python Locust库实现自动化压测实践: https://www.cnblogs.com/haochuang/p/13231445.html
基于Python locust,实现自动化压测,这里直接介绍实践的情况,对于环境与安装等,请参考前一篇文章:【Linux】【压测】关于python实现性能自动化工具之Locust
首先大概说下本次实践的思路,主要就是分如下几个步骤:
1.环境安装,与待压测的数据、API准备;
2.代码编写,涉及到读取外部参数等;
3.压测执行,与运行结果查看,监控等;
下面,我按此3个步骤介绍:
1.环境安装,与待压测的数据、API准备;
由于之前项目需要,我本地安装有Python2、Python3两个版本,可以根据需要随时切换使用。
IDE,我本地也有两个工具:PyCharm、VSCode。本次基于VSCode测试。
Python2、Python3、PyCharm、VSCode这些的相关安装配置之类,基本没有什么,此不赘述。
首先需要准备好待压测的API、以及待压测的参数。
这里我先用一个基本的GET的做样例:
GET /api/rest/v1/en/haochuangrtest/query?number=1234567890@HAOCHUANG
参数的话,目前这个主要是number后面的 需要变化,我们可以根据需要通过脚本生成,或者直接从DB里面获取一些,并写入到txt中。
这一步的目标就是要首先保证API和参数本身可用,可访问,http请求可达。
不论是是哟个postman还是postwoman去测试都可以,只要API请求返回正确就可以了。
2.代码编写,涉及到读取外部参数等;
代码编写,我举个目前的样例如下:
test_haochuang_locust.py
from locust import HttpLocust, TaskSet, task, HttpUser, between ''' D:\CODE\CODE_VSCode\HAO_VSCcode\HAO_AutoTest\LOCUST\HAO_Locust\LocustDemo> locust --host=http://localhost -f .\test_haochuang\test_haochuang_locust.py ''' class AdminLoadTest(HttpUser): wait_time = between(5, 9) """ 创建后台管理站点压测类,需要继承TaskSet 可以添加多个测试任务 """ @task(3) def get_status_more_HAOCHUANG(self): """ 查询实例方法 :return: """ rootdir = "D:\\CODE\\CODE_VSCode\\HAO_VSCcode\\HAO_AutoTest\\LOCUST\\HAO_Locust\\LocustDemo\\test_haochuang\\HAOCHUANG.txt" with open(rootdir, 'r') as file_to_read: while True: line = file_to_read.readline() if not line: break line = line.strip('\n') self.client.get("https://www.cnblogs.com/haochuang/api/rest/v1/en/haochuang/query?number="+line) file_to_read.close() @task def get_status_one_HAOCHUANG(self): """ 当任何一个task调度执行之前, on_start实例方法会被调用 先登录 :return: """ self.client.get("https://www.cnblogs.com/haochuang/api/rest/v3/en/haochuang/query?number=26572316@HAOCHUANG") class RunLoadTests(HttpUser): """ 创建运行压测类 """ task_set = AdminLoadTest
txt文件比较简单,里面就是测试数据,主要是在python中需要把路径制定正确,路径中的注意转义;
具体代码写好之后,我们可以运行:
PS D:\CODE\CODE_VSCode\HAO_VSCcode\HAO_AutoTest\LOCUST\HAO_Locust\LocustDemo> locust --host=http://localhost -f .\test_haochuang\test_haochuang_locust.py
然后,在浏览器中设置好需要的模拟用户数量,以及需要压测的速率。
3.压测执行,与运行结果查看,监控等;
Charts:
Failures:
Download Datas:
下载文件可见结果如下:
对于具体的参数,更多扩展等,也可以学习一下官方的这个手册:https://docs.locust.io/en/stable/quickstart.html,里面有比较详细的介绍。
至于等待时间,以及压测其他参数调优,过程控制等,我下次再实践之后补充文档介绍。
待续
相关文章
- python字典添加元素和删除元素
- 【华为OD机试真题 python】 停车场车辆统计【2022 Q4 | 100分】
- Python:os.path.join()产生的斜杠在Windows和Linux下的不同表现和解决方法
- Eclipse Kepler SR2 + Python 3.4 + JDK7+Pydev3.4 搭建 python 开发环境(MAC)
- 35岁了转行python可以吗?什么样的人合适学习Python?
- 30岁转行python,如果不是6岁儿子给我的鼓励,可能幸福也不会来敲门了
- Linux集群和自动化维2.1 Shell和Python语言的简单介绍
- Linux集群和自动化维3.1 Python语言的应用领域
- python format
- 【python】+704个常用工具Python库
- Python 爬虫知识点 - 淘宝商品检索结果抓包分析
- python中的argv使用
- 《Python数据分析》一1.2 从源代码安装NumPy、SciPy、matplotlib和IPython
- 如何在 Python 中创建用于分类的模拟数据?
- Linux-030-Python jupyter notebook 修改样式和字体调整
- 记录一次实验室linux系统的GPU服务器死机故障的排查——Linux系统的Power States
- 【Jenkins自动化部署】Linux节点的Python服务自动化构建
- Linux_自动调整linux系统时间和时区与Internet时间同步
- Linux基础:文件基础属性及如何更改文件属性、文件与目录管理、linux软硬链接的理解、linux用户和用户组管理
- linux服务器安装nodeJS步骤及踩坑记录(解决node -v报错cannot execute binary file: Exec format error的问题 - 在Linux中安装适用于arm64位的nodejs)以及node环境项目部署
- Python序列操作举例
- python win7 appiumDesktop环境搭建
- Python 工具 之 Windows 上 python 虚拟环境的搭建与简单使用的相关说明
- 大学生应该学习python和linux而不是matlab和windows
- 树莓派pigpio实现gpio中断(python版)