【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,里面有比较详细的介绍。
至于等待时间,以及压测其他参数调优,过程控制等,我下次再实践之后补充文档介绍。
待续
赠人玫瑰
手留余香
我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容……我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系!-杨绛先生
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的