![](https://i-blog.csdnimg.cn/direct/23c2b6d23e9244b18c351077fcbb4c10.png)
一、思考❓❔
1.什么是性能自动化测试?
![](https://img-blog.csdnimg.cn/img_convert/e3bfc87de9401d9908c2da1357a12e0c.png)
- 性能
- 系统负载能力
- 超负荷运行下的稳定性
- 系统瓶颈
- 自动化测试
- 使用程序代替手工
- 提升测试效率
- 性能自动化
- 使用代码模拟大批量用户
- 让用户并发请求
- 多页面多用户并发请求
- 采集参数,统计系统负载能力
- 生成报告
2.Python中的性能自动化测试库?
![](https://img-blog.csdnimg.cn/img_convert/3f892da5eb1cda4f16d982293d45cd77.png)
locust库
- 使用Python
- 使用代码来创建批量用户
- 分布式
- 可以在多台服务器上,进行分布式性能测试
- 可伸缩性强
- 稳定、应用广泛
- 经得住各种场景下的考验
- 基于web ui界面展示测试详情
- 能测任何系统
二、基础操作🔨🔨
![](https://img-blog.csdnimg.cn/img_convert/b05aa613520ec56eba8d577e4e275094.png)
1.安装locust
- 使用官方pypi源来安装
pip install locustio
- 使用豆瓣pypi源来安装(推荐)
pip install -i https://pypi.douban.com/simple locustio
安装成功之后,在cmd控制台将会新增一条命令,可输入如下命令查看:
locust --help
2.基本用法
-
在项目根目录下创建locustfile.py文件
from locust import Locust, TaskSet, task class MyTasks(TaskSet): """ 创建测试任务类,需要继承TaskSet 可以添加多个测试任务 """ # 每个测试任务,往往会以实例方法的形式来呈现 # 同时需要使用task装饰器来装饰测试任务 @task def one_task(self): print("执行一个伟大的测试任务!") class RunTasks(Locust): """ 创建运行测试类,需要继承Locust父类 """ task_set = MyTasks # 指定测试任务类,使用task_set覆盖父类的类属性 min_wait = 2000 # 指定启动任务间隔的时间范围(单位毫秒):2~5秒之间 max_wait = 5000 # 使用min_wait、max_wait覆盖父类的类属性
-
执行性能测试
# 打开Pycharm Terminal控制台 # 运行如下命令: locust
运行之后,控制台会在本地监听一个端口
![](https://img-blog.csdnimg.cn/img_convert/a2f153ac7dfc271863b00884688f5e8b.png)
a. 程序文件要命名为 locustfile.py才行
b. 假如命名为one_example.py,则需要这样运行
locust -f one_example.py
-
在浏览器打开UI设置界面
- 默认使用localhost:8089打开
![](https://img-blog.csdnimg.cn/img_convert/e886a3ce645a540ac5a38b3ac52a3eb7.png)
![](https://img-blog.csdnimg.cn/img_convert/604a0394dc48c5422f79782b32f38f72.png)
三、综合案例演练🔨🔨
![](https://img-blog.csdnimg.cn/img_convert/bc706429f3c600ce74c2afbb0e2de43e.png)
1.编写自动化测试脚本
-
在项目根目录下创建test_load.py文件
from locust import HttpLocust, TaskSet, task
class AdminLoadTest(TaskSet):
"""
创建后台管理站点压测类,需要继承TaskSet
可以添加多个测试任务
"""
def login(self):
"""
登录实例方法
:return:
"""
self.client.post("http://localhost:8088/users/login/",
{"user_account": "admin", "password": "123456"})def logout(self): """ 登出实例方法 :return: """ self.client.get("http://localhost:8088/users/logout/") def on_start(self): """ 当任何一个task调度执行之前, on_start实例方法会被调用 先登录 :return: """ self.login() def on_stop(self): """ 当任何一个task调度执行之后, on_stop实例方法会被调用 后登出 :return: """ self.logout() @task def admin_index(self): """ 对后台主页进行压测 :return: """ self.client.get("http://localhost:8088/admin/")
class RunLoadTests(HttpLocust):
"""
创建运行压测类
"""
task_set = AdminLoadTest
2.使用命令行运行
- 打开Pycharm Terminal控制台,运行如下命令:
注意:--host参数指定http主机地址,-f参数指定压测程序文件名
![](https://img-blog.csdnimg.cn/img_convert/914fb3f394db7fb537157dd32997a213.png)
3.打开web ui界面进行配置
设置并发用户数为10,每5秒创建一个用户
![](https://img-blog.csdnimg.cn/img_convert/b7ab3d8b6fc72d8768a85e9155e5c852.png)
压测过程截图
![](https://img-blog.csdnimg.cn/img_convert/3b2ce665c9cb7a89a895047a486aaeb2.png)
美轮美奂的压测报告
![](https://img-blog.csdnimg.cn/img_convert/0ac4e0512dd35f7000af66b373cd2079.png)
压测失败详情
![](https://img-blog.csdnimg.cn/img_convert/5b198c59b653b370ab3d51f97578e68e.png)
下载压测统计数据
![](https://img-blog.csdnimg.cn/img_convert/57efd9381122327cc915bdd208e11cbf.png)
下载的压测统计数据csv文件
![](https://img-blog.csdnimg.cn/img_convert/8945072d93f5a0f8657b33212e26bd1e.png)
六、总结💡💡
![](https://img-blog.csdnimg.cn/img_convert/d7d5b25f4ab137ca53bd362f3141adab.png)
- locust做压测功能极其强大
- 支持分布式部署
- 提供的接口简单
- 压测代码非常容易编写
- 提供UI界面来配置
- 美观、详细的图表统计
最后这里免费分享给大家一份Python全台学习资料,包含视频、源码。课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
编程资料、学习路线图、源代码、软件安装包【点击这里】领取!
① Python所有方向的学习路线图
,清楚各个方向要学什么东西
② 100多节Python课程视频
,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例
,学习不再是只会理论
④ 华为出品独家Python漫画教程
,手机也能学习
⑤ 历年互联网企业Python面试真题
,复习时非常方便
![](https://i-blog.csdnimg.cn/direct/a7e3fe4cfdf241e6a1face32fe09c7e8.png)
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
![](https://img-blog.csdnimg.cn/img_convert/30723deff77a2f6af817fc0892158421.png)
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
![](https://img-blog.csdnimg.cn/img_convert/f874af3c700721cfa7b482156e7da47c.png)
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
![](https://i-blog.csdnimg.cn/direct/36fee8d64ff54f85a07054833c29a603.png)
四、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
![](https://img-blog.csdnimg.cn/img_convert/06e6d22e6bd1624b0689923a2e55ff81.png)
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
![](https://img-blog.csdnimg.cn/img_convert/982df5e1a2e44f99cb4d19f3f7aad16c.png)