使用Locust完成性能测试(一)——持续测试(18)

发表于:2022-10-14 09:20

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

 作者:陈磊    来源:51Testing软件测试网原创

  3.1.3  使用Locust完成性能测试
  上面讲了这么多Locust的优点,那么如何开始使用Locust呢?首先要保证个人计算机上已安装3.x系列的某个Python版本并且已经配置好,然后通过代码清单3-2所示的命令安装Locust。
代码清单3-2
  Locust提供了很多开源的依赖库,下面看看具体都有哪些。从网站下载Locust的代码,将代码复制到本地后,打开setup.py文件,其内容如代码清单3-3所示。
代码清单3-3
  Locust使用了以下开源的依赖库。
  Gevent:一个基于协程的Python网络库,其本身是对greenlet的高级封装,greenlet则封装了libevent事件循环的高层并发API。Locust利用Gevent实现了协程机制。
  Flask:一个使用Python编写的轻量级Web应用框架。Locust利用Flask实现了UI的控制台设置。
  requests:Locust使用requests库实现了对HTTP的封装。
  msgpack:一种快速、紧凑的二进制序列化格式,适用于类似于JSON格式的数据。
  six:用于提供一些简单的工具来封装 Python 2和Python 3之间的差异性。
  Pyzmq:用来支持Locust的分布式运行。
  Locust的优势这么明显,那么如何开始使用Locust进行性能测试呢?Locust是纯Python驱动的性能测试框架,因此只要使用Python完成接口测试脚本的编写,就可以快速将接口测试脚本转换成Locust支持的性能测试脚本并完成性能测试工作了。下面以访问Battle系统的首页为例,建立Locust性能测试脚本,如代码清单3-4所示。
代码清单3-4
  在上述代码中,IndexTask类继承自TaskSet类,主要用来描述虚拟用户的行为,里面包含不同任务对应的不同测试用例。index()方法表示测试用例,可通过@task装饰器将其描述成任务。在测试用例中,通过client.get()方法完成HTTP下GET请求的访问,传入的参数是相对路径。测试脚本访问的是Battle系统的首页,因此这里传入的参数是“'/'”。WebSiteUser类用于设置测试场景。该类的成员如下。
  tasks:指向定义的用户行为类。
  min_wait:执行事务之间用户等待时间的下限(单位是毫秒)。
  max_wait:执行事务之间用户等待时间的上限(单位是毫秒)。
  host:指定要访问的根网址。
  Locust提供了两种启动性能场景的方法。第一种是通过Web UI启动性能场景。首先通过Flask启动一个Web程序,然后通过UI设置启动测试。输入代码清单3-5所示的启动命令(可在命令行窗口中输入)。
代码清单3-5
  其中两个选项的作用如下。
  -f用于指定测试脚本。
  --host用于指定被测应用的URL。
  输入启动命令后,若出现以下信息,则表示启动成功。
  在浏览器中输入http://127.0.0.1:8089,访问Locust的场景设置UI。图3-5显示了当前场景下所要测试的URL。
  图3-5中部分选项的含义如下。
图3-5  Locust场景的设置
  Number of users(peak concurrency):想要模拟的用户数。
  Spawn rate(users started/second): 每秒启动的虚拟用户数。
  单击Start swarming按钮,即可进入图3-6所示的运行界面,然后就可以开始测试了。
图3-6  Locust中的运行界面
查看《持续测试》全部连载章节
版权声明:51Testing软件测试网获得作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号