locust学习教程(1)- 概念相关

news2024/11/25 10:45:56

前言

一句话总结:本文是基于2.4.1的版本去学习locust,如果你想完全搞懂它,那么就从最新的产品文档从头到尾去研读一遍吧。

1、locust是什么?

1.1、相关资料

  1. 官网:www.locust.io/
  2. 产品文档:docs.locust.io/en/2.4.1/
  3. 源码:github.com/locustio/lo…

1.2、特征

  Locust 是一种易于使用、可编写脚本、可扩展性能测试工具。基于requests库封装的性能工具,你可以随便自定义自己想要的功能,而不是局限于 UI ,搞性能就是用python,python能实现的都可以给它加上去,真的是无限扩展。这样的好处是:

  1. 对python能力得到了很好的锻炼
  2. 一切性能业务场景的设计,都是基于python脚本去实现,可以用python的各种第三方库,无限拓展
  3. 动态的web监控界面,同时也具备命令行无web界面的执行(用于持续集成中),命令行执行:locust -f .\per_01_test.py
  4. 可测一切协议、一切系统
  5. 对requests库的频繁使用,加深了理解,这个库是python接口自动化的基础,locust也可以理解是接口性能自动化测试框架。平时用接口自动化框架也是request去写的自己封装的,你封装的是实现业务,但无法执行并发操作,locust就是一款成熟的用于并发的接口自动化测试框架。httprunner就是一款成熟的不能并发的接口自动化测试框架,研究它就像研究一款优秀的接口自动化测试框架。

 

1.3、产生的背景

  没有一个负载测试工具能够针对数据生成动态的实际负载,大多数页面都需要我们冗长的配置文件来声明测试,提供了一个python的性能测试框架,任由喜欢pthon的你去自由发挥,哦,你还可以自定义web界面的内容。   我喜欢它的两点:灵活、是python编写的框架

2、安装

  1. 配置好pthon、pycharm
  2. cmd窗口执行:pip3 install locust
  3. 验证:locust -V

   就是这么简单,那么请问jmeter是怎么配置的?持续集成,直接拉去代码,安装个依赖库,直接直接执行,web界面动态显示执行结果,逼格、成就感有没有?

3、入门

3.1、编写python性能接口自动化测试脚本

  脚本名:per_01_test.py

import json
from json import JSONDecodeError
from locust import task, HttpUser, between


class UserBehavior1(HttpUser):
    """登录
    	"""
    host = "https://xxx.com"  # 配置url
    wait_time = between(2, 5)  # 每个用户执行后等待2-5秒

    @task  # Locust 创建一个 greenlet(微线程),一个微线程可以跑很多协程
    def test_login(self):
        data = json.dumps({
            "account": "4",
            "password": "==",
        })
        headers = {"Content-Type": "application/json"}
        response = self.client.post("/api/portal/login", data=data, headers=headers)
        assert response.status_code == 200

3.2、运行pthon脚本

1、在脚本里面右键 open in > Terminal 打开命令行,输入:locust -f per_01_test.py,预期:

$ locust -f .\per_01_test.py [2021-10-27 20:18:38,307] Starting web interface at http://0.0.0.0:8089 (accepting connections from all network interfaces) [2021-10-27 20:18:38,307] xxx/INFO/locust.main: Starting Locust 2.4.0

2、浏览器输入:http://localhost:8089/,预期:

3、点击开始,预期

4、其他技术栈

(1)jmeter、loadrunner、locust各种工具的基本功能使用(一大堆xxx)

(2)docker实现分布式压测

(3)git、jenkins实现持续集成

(4)性能测试核心基础:测试层分析、APP转型性能测试原理、服务器端性能测试原理、性能分析思路、并发技术本质、全链路压测分析、web前端性能测试原理、常见接口加密方式、TPS/QPS/RT/吞吐量性能指标关系、jmeter\locust\loadrunner只是工具、webserver restful api实战详解、自定义协议分析

(5)web、app前端性能监控自动化平台构建

(6)性能测试脚本开发 参数化方式、参数化数据构造、关联原理、混合场景复杂脚本、参数化组件、关联组件、自定义检查点、事务/思考时间/集合点综合应用

(7)性能测试场景设计 复杂场景设计、压力曲线模型、基础性能场景、稳定性能场景、监控设计思路及技术图谱、业务模型构建、基于并发/吞吐量的场景设计、容量性能场景、异常性能场景、jmeter+docker分布式压测

(8)性能测试监控: 基本性能指标监控、linux常用监控工具解析、PHP代码级监控、java代码级监控之stack、数据库级监控及常用计数器解析、jmeter+influxob+grafana监控、操作系统监控及常用计数器、中间件监控指标及工具、网络监控等等

(9)性能测试结果分析: 基本性能指标测试结果分析、CPU/内存/磁盘/网络等性能分析、数据库常见性能指标分析、中间件常见性能指标分析、jvm核心原理、java各种线程状态码实现及解析、深入解析JVM垃圾回收算法及原理、

(10)瓶颈分析及定位: 前端性能分析及瓶颈定位、stack/heap深入解读瓶颈定位、CPU压力过大的瓶颈分析及定位、资源利用率过低的瓶颈分析及定位、内存泄漏原理及代码级瓶颈分析及定位、带宽消耗分析及网络瓶颈定位、数据库常见瓶颈分析、数据库慢查询定位、SQL语句执行计划分析及定位、SQL语句资源消耗细分解、磁盘10瓶颈分析及定位、java代码级剖析工具、Xhprof的Php代码瓶颈分析及定位、

(11)性能调优: JVM核心参数优化设置、中间件核心参数化设置、JVM垃圾回收算法选择及优化、JAVA代码优化解析、Mysql架构优化设计、Sql语句优化、mysql/schem设计优化、mysql常用存储引擎优化

(12)性能测试文档编写 性能测试需求分析报告、需求调研报告、技术方案、分析及调优报告、测试报告、项目总结

(13)平台化技术在性能领域的应用 docker+gitlab ci +jmeter性能测试 docker + jenkins + jmeter性能


-事必有法,然后有成- 最后祝大家早日达到测试的天花板! 



 以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以留言【777】直接拿走就好了

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/666957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

光伏电站并网雷电防护措施探讨 安科瑞 许敏

摘要: 本文指出了雷击对并网系统光伏电站的主要危害形式及所对应的雷电防护措施。依据相关的防雷及电气接地规范,针对并网系统光伏电站提出了防雷设计方案并做了详细的阐述。在光伏电站的防雷设计中,应考虑雷电会通过何种形式对哪些设施造成损害&#xf…

玩转系统|完美替代ChatGPT!Claude注册教程及出现问题解决方案

目录 1、什么是ChatGPT? 2、什么是Claude? 3、为什么推荐Claude? 3.1、Claude特性 4、注册 slack 5、Claude添加到Slack 6、出现APP Unavailable问题 7、如何解决该问题 8、使用感受 8、1代码测试 8、2文学测试 8、3英语测试 1、什么是ChatGPT&a…

防溺水智能预警监控系统解决方案

一、方案背景 随着夏季暑期的到来,孩童、学生溺水的警钟又不断敲响。预防夏季溺水,不仅要求学校方面要加强安全宣传教育,同时相关部门也需要加强对河流、湖泊、水库、池塘等水域的监控和人员靠近预警。 目前水库、河湖、堤坝、河湖岸线、深水…

图观 智慧交通合集 | 9大行业细分应用案例 一次性看个够!

随着城市化进程的加速和交通需求的不断增长,城市交通系统的安全、高效、智能化的要求越来越高,智慧交通正成为现代城市发展的必然趋势。数字孪生技术的出现,为智慧交通领域的应用提供了更为广阔的空间。 数字冰雹深耕数字孪生行业十余载&…

【Java高级语法】(九)IO流:肝了三天三夜,我打赌没有比我这边更细的探索Java I\O流的文章了~

Java高级语法详解之IO流 :one: 概念1.1 输入流和输出流1.2 字节流和字符流 :two: 优势和缺点:three: 使用3.1 File 类3.2 RandomAccessFile 类3.3 字节流3.3.1 文件字节流3.3.2 缓冲字节流3.3.3 基本数据类型字节流3.3.4 打印流3.3.5 对象序列化流3.3.6 字节数组流 3.4 字符流3…

论文笔记 - 对话系统中的 OOD (Out of Domain出域)问题

徐阿衡 人工智能与机器学习工程师 最近看了下 2021年关于 OOD 的几篇 paper,记录一下~ 对话系统中的 domain 都是预先定义好的,而在实际应用场景中,会有很多现有系统回答不了的问题(out of the design scope)&#…

locust学习教程(3)- 编写locust脚本

前言 一句话总结:并发的用户执行了第一类测试任务、第二类测试任务,设置所有类的测试前置、测试后置,设置每一类测试任务的测试前置,测试后置。 1、概念 1.1、一个完整的脚本示例 from locust import task, HttpUser, constant…

ASEMI代理光宝光耦LTV-50L的工作原理及应用领域

编辑-Z 本文将对光耦LTV-50L进行详细的介绍,包括其工作原理、性能特点、应用领域以及注意事项。通过阅读本文,您将对光耦LTV-50L有更深入的了解,以便在实际应用中更好地发挥其作用。 1、光耦LTV-50L的工作原理 光耦LTV-50L是一种光电器件&a…

uni-table 表格的封装

文章目录 项目场景:实现效果创建表格组件文件页面中使用实现方法 项目场景: 在实际的应用场景中,表格是一个非常常见的需求,如果每一个的表格都自己去手写的话非常的浪费时间,并且当中的代码冗余量非常大,…

Python--元组

Python--元组 <font colorblue>一、创建元组<font colorblue>二、访问元组元素<font colorblue>三、元组的增、删、查、改<font colorblue>1、添加元素<font colorblue>2、删除元素<font colorblue>3、查找元素<font colorblue>4、修…

甄品进化 | 燕小千智能助手,用AIGC撬动企业知识宝藏

背景&#xff1a;2022年AIGC&#xff08;AI-Generated Content,人工智能生成内容&#xff09;这个新概念横空出世&#xff0c;不仅被消费者追捧&#xff0c;而且备受投资界的关注&#xff0c;更是被技术和产业界竞相追逐。2022年12月&#xff0c;OpenAI的大型语言生成模型ChatG…

Android 60问60答 (一篇复习整个Android)

Android 60问60答 &#xff08;一篇复习整个Android&#xff09; 有哪些移动端平台&#xff1f; 厂商开发平台&#xff1a; los 黑莓&#xff08;blackBerry&#xff09; 第三方私有平台&#xff1a;第三方开发供移动设备厂商使用 WindowsMobile 免费开源平台&#xff1…

微信小程序克隆到运行

1.git克隆 2.安装依赖 npm i 如果遇到卡在node lib/install.js 一直不进行 重新运行安装&#xff1a;(https://www.python100.com/html/3716RLP8FZM2.html) npm install --ignore-scripts理解npm install --ignore-scripts 3.安装完运行 npm run serve如果报错&#xff1a; …

基于改进多目标粒子群算法的配电网储能选址定容——附Matlab代码

目录 摘要&#xff1a; 主要内容&#xff1a; 程序思路&#xff1a; 储能选址定容优化模型&#xff1a; &#xff08;1&#xff09;节点电压波动&#xff1a; &#xff08;2&#xff09;负荷波动&#xff1a; &#xff08;3&#xff09;储能系统容量&#xff1a; 改进的…

2023年最好用的办公AI工具,让你工作效率提升10倍!

2023年是AI工具大爆发的一年&#xff0c;在效率办公领域&#xff0c;同样涌现出了很多优秀的AI办公工具&#xff0c;小编亲测了几款&#xff0c;都是宝藏好用的App&#xff0c;以下排名不分先后&#xff0c;一起来看看吧&#xff01; AI办公工具哪个好 GitMindNotion AI酷表C…

智能优化算法之黏菌优化算法(SMA),附matlab代码

黏菌算法是2020年提出的一种智能优化算反&#xff0c;主要模拟的是自然界中多头绒泡菌在不同食物浓度下的觅食行为以及状态变化。黏菌主要分泌酶来消化食物&#xff0c;黏菌的前端延伸成扇形&#xff0c;后端由相互连接的静脉网络包围。环境中不同浓度的食物影响着黏菌静脉网络…

C语言数据在内存中存储---整型提升练习

前言&#xff1a;学习了C语言中的整型提升&#xff0c;总是感觉听的时候很明白&#xff0c;但当自己做题的时候&#xff0c;又总是遗漏了哪一步。自己的感悟&#xff1a;整型提升步骤以及原理都一样&#xff0c;就是把步骤记清楚一步一步的来就行。因此通过下面的一道题来每日复…

【正点原子STM32连载】第三十七章 485实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第三…

【Java.SE】数组的定义与使用

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a;Java.SE&#xff0c;本专栏主要讲解运算符&#xff0c;程序逻辑控制&#xff0c;方法的使用&…

【机器学习】十大算法之一 “随机森林”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…