Python - Locust对接口进行压测
我们在做性能测试主要去看的就是以上四点:错误率,响应时间,tps和rps
当我们使用Python去构建自动化测试框架时,我们用Locust来对接口进行压测,具体写法如下:
首先我们需要在cmd中安装locust,命令:pip install locust
更正上图:locust
安装好后我们可以通过命令:locust --version查看其安装的版本
接下来我们看代码中具体如何实现对于locust的使用:
from locust import HttpUser,task,TaskSet import os #我们在做接口自动化测试时,使用的是request对接口发起请求,在这里我们用的是locust中的httpuser对接口进行发起请求 class Opms(HttpUser): def on_start(self): print("我是一个用户,我启动了") def on_stop(self): print("我是一个用户,我退出了") #定义好的接口必须使用task装饰器使其成为一个需要执行的任务,否则的话即使启动了locust也不会将定义好的函数作为一个需要执行的任务 @task def login(self): url = "/login" with self.client.get(url=url, name="获取登录页", catch_response=True) as res:#下面断言,当我们返回的text中有项目管理则登录成功,反之失败 if "项目管理" in res.text: res.success() else: res.failure("自定义失败:获取主页失败") @task def postLogin(self): url = "/login" data = { "username": "libai", "password": "opms123456" } with self.client.post(url, data=data, name="登录", catch_response=True) as res: if res.json()["code"] == 1: res.success() else: res.failure("自定义失败:登陆失败") if __name__ == '__main__': os.system("locust -f loginLocust.py --web-host=127.0.0.1")
右键启动,或者直接在终端使用命令,
locust -f loginLocust.py --web-host=127.0.0.1
成功启动后我们会在终端看到如图所示
复制url到浏览器打开网页
我们成功启动了locust其中第一行Number of users 是用户数(线程数),Spawn rate(几秒内集合),Host(根URL)。
我们输入50人 在2秒内尝试压测一下登录接口和登录页面
启动压测中,这时候我们等待一段时间,当50个线程组全部加压上去后过段时间我们看一下其性能表现,注意一定要等一段时间,因为在一开始线程组没上去时产生的数据并没啥用。
关注其中几个重要的指标,Fails,90%ile,99%ile,以及RPS,通过分析,我们在压测的过程中,产生的错误数<5%只有1%说明错误数是在可控制范围内,再看响应速度,90%的人是2秒和1.3秒,99%的人是4.6秒和3.1秒,其实如果超过3秒已经有点慢了,但是也不是不可以接受,RPS是55.2。这个数据还可以接受说明远没有到性能瓶颈,接下来我们可以继续加大线程数继续压测。
以上就是Python+locust进行的性能测试。
性能测试的几个关注的重点:
参考链接:https://blog.csdn.net/weixin_42297382/article/details/124776463
作者:小林同学_Scorpio
本博客所有文章仅用于学习、分享和交流目的,欢迎非商业性质转载。
博主的文章没有高度、深度和广度,只是凑字数,做笔记。由于博主的水平不高,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用参考、引用、抄袭、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个无耻的文档搬运工!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!