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通过exifread模块获得图片exif信息的方法
Mar 16 Python
Python使用文件锁实现进程间同步功能【基于fcntl模块】
Oct 16 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
Nov 22 Python
如何在python中使用selenium的示例
Dec 26 Python
pandas将numpy数组写入到csv的实例
Jul 04 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
Apr 01 Python
PyQt5 QTableView设置某一列不可编辑的方法
Jun 25 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
Pycharm如何运行.py文件的方法步骤
Mar 03 Python
Django多层嵌套ManyToMany字段ORM操作详解
May 19 Python
python list的index()和find()的实现
Nov 16 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 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和XSS跨站攻击的防范
2007/04/17 PHP
PHP 上传文件大小限制
2009/07/05 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
JS对img标签进行优化使用onerror显示默认图像
2014/04/24 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
JavaScript使用addEventListener添加事件监听用法实例
2015/06/01 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
Java中int与integer的区别(基本数据类型与引用数据类型)
2017/02/19 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
element-ui 弹窗组件封装的步骤
2021/01/22 Javascript
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
Python创建xml的方法
2015/03/10 Python
使用wxPython获取系统剪贴板中的数据的教程
2015/05/06 Python
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
python实现多线程抓取知乎用户
2016/12/12 Python
python数据处理 根据颜色对图片进行分类的方法
2018/12/08 Python
python的schedule定时任务模块二次封装方法
2019/02/19 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
pandas 按日期范围筛选数据的实现
2021/02/20 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
妇产科护士自我鉴定
2013/10/15 职场文书
求职简历自荐信范文
2013/10/21 职场文书
小区门卫工作职责
2013/12/14 职场文书
霸气押韵的班级口号
2014/06/09 职场文书
2014向国旗敬礼网上签名活动总结
2014/09/27 职场文书
学校领导班子四风问题整改意见
2014/10/02 职场文书
致百米运动员广播稿5篇
2014/10/13 职场文书
买房协议书范本
2014/10/23 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
python glom模块的使用简介
2021/04/13 Python