当前位置: 首页 > news >正文

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, taskclass MyTasks(TaskSet):"""创建测试任务类,需要继承TaskSet可以添加多个测试任务"""# 每个测试任务,往往会以实例方法的形式来呈现# 同时需要使用task装饰器来装饰测试任务@taskdef 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, taskclass 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()@taskdef 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界面来配置
  • 美观、详细的图表统计

 

这个是学习性能测试的大纲,有需要的可以后台和我【留言】

写在最后

如果你觉得文章还不错,请大家 点赞、分享下,因为这将是我持续输出更多优质文章的最强动力!

看到这篇文章的人有觉得我的理解有误的地方,也欢迎评论和探讨~

你也可以加入下方的的群聊去和同行大神交流切磋

 

http://www.lryc.cn/news/13821.html

相关文章:

  • Leetcode力扣秋招刷题路-0080
  • Java实现JDBC工具类DbUtils的抽取及程序实现数据库的增删改操作
  • 【docker】拉取镜像环境报错解决#ERROR: Get https://registry-1.docker.io/v2/
  • java中NumberFormat 、DecimalFormat的介绍及使用,java数字格式化,BigDecimal数字格式化
  • 2023什么是分销商城系统?营销,核心功能
  • 天翼数字生活C++客户端实习
  • Java 接口
  • 【React】react-router 路由详解
  • DaVinci 偏好设置:系统 - 内存和 GPU
  • 视频知识点(22)- 教你认清楚YUV420P和YUV420SP的真正差异在哪里
  • 企业电子招标采购系统源码Spring Cloud + Spring Boot + MybatisPlus + Redis + Layui
  • 面试常问-Alpha测试和Beta测试
  • html理论基础
  • 【安卓开发】数据存储全方案--详解持久化技术
  • Vue项目实战
  • Github 学生优惠包 -- 最新防踩坑指南
  • 2023年美国大学生数学建模A题:受干旱影响的植物群落建模详解+模型代码(二)
  • 第47章 后端管理首页与Axios拦截守卫原理
  • 【前端】小程序开发入门:安装开发工具、目录结构与项目配置
  • Java反序列化漏洞——CommonsBeanutils1链分析
  • 三菱PLC的MC协议配置说明
  • Python基础复习总结
  • 【Linux操作系统】【综合实验五 网络管理与通信】
  • Qt下实现不规则形状窗口显示
  • 使用ribbon实现负载均衡
  • 从页面仔到工程师,前端到底在发挥什么价值
  • Java程序员进阶宝典,让你学习面试无忧!
  • Hadoop HDFS的主要架构与读写文件
  • 面试题练习第五篇
  • hadoop02【尚硅谷】