Locust性能测试入门 —— 名词解释和最基本的用法

2024-03-27 10:40

本文主要是介绍Locust性能测试入门 —— 名词解释和最基本的用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Locust介绍

Locust是基于事件分布式负载测试工具。名字和logo都代表蝗虫/蚂蚱,解释是因为它们总是成群。

特点

  • 基于协程,资源占用率小,效率高

补充说明

进程、线程、协程区别

进程:进程是资源分配的单位,程序运行时系统就会创建一个进程,并为它分配资源。然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。

线程:线程是系统调度的单位,是程序执行时的最小单位。它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。

协程:又称微线程,协程是程序级别的,由程序员根据需要自己调度。协程无需线程上下文切换的开销,只是单纯的操作CPU的上下文,所以资源占有率很小。缺点是协程阻塞时可能会使整个程序都阻塞。

举个简单的例子便于理解

一个生产车间需要生产线。老板【CPU】刚开始投资【花费资源】买了一条生产线【创建了一个进程】,然后招聘了一个工人【创建单线程】进行生产,为了提高效率,老板又招聘了一些工人【多线程】。人多了老板【CPU】发现总会有工人因为没有活干或者等待上一个工序的完成而闲下来无事可做,于是就分配这些恰好空闲的工人去完成其他的工作【协程】。根据这个例子可以发现,切换进程需要资源较多,协程则只需要很少的资源(找他聊聊天,跟他说一下干什么)。

  • 基于webUI界面,可以实时显示相关的测试结果

  • 支持分布式测试,用户界面基于网络,因此具有跨平台且易于扩展的特点

  • 所有繁琐的I/O和协同程序都被委托给gevent,替代其他工具的局限性

  • 官网说:这个很简单,你快来学吧

入门

现在下载Locust 你的python版本至少要3.6的。

安装pip install locust即可。

我们先写一个简单的例子,看一下界面

# coding: utf-8from locust import HttpUser, taskclass TestIndex(HttpUser):@taskdef getIndex(self):self.client.get('/s?wd=性能')

然后在terminal输入

locust -f testindex.py --host=https://www.baidu.com

回车执行,就可以看到

点击生成的链接:http://0.0.0.0:8089跳转到浏览器上面6和2代表每秒增加2个用户,最多增加到6个(3秒增加完成)

点击Start swarming开始执行

可以看到数据是不停的在变动,点击红色Stop按钮,即可停止

切换标签页到Charts即可查看图表

在Download Data页签可以下载csv数据或者测试报告

提醒】做demo时建议不要把用户数做的太大,法律认为,在明知道有可能将对方服务器搞崩溃的情况下仍然进行操作,并对对方造成损失就属于违法。

标签解释

  • Type:请求类型,即接口的请求方法

  • Name:请求路径

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

  • Fails:当前失败的数量

  • Median:响应时间的中间值,即50%的响应时间在这个数值范围内,单位为毫秒

  • 90%ile:90%响应时间,单位为毫秒

  • 99%ile:99%响应时间,单位为毫秒

  • Average:平均响应时间,单位为毫秒

  • Min:最小响应时间,单位为毫秒

  • Max:最大响应时间,单位为毫秒

  • Average Size:平均响应数据大小,单位为字节;

  • Current RPS:当前每秒请求数量

  • Current Failures/s:每秒失败数量

这些名词可以在F12里查看解释

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走


在此特意为大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面,涵盖功能测试、Python编程语言,接口测试、UI自动化测试、性能测试......包括软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2022软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..关注下方公众号免费获取~

这篇关于Locust性能测试入门 —— 名词解释和最基本的用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/851825

相关文章

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

Java中的数组与集合基本用法详解

《Java中的数组与集合基本用法详解》本文介绍了Java数组和集合框架的基础知识,数组部分涵盖了一维、二维及多维数组的声明、初始化、访问与遍历方法,以及Arrays类的常用操作,对Java数组与集合相... 目录一、Java数组基础1.1 数组结构概述1.2 一维数组1.2.1 声明与初始化1.2.2 访问

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

解读GC日志中的各项指标用法

《解读GC日志中的各项指标用法》:本文主要介绍GC日志中的各项指标用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基础 GC 日志格式(以 G1 为例)1. Minor GC 日志2. Full GC 日志二、关键指标解析1. GC 类型与触发原因2. 堆

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

JavaSE正则表达式用法总结大全

《JavaSE正则表达式用法总结大全》正则表达式就是由一些特定的字符组成,代表的是一个规则,:本文主要介绍JavaSE正则表达式用法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录常用的正则表达式匹配符正则表China编程达式常用的类Pattern类Matcher类PatternSynta

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁