基于python的压测工具_【Linux】【压测】基于python Locust库实现自动化压测实践

本文介绍了使用Python的Locust库进行自动化压力测试的实践过程,包括环境准备、代码编写和压测执行。首先,确保API和参数可用,通过Postman等工具测试。接着,编写Locust脚本,读取外部参数,模拟GET请求。最后,运行Locust并监控结果。待续。

关于python+locust系列:

基于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 importHttpLocust, 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'''

classAdminLoadTest(HttpUser):

wait_time= between(5, 9)"""创建后台管理站点压测类,需要继承TaskSet

可以添加多个测试任务"""

@task(3)defget_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:whileTrue:

line=file_to_read.readline()if notline:breakline= line.strip('\n')

self.client.get("https://www.cnblogs.com/haochuang/api/rest/v1/en/haochuang/query?number="+line)

file_to_read.close()

@taskdefget_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")

classRunLoadTests(HttpUser):"""创建运行压测类"""task_set= AdminLoadTest

txt文件比较简单,里面就是测试数据,主要是在python中需要把路径制定正确,路径中的注意转义;

95a46eeef04cebb9b004eba1231018c0.png

具体代码写好之后,我们可以运行:

PS D:\CODE\CODE_VSCode\HAO_VSCcode\HAO_AutoTest\LOCUST\HAO_Locust\LocustDemo> locust --host=http://localhost -f .\test_haochuang\test_haochuang_locust.py

dc7489a0898d5d2a7cb77e1703733425.png

然后,在浏览器中设置好需要的模拟用户数量,以及需要压测的速率。

923c1c4e9afac7e454634edf8718ab43.png

3.压测执行,与运行结果查看,监控等;

80ab3898922e5e8c7f3c36851458644a.png

Charts:

919df4512f24a5b925d18f1d64d08a5e.png

8e7f4722eb58c24539fd8cbbf124d25a.png

Failures:

b6793c55377a217a224fb4bc52f8cb53.png

Download Datas:

c704d98bb7e6d222464885a076b60afb.png

下载文件可见结果如下:

e44466c008e73450166c23b422731045.png

至于等待时间,以及压测其他参数调优,过程控制等,我下次再实践之后补充文档介绍。

待续

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值