一、思考 ❓❔
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 --help2.基本用法
- 在项目根目录下创建 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 = AdminLoadTest2.使用命令行运行
- 打开 Pycharm Terminal 控制台,运行如下命令:
注意:--host 参数指定 http 主机地址,-f 参数指定压测程序文件名
 
3.打开 Web ui 界面进行配置
设置并发用户数为 10,每秒创建 5 个用户

压测过程截图
 
 
美轮美奂的压测报告
 
 
压测失败详情

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

六、总结??
- locust 做压测功能极其强大
- 支持分布式部署
- 提供的接口简单
- 压测代码非常容易编写
- 提供 UI 界面来配置
- 美观、详细的图表统计
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【100%免费无套路】 




![[Vue]解决npm run dev报错node:internal/modules/cjs/loader:1031 throw err;](https://img-blog.csdnimg.cn/fff15ffd63bd45ccbb9a47efcec839fe.png)















