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

发表于:2019-8-06 11:17

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:可优    来源:网络

  一、思考??
  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界面来配置
  美观、详细的图表统计

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号