基于python的界面自动化测试-Python实现性能自动化测试竟然如此简单
一、思考❓❔
1.什么是性能自动化测试?
性能系统负载能力超负荷运行下的稳定性系统瓶颈自动化测试使用程序代替手工提升测试效率性能自动化使用代码模拟大批量用户让用户并发请求多页面多用户并发请求采集参数,统计系统负载能力生成报告
2.Python中的性能自动化测试库?
locust库
使用Python使用代码来创建批量用户分布式可以在多台服务器上,进行分布式性能测试可伸缩性强稳定、应用广泛经得住各种场景下的考验基于web ui界面展示测试详情能测任何系统
二、基础操作��
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
运行之后,控制台会在本地监听一个端口
a. 程序文件要命名为 locustfile.py才行
b. 假如命名为one_example.py,则需要这样运行
locust -f one_example.py
在浏览器打开UI设置界面
默认使用localhost:8089打开
三、综合案例演练��
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参数指定压测程序文件名
3.打开web ui界面进行配置
设置并发用户数为10,每5秒创建一个用户
压测过程截图
美轮美奂的压测报告
压测失败详情
下载压测统计数据
下载的压测统计数据csv文件
六、总结��
locust做压测功能极其强大支持分布式部署提供的接口简单压测代码非常容易编写提供UI界面来配置美观、详细的图表统计
总结
以上所述是小编给大家介绍的Python实现性能自动化测试竟然如此简单,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
基于python的界面自动化测试-Python实现性能自动化测试竟然如此简单相关推荐
- python使用界面-用python编写简单ui界面窗口
学习了Python编程语言之后,可以做许多有趣的事情.例如可以使用python设计一个窗口,现在小编将使用tkinter为大家演示创建一个小窗口,设置了2个按钮,一个是btn关闭窗口,另一个是btn用 ...
- python软件界面-python软件界面介绍(python软件介绍)
python软件界面介绍 1.接口初始化 当我们使用pycharm工具时,我们将遇到的第一个问题是,在进行各种配置后界面变得混乱时,我们该怎么办?我们应该还原,那么如何还原初始设置? 尽管此工具是从e ...
- python软件介绍-python软件界面介绍(python软件介绍)
python软件界面介绍 1.接口初始化 当我们使用pycharm工具时,我们将遇到的第一个问题是,在进行各种配置后界面变得混乱时,我们该怎么办?我们应该还原,那么如何还原初始设置? 尽管此工具是从e ...
- python tkinter界面布局,python图形界面tkinter布局那些事
布局 任何界面都有自己的布局风格,有些是横向布局,有些是纵向布局,有些是流水布局,还有些是网格布局,总之布局就是一种考虑如何放置元素或者组件的一种说明方式. 包裹(包装)布局 thinter中使用pa ...
- 用Python删除电脑中的重复文件!竟然这么简单!
在生活中,我们经常会遇到电脑中文件重复的情况. 在文件较少的情况下,这类情况还比较容易处理,最不济就是一个个手动对比删除: 而在重复文件很多的时候,我们很难保证把重复文件全部删完. 这里黄帮主给大家带 ...
- python软件界面-用Python写一个语音播放软件
原标题:用Python写一个语音播放软件 单位经常使用广播进行临时事项的通知(将文字转换为语音然后通过功放广播),但是市面上多数语音播放软件都是收费的,要么发音失真,要么不够稳定--经常出现莫名其妙的 ...
- python使用界面-用python制作用户图形界面
PySimpleGui是一个Python的Gui库,比较接地气易上手.所以我就简单做了个计算插值多项式的程序试试手.第一次写UI代码,c++高手勿扰. 运行程序,首先输入插值节点的数量: 然后输入各个 ...
- python优秀界面demo_python漂亮界面demo-女性时尚流行美容健康娱乐mv-ida网
女性时尚流行美容健康娱乐mv-ida网 mvida时尚娱乐网 首页 美容 护肤 化妆技巧 发型 服饰 健康 情感 美体 美食 娱乐 明星八卦 首页 > 高级搜索 python 读写/追加exc ...
- 基于python的界面自动化测试-基于Python语言的自动化测试实战第二章(上)
原标题:基于Python语言的自动化测试实战第二章(上) 测试环境搭建 2.1 Windows 下的环境搭建 如果想要学习一门编程语言,对于新手来说只需到其官方网站上去下载最新版本安装即可,但对于想要 ...
最新文章
- 博客园----你真的没有没落.感恩博客园。。。
- ubuntu系统安装mysql(deb-bundle包)
- python读取excel某一行内容-python3读取excel文件只提取某些行某些列的值方法
- ---随心买统计查询
- LeetCode-56-Merge Intervals
- 初次运行git前的配置
- container and Injection
- java jdk 9 64位下载地址_jdk9.0官方下载|jdk9 64位下载官方正式版 1.9 - 系统天堂
- PHP7.1 狐教程
- Can Place Flowers
- 基于javaweb的音乐网站
- STEP 7 MicroWin SP9 帮助文档修复
- 泛微e-Bridge未授权文件读取漏洞复现
- L2-029 特立独行的幸福 (递归) 有代码详细解析
- matlab第三章笔记
- opencv中 画六边形
- 关于NB-IOT模块链接阿里物联网平台的学习笔记-记录
- SQL字符串转化数字
- 这是2021年个人所得税税率表
- 云栖大会人脸识别闸机【技术亮点篇6】--人脸识别闸机采用活体检测技术
热门文章
- ios 圆形旋转菜单_iOS高级动画:圆形树展开收起动画
- python中figsize什么意思_matplotlib 设置图形大小时 figsize 与 dpi 的关系
- (转载)linux下输入输出重定向和管道符
- 开发日记-20190618 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
- 开发日记-20190610 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
- 开发日记-20190607 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
- 开发日记-20190423 关键词 模块化完整方案实现 blog读后感
- 分布式锁的实现方式——ACID数据库、缓存或者是zk
- 原生Js_简易图片轮播模板
- [原创]Devexpress XtraReports 系列 10 创建标签报表