Python实现性能自动化测试竟然如此简单


Posted in Python onJuly 30, 2019

一、思考❓❔

1.什么是性能自动化测试?

Python实现性能自动化测试竟然如此简单

性能系统负载能力超负荷运行下的稳定性系统瓶颈自动化测试使用程序代替手工提升测试效率性能自动化使用代码模拟大批量用户让用户并发请求多页面多用户并发请求采集参数,统计系统负载能力生成报告

2.Python中的性能自动化测试库?

Python实现性能自动化测试竟然如此简单

locust库

使用Python使用代码来创建批量用户分布式可以在多台服务器上,进行分布式性能测试可伸缩性强稳定、应用广泛经得住各种场景下的考验基于web ui界面展示测试详情能测任何系统

二、基础操作??

Python实现性能自动化测试竟然如此简单

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

运行之后,控制台会在本地监听一个端口

Python实现性能自动化测试竟然如此简单

a. 程序文件要命名为 locustfile.py才行

b. 假如命名为one_example.py,则需要这样运行

locust -f one_example.py

在浏览器打开UI设置界面

默认使用localhost:8089打开

Python实现性能自动化测试竟然如此简单

Python实现性能自动化测试竟然如此简单

三、综合案例演练??

Python实现性能自动化测试竟然如此简单

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参数指定压测程序文件名

Python实现性能自动化测试竟然如此简单

3.打开web ui界面进行配置

设置并发用户数为10,每5秒创建一个用户

Python实现性能自动化测试竟然如此简单

压测过程截图

Python实现性能自动化测试竟然如此简单

美轮美奂的压测报告

Python实现性能自动化测试竟然如此简单

压测失败详情

Python实现性能自动化测试竟然如此简单

下载压测统计数据

Python实现性能自动化测试竟然如此简单

下载的压测统计数据csv文件

Python实现性能自动化测试竟然如此简单

六、总结??

Python实现性能自动化测试竟然如此简单

locust做压测功能极其强大支持分布式部署提供的接口简单压测代码非常容易编写提供UI界面来配置美观、详细的图表统计

Python实现性能自动化测试竟然如此简单

总结

以上所述是小编给大家介绍的Python实现性能自动化测试竟然如此简单,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python paramiko实现ssh远程访问的方法
Dec 03 Python
Python中的map、reduce和filter浅析
Apr 26 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python通过matplotlib绘制动画简单实例
Dec 13 Python
OpenCV-Python实现轮廓检测实例分析
Jan 05 Python
Python 获取div标签中的文字实例
Dec 20 Python
对python中词典的values值的修改或新增KEY详解
Jan 20 Python
解决python中导入win32com.client出错的问题
Jul 26 Python
使用python实现画AR模型时序图
Nov 20 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
Sep 29 Python
Python模拟登录requests.Session应用详解
Nov 17 Python
python中pyqtgraph知识点总结
Jan 26 Python
python爬虫 execjs安装配置及使用
Jul 30 #Python
python 实现识别图片上的数字
Jul 30 #Python
django框架模型层功能、组成与用法分析
Jul 30 #Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 #Python
python爬虫 爬取58同城上所有城市的租房信息详解
Jul 30 #Python
python join方法使用详解
Jul 30 #Python
python实现屏保程序(适用于背单词)
Jul 30 #Python
You might like
php封装的连接Mysql类及用法分析
2015/12/10 PHP
php metaphone()函数及php localeconv() 函数实例解析
2016/05/15 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
js实现字符串的16进制编码不加密
2014/04/25 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
js实现二级导航功能
2017/03/03 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
2017/12/25 Javascript
js中的 || 与 && 运算符详解
2018/05/24 Javascript
jquery实现搜索框功能实例详解
2018/07/23 jQuery
解决webpack+Vue引入iView找不到字体文件的问题
2018/09/28 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
Python使用MYSQLDB实现从数据库中导出XML文件的方法
2015/05/11 Python
Python使用BeautifulSoup库解析HTML基本使用教程
2016/03/31 Python
Python urls.py的三种配置写法实例详解
2017/04/28 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
python3.6生成器yield用法实例分析
2019/08/23 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
html5手机键盘弹出收起的处理
2020/01/20 HTML / CSS
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
金融专业毕业生推荐信
2013/11/26 职场文书
函授毕业自我鉴定
2013/12/19 职场文书
作弊检讨书1000字
2014/02/01 职场文书
网页美工求职信范文
2014/04/17 职场文书
软件测试专业推荐信
2014/09/18 职场文书
机关作风建设心得体会
2014/10/22 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书
企业愿景口号
2015/12/25 职场文书
七年级作文之我的梦想
2019/10/16 职场文书
用Python爬取某乎手机APP数据
2021/06/15 Python