locust性能测试实战
一、locust是非常优秀的性能测试工具,它是依赖于Python的环境,所以了使用它的前提是首先需要安装它
二、locust是基于协程的设计,什么是协程,可以把它理解为微小的线程,基于用户的行为可以控制它。python一直很优秀,但是python在性能方面的表现很差劲,所以了python设计了协程来改进这部分的设计缺陷。locust对服务端的负载能力很强,所以使用它可以来做服务端的稳定性测试
三、在Python的技术栈的体系中,性能测试的⼯具是Locust的测试框架,Locust是⼀种易于编写,可以编写测试脚本 和可以扩展的性能测试⼯具,它是基于协程来进⾏设计的,当然也可以说是基于event的事件来进⾏设计的。协程 我们可以简单的理解为是基于⽤户态的线程,更加专业的话说是微线程,基于⽤户可以控制的⼀种微⼩的线程,也 可以叫协程
四、下载官网https://locust.io/
五、输入命令pip3 install locust开始下载安装
六、locust WEB稳定性测试
1、启动Java的架包打开cmd找的下载的目录路径,输入Java -jar app-0.0.1-SNAPSHOT.jar 启动
2、下载代码
3、输入 locust -f locustfile.py 命令运行
4、打开另外一个控制台,输入命令jvisualvm,打开JVM监控
5、重新打开一个控制台,输入命令:locust -f locustfile.py 就会启动locust的程序
6、打开网页http://localhost:8089
菜单栏具体为:
New test:点击该按钮可对模拟的总虚拟⽤户数和每秒启动的虚拟⽤户数进⾏编辑;
Statistics:聚合报告
Charts:测试结果变化趋势的曲线展示图,分别为每秒完成的请求数(RPS)、响应时间、不同时间的虚拟⽤户数;
Failures:失败请求的展示界⾯;
Exceptions:异常请求的展示界⾯;
Download Data:测试数据下载模块, 提供三种类型的CSV格式的下载,分别是:Statistics、responsetime、 exceptions;
七、负载测试
1、启动Java架包打开cmd找的下载的目录路径,输入Java -jar app-0.0.1-SNAPSHOT.jar 启动
2、下载代码
3、输入 locust -f locustfile2.py 命令运行
4、打开网页http://localhost:8089 进行负载测试
八、面试题
jmeter与locust的区别:
1、JMeter是100%Java语言开发的,它是基于线程的模式向服务端发送请求
2、Locust是Python语言开发的,它是基于协程的模式
你之前有做过服务端稳定性测试吗?你是怎么理解它的?
服务端稳定性测试指的是持续高并发的向服务端发送请求,服务端都能够处理客户端发送的处理,通过这样的一个模式来验证服务端它在持续高负载下它的业务处理能力,和系统的整体设计能力。如一码通,持续72小时连续不停的扫描二维码,都应该能够很快速的出健康码。 2、有做过,如果是使用JMeter,就是无限循环,如果是locust,就一直持续的请求,具体多久,我们之前是24小时连续不停的请求