当前位置:网站首页>Locust性能测试 —— 环境搭建及使用
Locust性能测试 —— 环境搭建及使用
2022-07-04 21:39:00 【测试界的彭于晏】
1.什么是Locust?
Locust是一个易于使用,可编写脚本且可扩展的性能测试工具。您可以使用常规Python代码定义用户的行为,这使Locust可以无限扩展,并且对开发人员非常友好。
2.特征
分布式和可扩展-支持数十万用户
Locust使运行分布在多台计算机上的负载测试变得容易。它是基于事件的(使用gevent),这使得单个进程可以处理成千上万的并发用户。尽管可能还有其他工具可以在给定的硬件上每秒执行更多请求,但是每个Locust用户的低开销使其非常适合测试高并发工作负载。
基于Web的UI
Locust具有用户友好的Web界面,可实时显示测试进度。您甚至可以在测试运行时更改负载。它也可以在没有UI的情况下运行,从而使其易于用于CI / CD测试。
可以测试任何系统
即使Locust主要与网站/服务一起使用,它也可以用于测试几乎所有系统或协议。只需 为您要测试的内容编写一个客户端,或者浏览社区创建的一些客户端。
3.环境安装
官方文档
https://docs.locust.io/en/1.4.4/what-is-locust.html
安装Python 3.6或更高版本。
使用pip安装
Locust。pip install locust
验证安装并显示locust版本号
pip show locust
(venv) E:\workspace\LocustConcurrent>pip show locust
Name: locust
Version: 1.4.4
Summary: Developer friendly load testing framework
Home-page: https://locust.io/
4.快速开始
在Locust中,您可以使用Python代码定义用户行为。然后,您可以使用该locust命令和(可选)其Web界面在收集请求统计信息时生成并模拟大量这些用户。
locust_cnblogs.py
''''
Create by dell on 2021/4/13
Author :wencheng
describe :
'''
from locust import HttpUser, task, between
class QuickstartUser(HttpUser):
wait_time = between(1, 2.5)
@task
def bky_deom(self):
self.client.get("/")
@task(3)
def bky_demo2(self):
self.client.get("/wen-cheng")
if __name__ == '__main__':
import os
os.system('locust -f locust_cnblogs.py -H https://www.cnblogs.com')
5.启动运行locust
打开locust的web界面,浏览器访问:http://127.0.0.1:8089
设置虚拟用户数20,每秒启动5个用户,点击Start swarming 开始运行
locust的web界面分析:
Number of users to simulate是模拟用户的数量
Hatch rate (users spawned/second表示产生模拟用户的速度
Start swarming开始测试
6.分析测试结果
Type:请求类型;
Name:请求路径;
Requests:当前请求的数量;
Fails:当前请求失败的数量;
Median:中间值,单位毫秒,一般服务器响应时间低于该值,而另一半高于该值;
Average:所有请求的平均响应时间,毫秒;
Min:请求的最小的服务器响应时间,毫秒;
Max:请求的最大服务器响应时间,毫秒;
Content Size:单个请求的大小,单位字节;
Reqs/sec:每秒钟请求的个数。
界面图表展示
吞吐量/每秒响应事务数(rps)实时统计 平均响应时间/平均事务数实时统计 虚拟用户数运行
导出数据
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家的支持。
学习资源分享
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走
这些资料,对于想【进阶自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….
边栏推荐
- TCP协议三次握手过程
- From repvgg to mobileone, including mobileone code
- 迷失在Mysql的锁世界
- PMO:比较25种分子优化方法的样本效率
- Nat. Commun.| 机器学习对可突变的治疗性抗体的亲和力和特异性进行共同优化
- 电话加密,中间4为****代替
- HBuilder X 常用的快捷键
- NAACL-22 | 在基于Prompt的文本生成任务上引入迁移学习的设置
- TLA+ 入门教程(1):形式化方法简介
- Redis has three methods for checking big keys, which are necessary for optimization
猜你喜欢
Bookmark
赋能数字经济 福昕软件出席金砖国家可持续发展高层论坛
Operation of adding material schedule in SolidWorks drawing
可视化任务编排&拖拉拽 | Scaleph 基于 Apache SeaTunnel的数据集成
Enabling digital economy Fuxin software attends the BRICs high level Forum on Sustainable Development
Bookmark
机器学习笔记 - 互信息Mutual Information
El tree combined with El table, tree adding and modifying operations
广电五舟与华为签署合作协议,共同推进昇腾AI产业持续发展
PMO:比较25种分子优化方法的样本效率
随机推荐
Which securities company has the lowest Commission for opening an account online? I want to open an account. Is it safe to open an account online
Redis 排查大 key 的3种方法,优化必备
Why do you have to be familiar with industry and enterprise business when doing Bi development?
Solana链上应用Crema因黑客攻击停运
Implementation rules for archiving assessment materials of robot related courses 2022 version
How can the advertising system of large factories be upgraded without the presence of large models
案例分享|金融业数据运营运维一体化建设
复数在数论、几何中的用途 - 曹则贤
QT—双缓冲绘图
Super detailed tutorial, an introduction to istio Architecture Principle and practical application
How to use concurrentlinkedqueue as a cache queue
close系统调用分析-性能优化
【米哈游2023届秋招】开启【校招唯一专属内推码EYTUC】
面试题 01.08. 零矩阵
[optimtool.unconstrained] unconstrained optimization toolbox
迷失在Mysql的锁世界
Cloudcompare & open3d DBSCAN clustering (non plug-in)
可视化任务编排&拖拉拽 | Scaleph 基于 Apache SeaTunnel的数据集成
PostgreSQL基本结构——表
股票开户流程是什么?使用同花顺手机炒股软件安全吗?