千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Locust初步应用

Locust初步应用

来源:千锋教育
发布人:qyf
时间: 2022-06-02 15:26:00 1654154760

  Locust测试本质上是一个Python程序。这使得它非常灵活,尤其擅长实现复杂的用户流。所以如果想要流畅的运用Locust,必须熟悉Python语言编写脚本。

  因此,Locust的简单测试过程,就从这里开始:

  一、编写locustfile脚本文件

  from locust import HttpUser, task

  class HelloWorldUser(HttpUser):

  @task

  def hello_world(self):

  self.client.get("/hello")

  self.client.get("/world")

  这将模拟用户一次又一次地向/hello和/world发出HTTP请求。

  把上面的代码放到一个.py 的Python文件中。然后再该文件所属的目录中运行locust命令:

  二、启动Locust

图片1

  Locust的web界面

  启动Locust之后,打开浏览器并将其指向http://localhost:8089.会看到这样的页面:

图片2

  首先设置用户数量;

  其次设置用户加载和退出的速率;

  最后,将测试指向自己的web服务器并启动它!

  下面的屏幕截图显示了在以0.5用户/s的速度运行这个针对40个并发用户的测试时,将它指向一个响应/hello和/world的服务器。

图片3

  1、Charts模块

  Locust还可以将结果可视化为图表,通过Charts模块,可以查看每秒钟请求数(RPS)、响应时间(RT)、用户量(NU)等。

  每秒请求数(RPS):

图片4

  响应时间(毫秒):

图片5

  虚拟用户数量:

图片6

  注意:

  解释性能测试结果是相当复杂的,而且需要专门的业务知识和性能指标参数的了解,但是如果运行的图开始看起来像上面这样,最有可能的原因是目标服务/系统无法处理遇到的负载(它超载或“饱和”)

图片7

  最明显的迹象是,当达到9个用户时,响应时间开始快速增长,以至于每秒的请求曲线趋于平缓,尽管仍有新用户加入。

  如果无法生成足够的负载使系统饱和,或者需要一些关于如何开始深入研究服务器端问题的指针,请继续关注系列文章的更新。

  2、Failure模块

图片8

  该模块会显示出测试脚本运行中失败的内容、原因等信息。

  这里出现的失败是因为请求没有收到返回的内容也不支持这个请求地址。

  3、Exceptions模块

图片9

  该模块可以显示运行中出现的脚本异常等信息。目前看来是没有异常的,说明脚本运行没有问题。

  4、Tasks模块

图片10

  该模块显示运行中的脚本和任务:

  包括运行的测试脚本的信息;

  每个类别(请求的)的用户比例;

  总比例。

  5、Download Data模块

图片11

  数据下载模块可以提供请求统计、失败情况、异常情况、测试报告等信息的下载。

  三、控制测试脚本的运行

  1、编辑和设计测试脚本

图片12

  通过点击Locust运行状态【status】模块中的【edit】,打开设置,可以设置用户数量和加载速度。

  2、结束测试脚本运行

  可以点击【stop】按钮结束测试场景运行。

  3、重置运行统计数据

  可以点击【Reset stats】按钮重置统计数据。

  四、直接使用命令行/无头

  使用Locust的web UI是完全可选的。可以在命令行上提供加载参数,并以文本形式获得结果报告:

图片13

图片14

  要在多个Python进程或机器上运行Locust,可以使用——master命令行参数启动单个Locust主进程,然后使用——worker命令行参数启动任意数量的Locust工作进程。

  更多关于软件测试培训的问题,欢迎咨询千锋教育在线名师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖名师,让你轻松从入门到精通。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT