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

简介: Python实现性能自动化测试竟然如此简单一、思考1.什么是性能自动化测试?性能系统负载能力超负荷运行下的稳定性系统瓶颈自动化测试使用程序代替手工提升测试效率性能自动化使用代码模拟大批量用户让用户并发请求多页面多用户并发请求采集参数,统计系统负载能力生成报告2.

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
运行之后,控制台会在本地监听一个端口

  1. 程序文件要命名为 locustfile.py才行
  2. 假如命名为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界面来配置
美观、详细的图表统计

原文地址https://www.cnblogs.com/keyou1/p/11268241.html

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
3天前
|
SQL 测试技术 网络安全
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
Python之SQLMap:自动SQL注入和渗透测试工具示例详解
12 0
|
3天前
|
消息中间件 程序员 调度
Python并发编程:利用多线程提升程序性能
本文探讨了Python中的并发编程技术,重点介绍了如何利用多线程提升程序性能。通过分析多线程的原理和实现方式,以及线程间的通信和同步方法,读者可以了解如何在Python中编写高效的并发程序,提升程序的执行效率和响应速度。
|
3天前
|
缓存 并行计算 Serverless
优化Python代码性能的5个技巧
在日常Python编程中,代码性能的优化是一个重要的议题。本文介绍了5个实用的技巧,帮助你提高Python代码的执行效率,包括使用适当的数据结构、优化循环结构、利用内置函数、使用生成器表达式以及并行化处理。通过这些技巧,你可以更高效地编写Python代码,提升程序的性能和响应速度。
|
3天前
|
测试技术 开发者 Python
Python中的单元测试
【5月更文挑战第8天】在Python软件开发中,确保代码质量是关键,单元测试和测试驱动开发(TDD)是实现这一目标的有效方法。本文介绍了如何使用unittest和pytest进行单元测试,以及如何通过TDD编写可靠代码。首先,展示了单元测试的基本概念和示例,然后详细解释了TDD的"红-绿-重构"循环。此外,还讨论了pytest如何简化单元测试,并给出了使用TDD重构函数的例子。
6 1
|
5天前
|
存储 安全 数据库
自动化密码填充:使用Python提高日常工作效率
自动化密码填充:使用Python提高日常工作效率
10 0
|
5天前
|
SQL 数据库 数据库管理
python自动生成SQL语句自动化
python自动生成SQL语句自动化
23 1
|
5天前
|
持续交付 Python
使用Python实现自动化Web内容巡检
使用Python实现自动化Web内容巡检
17 1
|
8天前
|
监控 测试技术 持续交付
Python自动化测试代理程序可用性
总之,通过编写测试用例、自动化测试和设置监控系统,您可以确保Python自动化测试代理程序的可用性,并及时发现和解决问题。这有助于提供更可靠和高性能的代理服务。
12 4
|
11天前
|
机器学习/深度学习 算法 UED
【Python 机器学习专栏】A/B 测试在机器学习项目中的应用
【4月更文挑战第30天】A/B测试在数据驱动的机器学习项目中扮演关键角色,用于评估模型性能、算法改进和特征选择。通过定义目标、划分群组、实施处理、收集数据和分析结果,A/B测试能帮助优化模型和用户体验。Python提供工具如pandas和scipy.stats支持实验实施与分析。注意样本量、随机性、时间因素和多变量分析,确保测试有效性。A/B测试助力于持续改进机器学习项目,实现更好的成果。
|
11天前
|
机器学习/深度学习 算法 Python
【Python 机器学习专栏】随机森林算法的性能与调优
【4月更文挑战第30天】随机森林是一种集成学习方法,通过构建多棵决策树并投票或平均预测结果,具有高准确性、抗过拟合、处理高维数据的能力。关键性能因素包括树的数量、深度、特征选择和样本大小。调优方法包括调整树的数量、深度,选择关键特征和参数优化。Python 示例展示了使用 GridSearchCV 进行调优。随机森林广泛应用于分类、回归和特征选择问题,是机器学习中的重要工具。

热门文章

最新文章