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

相关文章

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

JavaScript Array.from及其相关用法详解(示例演示)

《JavaScriptArray.from及其相关用法详解(示例演示)》Array.from方法是ES6引入的一个静态方法,用于从类数组对象或可迭代对象创建一个新的数组实例,本文将详细介绍Array... 目录一、Array.from 方法概述1. 方法介绍2. 示例演示二、结合实际场景的使用1. 初始化二

一文带你了解SpringBoot中启动参数的各种用法

《一文带你了解SpringBoot中启动参数的各种用法》在使用SpringBoot开发应用时,我们通常需要根据不同的环境或特定需求调整启动参数,那么,SpringBoot提供了哪些方式来配置这些启动参... 目录一、启动参数的常见传递方式二、通过命令行参数传递启动参数三、使用 application.pro

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

SpringBoot整合MybatisPlus的基本应用指南

《SpringBoot整合MybatisPlus的基本应用指南》MyBatis-Plus,简称MP,是一个MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,下面小编就来和大家介绍一下... 目录一、MyBATisPlus简介二、SpringBoot整合MybatisPlus1、创建数据库和