迈出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所有方向的学习路线图 ,清楚各个方向要学什么东西

100多节Python课程视频 ,涵盖必备基础、爬虫和数据分析

100多个Python实战案例 ,学习不再是只会理论

华为出品独家Python漫画教程 ,手机也能学习

历年互联网企业Python面试真题 ,复习时非常方便

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

相关推荐
一张假钞19 分钟前
Python3操作MongoDB批量upsert
开发语言·数据库·python·mongodb
C#Thread1 小时前
C# 上位机--枚举
开发语言·c#
嘵奇1 小时前
Python练习11-20
开发语言·python
放学-别走1 小时前
基于Django以及vue的电子商城系统设计与实现
vue.js·后端·python·django·毕业设计·零售·毕设
yunAike1 小时前
PyCharm 批量替换
python
游王子2 小时前
Python Pandas(9):Pandas 相关性分析
开发语言·python·pandas
不会玩技术的技术girl2 小时前
使用Java爬虫获取京东商品评论API接口(JD.item_review)数据
java·开发语言·爬虫
游客5202 小时前
自动化办公|xlwings 数据类型和转换
运维·python·自动化
计算机毕设指导62 小时前
基于Spring Boot的医院挂号就诊系统【免费送】
java·服务器·开发语言·spring boot·后端·spring·maven
m0_748238922 小时前
Java面试题--设计模式
java·开发语言·设计模式