jmeter,性能测试,Locust

news2024/11/17 21:44:20

一。性能测试的概念

1.性能:就是软件质量属性中的 效率 特性
2.效率特性:
        时间特性:指系统处理用户请求的响应时间
        资源特性:指系统在运行过程中,系统资源的消耗情况
                                CPU
                                内存
                                磁盘IO(磁盘的写入Input和读取 Output ,简称 IO

3.什么是性能测试?

        性能测试概念:使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程就是性能测试。

        1. 后台处理程序的性能(代码性能)
        2. 中间件、数据库、架构设计等是否存在瓶颈
        3. 服务器资源消耗( CPU 、内存、磁盘、网络)
        中间件:是提供系统软件和应用软件之间连接的软件。如:Tomcat Apache...
4.性能测试目的
        1. 评估当前系统能力
                - 例如:验收第三方提供的软件
                - 例如:获取关键的性能指标,与其他类似产品进行比较
        2. 寻找性能瓶颈,优化性能
        3. 评估软件是否能够满足未来的需要
5.性能测试与功能测试
        区别:
                功能测试:验证软件系统操作功能是否符合产品功能需求规格,主要焦点在功能(正向、逆向);
                性能测试:验证软件系统是否满足业务需求场景,主要焦点是业务场景的满足(时间、资源 )
        关系:
                功能测试和性能测试是相辅相成的,对于一款优秀的软件产品来讲,它们是不可减少的2个重要测试环节;
                注意:一般新项目中, 先功能测试通过后,再进行性能测试。

二。性能测试的策略

性能测试的种类:

        1.基准测试

        2.负载测试

        3.稳定性测试

        4.其他:并发测试,压力测试,容量测试

1.基准测试:

        狭义上讲:也是单用户测试,测试环境确定以后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指 标。(进行基础的数据采集)
        广义上讲:是一种测量和评估软件性能指标的活动。你可以在某个时刻通过基准测试建立一个已知的性能水平(称为基准 线),当系统的软硬件环境发生变化之后再进行一次基准测试以确定那些变化对性能的影响。
基准测试数据的用途:
        1. 为多用户并发测试和综合场景测试等性能分析提供参考依据
        2. 识别系统或环境的配置变更对性能响应带来的影响
        3. 为系统优化前后的性能提升/下降提供参考指标
2.负载测试
        说明:通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能够承受的最大负载量 的测试。
        负载:指向服务器发送的请求数量,请求越多,负载越高
        注意:负载测试关注的重点是逐步增加压力
3.稳定性测试
        说明:稳定性测试是指,在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试,并最终保证服务器能满足线上 业务需求。时长一般为1 天、一周等
4.其他测试策略
性能测试中,测试策略其实有很多种,但是掌握基础的用法后,其他不同名称的测试策略只是基础用法的一个变形用法。
        a.并发测试:并发测试是指在极短的时间内,发送多个请求,来验证服务器对并发的处理能力。如:抢红包、抢购、秒杀活动 等。
        b.压力测试:压力测试是在强负载(大数据量、大量并发用户等)下的测试,查看应用系统在峰值使用情况下操作行为,从而 有效地发现系统的某项功能隐患、系统是否具有良好的容错能力和可恢复能力。压力测试分为高负载下的长时间(如24 小时 以上)的稳定性压力测试和极限负载情况下导致系统崩溃的破坏性压力测试。
        c.容量测试:关注软件的极限压力下的各个极限参数值,例如:最大TPS ,最大连接数,最大并发数,最多数据条数等。

三。性能测试指标

指标: 一些经过运算得出的结果,来衡量某种操作性能统称;比如:错误率 0.5%
性能指标
        1. 响应时间
        2. 并发数
        3. 吞吐量
        4. 点击数
        5. 错误率
        6. 资源利用率
        7. PV和 UV
1.响应时间:
        说明:响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的结果,整个过程所耗费的时间。
        组成: 响应时间 = 网络时间 + 应用程序处理时间
2.并发数:
        说明:并发测试的用户数
        扩展:
                系统用户数:系统注册的总用户数据
                在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求
                并发用户数:某一物理时刻同时向系统提交请求的用户数
3.吞吐量
        说明:吞吐量(Throughput )指的是单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力
        注意:
        1. 从业务角度来看,吞吐量也可以用 业务数 / 小时 业务数 / 访问人数 / 页面访问量 / 来衡量
        2. 从网络角度来看,还可以用 字节数 / 小时 字节数 / 等来衡量网络的流量
        3. 从技术指标来看,可以用每秒事务数( TPS )和每秒查询数( QPS )来衡量服务器具体性能处理能力
4.TPS
        说明:Transactions Per Second ,每秒事务数 ( 单位时间内系统处理的客户端请求的事务次数 )
        计算:TPS = 并发数 / 平均响应时间
        事务:就是业务请求,对应一个或者多个操作。如支付请求,包括服务器查询用户余额,支付安全校验等多个操作。 一个业务请 求发送给服务器后,最终会定位到服务器对应的业务请求的代码,既有可能是一段代码也有可能是多段代码。
        TPS归属吞吐量
QPS
说明: QPS(Query Per Second) 每秒查询数
应用:控制服务器每秒处理指定请求数(如:控制服务器达到每秒 60QPS ,服务器的性能各项性能指标是否正常)。 (衡量 web
服务器处理能力一个重要指标)
2.4 点击数
说明:点击数是衡量 Web 服务器处理能力的一个重要指标。
提示:
1. 点击数不是通常一般人认为的访问一个页面就是1次点击数,点击数是该页面包含的元素(图片、链接、框架等)向 Web
务器发出的请求数量。
2. 通常我们也用每秒点击次数( Hits per Second )指标来衡量 Web 服务器的处理能力。
注意:只有 web 项目才有此指标。
2.5 错误率
说明:错误率指系统在负载情况下,失败业务的概率。错误率= ( 失败业务数 / 业务总数 )*100%
提示:
1. 不同系统对错误率要求不同,但一般不超过千分之五;
2. 稳定性较好的系统,其错误率应该由超时引起,即为超时率。
2.6 资源利用率
说明:是指系统各种资源的使用情况,一般用 资源的使用量 / 总的资源可用量 ×100%” 形成资源利用率的数据。
提示:通常,没有特殊需求的话
1). 建议 CPU 不高于 80%(±5)
2). 内存不高于 80%
3). 磁盘不高于 90%
4). 网络不高于 80%

四。性能测试流程

        1. 性能测试需求分析
        2. 性能测试计划及方案
        3. 性能测试用例
        4. 测试脚本编写 / 录制
        5. 建立测试环境
        6. 执行测试脚本
        7. 性能测试监控
        8. 性能分析和调优
        9. 性能测试报告总结
        提示:使用不同的性能测试工具时,主要流程是不变的
1.性能需求分析
        说明:性能需求分析是整个性能测试工作开展的基础,性能需求分析做的好不好直接影响到性能测试的结果。
        性能需求分析的目标:明确被测系统,测试内容,测试策略,测试指标
        
        1. 熟悉被测系统
                熟悉被测系统的业务功能
                熟悉被测系统的技术架构
        2. 明确性能测试内容
                a.从业务角度明确测试内容
                        确定关键业务。即:用户使用频率较高的业务功能
                b.从技术角度明确测试内容
                        如:通常逻辑复杂度较高的业务也是CPU密集运算较大的地方,考量服务器CPU                                   在预定性能指标下是否达标
                        如:通常数据量较大的业务很占用系统内存,考量服务器内存在预定性能指标下                                     是否达标
        3. 明确性能测试策略
                负载测试
                稳定性测试
                并发测试
        4. 明确性能测试的指标
                a.无明确需求指标
                   通过查找相关资料,和类似的系统对比,以及对未来流量的预估,确定性能测试需求的指标
                b.有明确需求指标
                           例如,类似如下指标
                        下订单业务并发20个用户
                        平均响应时间要小于等于3s
                        事务成功率为100%
                        CPU使用率小于等于85%
                      只需要根据执行分析结果与预期指标做对比,如果有不满足的,就需要分析问题所在
2.性能测试计划及方案
        说明:性能测试实施第一份文档,也是最重要的一份文档。
        主要内容:
                1. 项目背景
                2. 测试目的
                3. 测试范围
                4. 测试策略
                5. 风险控制
                6. 交付清单
                7. 进度与分工
3.性能测试用例

4.测试脚本编写和录制
说明:性能测试用例编写完成以后,接下来就需要结合用例的需要,进行测试脚本的编写工作。
提示:录制或编写,根据不同的工具要注意代码冗余。
5 建立测试环境
说明:在进行性能则试之前,需要先完成性能测试环境的搭建工作,测试环境一般包括硬件环境、软件环境及网络环境
提示:一般情况下可以要求运维和开发工程师协助完成
6.执行测试脚本
说明:先保证脚本调试通过之后,才能进入正式压测阶段
执行测试脚本时,要先进行性能运行场景的设置,再运行脚本
7.性能测试监控
性能监控就是监控服务器的各项性能指标。例如:监控 CPU 、内存、网络、 TPS 、磁盘 IO
8.性能分析和调优
说明:性能测试分析人员经过对结果的分析以后,有可能提出系统存在性能瓶颈。
提示:
        1. 调优人员 ( 开发人员、数据库管理员、系统管理员、网络管理员、性能测试分析人员 ) 相关人员对系统进行调整 ;
        2. 验证 - 性能测试人员继续进行第二轮、第三轮 …… 的测试,与以前的测试结果进行对比,从而确定经过调整以后系统的性能是 否有提升。
注意 :
        系统调优由易到难的先后顺序如下:
                1. 硬件问题
                2. 网络问题
                3. 应用服务器、数据库等配置问题
                4. 源代码、数据库脚本问题
                5. 系统构架问题
9 .性能测试报告总结
性能测试总结要包含以下内容:
1. 性能测试需求覆盖情况,测试过程回顾,及测试中出现的问题(如何去分析、调优、解决的) --- 基本要求
2. 性能测试过程中遇到各类风险是如何控制的 ; 目前是否还有其他的性能风险存在
3. 经过该项目性能测试后,有那些经验和教训等内容
五。性能测试工具
1. 主流性能测试工具
        LoadRunner
        JMeter 
1.1 LoadRunner
        HP LoadRunner是一种工业级标准性能测试负载工具,可以模拟上万用户实施测试,并在测试时可实时检测应用服务器及服 务器硬件各种数据,来确认和查找存在的瓶颈
       支持多协议:Web(HTTP/HTML) Windows Sockets FTP ODBC MS SQL Server 等协议
最初是 Mercury 公司采用 C 语言编写 , 现被 HP 公司收购
优点:
        1. 多用户(支持数量单位万)
        2. 详细分析报表
        3. 支持 ip 欺骗
缺点:
        1. 收费
        2. 体积庞大(单位 GB
        3. 无法定制功能
1.2 JMeter
        JMeter是 Apache 组织开发的基于 Java 的开源软件,用于对系统做功能测试和性能测试。
它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域,例如静态文件、 Java 程序、 shell 脚本、数据库、 FTP 、 Mail等。
优点:
        1. 免费
        2. 开源
        3. 小巧(最新版 -50MB 左右)
        4. 丰富学习资料及扩展组件
        5. 应用广泛
        6. 易上手
缺点:
        1. 不支持 ip 欺骗
        2. 分析和报表能力相对于 lr 欠缺精度

六。Jmeter

1. JMeter文件目录介绍
1.1 bin 目录
存放可执行文件和配置文件
jmeter.bat windows 的启动文件
jmeter.log :日志文件
jmeter.sh linux 的启动文件
jmeter.properties :系统配置文件
jmeter-server.bat windows 分布式测试要用到的服务器配置
jmeter-serve linux 分布式测试要用到的服务器配置
1.2 docs 目录
docs :是 JMeter api 文档,可打开 api/index.html 页面来查看
1.3 printable_docs 目录
printable_docs usermanual 子目录下的内容是 JMeter 的用户手册文档
usermanual component_reference.html 是最常用到的核心元件帮助文档。
提示: printable_docs demos 子目录下有一些常用的 JMeter 脚本案例,可以作为参考
1.4 lib 目录
该目录用来存放 JMeter 依赖的 jar 包和用户扩展所依赖的 jar
2. 修改默认配置
2.1 汉化配置
实现 JMeter 界面的汉化包含两种方式:
1. 临时性
2. 永久性
临时性: 启动 JMeter-> 选择菜单 ‘Options’->Choose Language->Chinese (Simplified)
永久性:
找到 jmeter 安装目录下的 bin 目录,
打开 jmeter.properties 文件,把第 37 行修改为 “language=zh_CN”
重启 JMeter 即可
19 2.2 修改主题
JMeter 默认主题是黑色的,可以通过以下步骤修改:
启动 JMeter -> 选择菜单 选项 ’ -> 外观 -> Windows( 选择自己喜欢的主题即可 )
2.JMeter元件作用域和执行顺序
2.1元件的基本介绍
        元件:多个类似功能组件的容器(类似于类)。
        常见的元件类型有:
                1. 取样器
                2. 逻辑控制器
                3. 前置处理器
                4. 后置处理器
                5. 断言
                6. 定时器
                7. 测试片段
                8. 配置元件
                9. 监听器
                组件:实现独立的某个功能(类似于方法)
2.2元件作用域
JMeter 中,元件的作用域是靠测试计划的树形结构中元件的父子关系来确定的。
提示 : 核心是取样器,其他组件都是以取样器为核心运行的,组件添加的位置不同,生效的取样器也不同。
作用域的原则
        1. 取样器:元件不和其他元件相互作用,因此不存在作用域的问题 ;
        2. 逻辑控制器:元件只对其子节点中的取样器和逻辑控制器作用 ;
        3. 其他六大元件:除取样器和逻辑控制器元件外,如果是某个取样器的子节点,则该元件对其父子节点起作用;
        4. 如果其父节点不是取样器,则其作用域是该元件父节点下的其他所有后代节点(包括子节点,子节点的子节点等);
2.3. 元件执行顺序
        1. 配置元件 (config elements)
        2. 前置处理程序 (Per-processors)
        3. 定时器 (timers)
        4. 取样器 (Sampler)
        5. 后置处理程序 (Post-processors)
        6. 断言 (Assertions)
        7. 监听器 (Listeners)
提示 :
        1. 前置处理器、后置处理器、断言等元件功能对取样器起作用(如果在它们的作用域内没有任何取样器,则不会被执行)
        2. 如果在同一作用域范围内有多个同一类型的元件,则这些元件按照它们在测试计划中的上下顺序依次执行

七。Jmeter使用示例

八。Jmeter参数化

九。Jmeter断言

十。Jmeter关联

十一。Jmeter录制脚本

十二。Jmeter直连数据库

十三。Jmeter逻辑控制器

十四。Jmeter定时器

十五。Jmeter分布式测试

十六。Jmeter测试报告

十七。Jmeter性能测试常用图表

十八。Locust

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

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

相关文章

【Spark学习笔记】- 4运行架构核心组件核心概念

目录标题 1 运行架构2 核心组件2.1 Driver2. 2 Executor2. 3 Master & Worker2. 4 ApplicationMaster 3 核心概念3.1 Executor 与 Core3. 2 并行度(Parallelism)3. 3 有向无环图(DAG) 4 提交流程4.1 Yarn Client 模式4. 2 Yarn Cluster 模式 5 分布式计算模拟5.1 Driver5.2…

利达卓越团队:打造投资界“天花板”,用行动创造财富

在这个充满竞争与挑战的新时代下,众多投资者纷纷开始寻找高收益项目。尽管拥有前卫的理想抱负和专业的投资经验,但抵不过一路上的“畔脚石”,大部分投资者会因为项目不稳定和风控经验不足等问题提前退场,未能在投资市场上获取红利。为了能够给这些投资者创造盈利机会,郑建祥、林…

Qt扫盲-QListView理论总结

QListView理论总结 一、概述二、提高性能三、使用注意 一、概述 QListView显示存储在model 中的item,要么是一个简单的非层次列表,要么是一个图标集合。这个类用于提供列表和图标视图,之前像这些 列表 和 图标视图 之前是由QListBox和 QIcon…

android 12 U盘 /mnt/media_rw 下读取文件异常 没有权限

现象 storage下可读取,但/mnt/media_rw不可读取 /mnt/media_rw/A009-1B4F/rk3568_s-ota-20230704.zip (Permission Denied) 解决方法 把/mnt/media_rw/ 替换为 /storage

基于知识蒸馏的两阶段去雨去雪去雾模型学习记录(三)之知识测试阶段与评估模块

去雨去雾去雪算法分为两个阶段,分别是知识收集阶段与知识测试阶段,前面我们已经学习了知识收集阶段,了解到知识阶段的特征迁移模块(CKT)与软损失(SCRLoss),那么在知识收集阶段的主要重点便是HCRLoss(硬损失…

JavaScript中的模块化编程,包括CommonJS和ES6模块的区别。

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 模块化编程概述⭐ CommonJS 模块⭐ ES6 模块⭐ 区别⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、…

苹果恢复微信聊天记录的3个实用方法!

愁死我了!朋友们!把手机借给了亲戚家的小孩玩,拿回手机后发现很重要的聊天记录丢失了,怎么办呀,有什么方法能够恢复回来吗? 微信是架起我们与家人、朋友、同事之间沟通的桥梁,无论是工作还是生活…

【软考】8.1 程序语言基本概念-成分-函数

《程序设计语言的基本概念》 汇编:将汇编语言翻译成目标程序执行编译:生成独立的可执行文件(逻辑上与源程序等价的目标程序);直接运行;运行时无法控制源程序;效率高解释:不生成可执行…

mmap底层驱动实现(remap_pfn_range函数)

mmap底层驱动实现 myfb.c&#xff08;申请了128K空间&#xff09; #include <linux/init.h> #include <linux/tty.h> #include <linux/device.h> #include <linux/export.h> #include <linux/types.h> #include <linux/module.h> #inclu…

Mybatis 使用参数时$与#的区别

之前我们介绍了mybatis中参数的使用&#xff0c;本篇我们在此基础上介绍Mybatis中使用参数时$与#的区别。 如果您对mybatis中参数的使用不太了解&#xff0c;建议您先进行了解后再阅读本篇&#xff0c;可以参考&#xff1a; Mybatis参数(parameterType)https://blog.csdn.net…

知识图谱和大语言模型的共存之道

源自&#xff1a;开放知识图谱 “人工智能技术与咨询” 发布 导 读 01 知识图谱和大语言模型的历史 图1 图2 图3 图4 图5 02 知识图谱和大语言模型作为知识库的优缺点 图6 图7 表1 表2 图8 图9 03 知识图谱和大语言模型双知识平台融合 图10 图11 04 总结与展望 声明:公众号转…

C# OpenCvSharp Yolov8 Pose 姿态识别

效果 项目 代码 using OpenCvSharp; using OpenCvSharp.Dnn; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;namespace OpenC…

中国企业400电话在线申请办理

在当今竞争激烈的商业环境中&#xff0c;企业需要寻求各种方式来提升客户服务和市场竞争力。而拥有一个专属的400电话号码&#xff0c;不仅可以为企业带来更多的商机&#xff0c;还能提升企业形象和客户满意度。本文将介绍如何在线申请办理中国企业400电话&#xff0c;并提供一…

京东数据接口|电商运营中数据分析的重要性

在电商运营中&#xff0c;数据分析是非常重要的一环&#xff0c;它可以帮助电商企业更好地了解市场、了解消费者、了解产品、了解销售渠道等各种信息&#xff0c;从而制定更为科学有效的运营策略&#xff0c;提高销售效益。 数据方面用户可以直接选择使用数据接口来获取&#…

面试高频手撕算法 - 背包问题1

目录 1. 前言 2. 什么是 01 背包&#xff0c; 什么是完全背包 3. 01 背包 3.1 【模板】01背包 3.2 分割等和子集 3.3 分割等和子集 3.4 最后一块石头的重量 1. 前言 为什么要专门去搞一下这个背包问题呢 ? 因为作者已经在两场面试中吃了这个亏, 尤其是在面深信服的测开岗…

信创办公–基于WPS的EXCEL最佳实践系列 (条件格式)

信创办公–基于WPS的EXCEL最佳实践系列 &#xff08;设置条件格式&#xff09; 目录 应用背景操作步骤1、选用条件格式1.1 筛选出迟到次数超过3次的数据1.2 筛选出早退次数位于前三的数据1.3 个人加班时长在总体中所占的在的位置 2、删除条件格式2.1 清除规则2.2 管理规则 应用…

钡铼BL124PN:简单快速转换Profinet到Ethernet/IP

钡铼技术BL124PN是一款高性能的Profinet转Ethernet/IP网关设备。该网关专为工业自动化领域设计&#xff0c;用于实现不同协议之间的互连和通信。BL124PN采用可靠稳定的硬件和先进的通信技术&#xff0c;具有以下主要特点&#xff1a; 协议转换能力&#xff1a;BL124PN能够将Pr…

WIN10 查看端口占用情况

输入命令&#xff0c;其中 5082 为需要查看的端口 C:\Users\chenjian>netstat -ano|findstr "5082"TCP 0.0.0.0:5082 0.0.0.0:0 LISTENING 21708可以看到 5082 这个端口被 “21708”这个进程占用了。 输入命令查看进程的信息 C…

ST2110基础介绍(初识)

前言 随着超高清视频产业迅速发展&#xff0c;4K/8K超高清信号对带宽提出更高的要求&#xff0c;传统的基于SDI (数字串行接口)采集制作、调度分发的方式已经不能满足技术更新的需求。行业内的共识是采用基于ICT(网络和通信技术)技术的IP化架构&#xff0c;一方面解决高带宽信…

当长假来临,如何定向应用AI?科技力量变革您的假日生活!

“今夜月明人尽望&#xff0c;不知秋思落谁家。”中秋国庆的双节组合&#xff0c;让万千中国家庭迎来了难得的团圆欢庆时刻。长达八天的假期已经开启&#xff0c;现在的你是不是已经背上行囊&#xff0c;浪迹远方了呢&#xff1f; &#xff08;金秋时分&#xff0c;假日光景&am…