locust实战

locust是非常优秀的性能测试工具,它是依赖于Python的环境,所以使用它的前提是首先需要安装它。

locust是基于协程的设计,什么是协程,可以把它理解为微小的线程,基于用户的行为可以控制它。python一直很优秀,但是python在性能方面的表现很差劲,所以了python设计了协程来改进这部分的设计缺陷。locust对服务端的负载能力很强,所以使用它可以来做服务端的稳定性测试。

locust官网:https://docs.locust.io/en/stable/

安装:在控制台输入命令:pip3 install locust

 

 

locust概述

在Python的技术栈的体系中,性能测试的⼯具是Locust的测试框架,Locust是⼀种易于编写,可以编写测试脚本 和可以扩展的性能测试⼯具,它是基于协程来进⾏设计的,当然也可以说是基于event的事件来进⾏设计的。协程我们可以简单的理解为是基于⽤户态的线程,更加专业的话说是微线程,基于⽤户可以控制的⼀种微⼩的线程,也可以叫协程。

1、web模式

场景实战:下面我们使用locust工具测试java程序

1.打开控制台,进入到.jar包存放的目录(这里我存放的是桌面),进入到该目录下(桌面)启动程序

 

2.打开另外一个控制台,输入命令jvisualvm,打开JVM监控

 

 

 3.重新打开一个控制台,输入命令:locust -f locustfile.py 就会启动locust的程序

 

 4.访问这个地址:http://localhost:8089

 

 

下⾯具体针对界⾯的⽂字设置进⾏解释,具体如下:

• Number of total users to simulate:设置模拟的⽤户总数

• Spawn rate (users spawned/second):每秒启动的⽤户虚拟数

• Host (e.g. http://www.example.com):被测的⽬标服务器的地址信息

5.编写具体的数据后,点击start swarming,开始测试

使用locust做性能测试,会一直循环下去,不按stop不会停止,一般用来做系统的稳定性测试。

 

 Type:请求类型(也就是请求具体是哪个⽅法)

Name:请求的路径地址信息

Requests:当前已完成的请求数量

Fails:当前失败的数量

Mediam(ms): 响应时间的中位数

90%ile (ms):90%的请求响应时间

Average (ms):平均响应时间

Min (ms):最⼩响应时间

Max (ms):最⼤响应时间

Average size (bytes):平均请求的数据量

Current RPS:每秒中处理请求的数量,也就是RPS

 

 

菜单栏具体为:

New test:点击该按钮可对模拟的总虚拟⽤户数和每秒启动的虚拟⽤户数进⾏编辑;

Statistics:聚合报告

Charts:测试结果变化趋势的曲线展示图,分别为每秒完成的请求数(RPS)、响应时间、不同时间的虚拟⽤户数;

Failures:失败请求的展示界⾯;

Exceptions:异常请求的展示界⾯;

Download Data:测试数据下载模块, 提供三种类型的CSV格式的下载,分别是:Statistics、responsetime、 exceptions;

 

 

2、负载模式

Locust⽐较优秀的地⽅在于它可以在单机模式的情况下,可以实现对服务端⾼负载的压⼒测试,这样对服务端的压⼒会造成很⼤的负载,我们可以测试在加载完的模拟的⽤户后,继续对服务端发送请求。

常规的性能测试,我们用web模式。如果是负载测试,就用负载模式。

 

 

 

 

 

面试题:

1、Jmeter与locust的区别?

1、JMeter是100%Java语言开发的,它是基于线程的模式向服务端发送请求

2、Locust是Python语言开发的,它是基于协程的模式,一般用来做系统的稳定性测试。

2、你之前有做过服务端稳定性测试吗?你是怎么理解它的?

1、服务端稳定性测试指的是持续高并发的向服务端发送请求,服务端都能够处理客户端发送的处理,通过这样的一个模式来验证服务端它在持续高负载下它的业务处理能力,和系统的整体设计能力。如一码通,持续72小时连续不停的扫描二维码,都应该能够很快速的出健康码。

2、有做过,如果是使用JMeter,就是无限循环,如果是locust,就一直持续的请求,具体多久,我们之前是24小时连续不停的请求

 

posted @ 2022-05-24 17:34  lm970418  阅读(142)  评论(0编辑  收藏  举报