jmeter性能测试

一.jmeter基本使用

1.元件执行顺序

配置元件;
前置处理器;
定时器;
sampler;
后置处理器;(关联,正则表达式提取器)
断言;
监听;(不涉及顺序)
逻辑控制器自成单元(可添加多个逻辑,在单元中自成顺序)

举例:
HTTP Cookie 管理器 需要登录、验证的时候(如网站发帖前需要先登录)
HTTP Cache Manager 缓存图片、cache信息
HTTP信息头管理器  共同的信息头
HTTP请求默认值 甚至共同的默认值,在sample的http请求中可以不再录入
用户参数
简单控制器(逻辑控制器)
固定定时器
JAVA请求(http请求)

2.参数化方式

1、函数助手;

选项--函数助手,对应每列生成函数;在HTTP请求数据参数列中复制名称对应的值的函数。多种随机函数可用


2、配置元件-CSV Data Set Config(参数化数据文件另存为utf-8)添加-配置元件-CSV Data Set Config


3、配置元件:用户自定义变量
4、用户参数
5、从数据库中获取:配置元件-JDBC Connection Configuration:连接后添加JDBCRequest,在SQL Query中输入查询语句,查询结果作为参数使用

Jmeter 中想用到连接数据库的功能,必须下载jar包,一般保存在对应Jmeter的lib下的扩展目录。下载后把jar包添加到jmeter中

3.关联参数

       用一个请求的响应结果作为另一个请求的入参时需要用到关联
1.在请求A下新建JSON提取器,提取响应数据,应用到B。提取值:$.key[].value
2.用正则表达式关联,在需要被提取响应数据的请求下添加正则表达式提取器,右击添加->后置处理器->正则表达式提取器;
一般可用Debug PostProcessor 调试,查看获取的变量值
     正则表达式,最简单的办法是在响应数据中把要提取的目标值左右若干字符包含目标值的一行拷贝出来,粘贴到正则表达式框内,在把目标值用一对小括号替换,括号里用添上合适的匹配符本例如(.*);
     注意在响应数据中拷贝时尽量避开需要转义的字符如果不能避开,请转义;模板通常固定填$1$;匹配数字1代表区匹配的第一个值;缺省值是在匹配失败时取得的值,通常用来检查匹配是否成功;

4.请求需要http权限验证

      当某些请求需要authorization授权时使用。实际效果就是在请求头中加了Authorization,直接在HTTP信息头管理器中设置也能达到登录的效果

添加授权管理器,右击线程组->添加->配置元件->HTTP授权管理器;打开HTTP授权管理器,在基础URL添加路径;填写用户名、密码;添加域即请求的服务器域名或IP;其他默认;

5.断言


选中http请求sample.右键添加,选择"断言"->"响应断言"。添加断言后、增加一个断言结果监 听器就可以看到断言的结果

6.集合点

定时器---->Synchronizing Timer
a.   集结的group用户数量一定要比线程组的数量小。
b.  集结的用户数和线程组并发用户数的关系。例如线程组设定的用户是50,  集结点设置的用户组数量是25, 那么当集结了25个用户后,就会立即开始测试。 当集结了下一组25个用户后,会立即开始这25个用户的测试。

JMeter能干嘛
1.能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
2.完全的可移植性和100% 纯java。   
3.完全 Swing 和轻量组件支持(预编译的JAR使用 javax.swing.*)包。   
4.完全多线程 框架允许通过多个线程并发取样和 通过单独的线程组对不同的功能同时取样。   
5.精心的GUI设计允许快速操作和更精确的计时。   
6.缓存和离线分析/回放测试结果。

二.性能测试

1.安装第三方插件jmeter-plugins.org

下载地址:jmeter-plugins.org

下载后的jar文件放入jmeter安装目录下的lib/ext中,重启jmeter。

启动jemter,点击选项,最下面的一栏,进入。搜索 jpgc - Standard Set,选中后点击Apply Changes and Reatart JMeter,重启后可以看到安装了线程组插件和监听器插件:

2.性能测试指标

1).TPS、响应时间、CPU、memory、I/O

1.TPS(Transaction Per Second)
每秒事务数,通常指每秒成功的事务数,代表着服务器的处理能力,监控服务器TPS的表现如整体趋势、实时平均值走向、稳定性等,是性能测试中最重要的指标之一。一个事务是一个业务度量单位,有时一个事务会包括多个子操作,为了统计方便,会把着多个子操作记为一个事务。TPS,执行一次事务(包括请求、请求服务器、等待服务器返回等等,比如一个TPS事务,可能触发3个QPS请求)

2.TRT(Response Times Over Time)
事务响应时间,性能测试重要的另一个指标,在测试脚本执行过程中,监控查看响应时间的实时平均值、整体响应时间走向等

QPS、TPS、吞吐量区别:
性能测试中的QPS、TPS、吞吐量,此处以一个业务举例。
业务:一个登陆的功能,主要页面为登陆页面、登陆成功后跳转页面success.html。整个事务的主要资源有登陆接口(api)、success页面的样式css.css,加载的js脚本script.js。
整个事务流程:发起请求-后端接口处理请球-返回到前端页面并请求加载前端资源

a、TPS
TPS(Transactions Per Second ),字面意思即每秒处理事务数,本例中, 发起登录请求-后端处理请求-返回前端页面就是一整个事务,如果一秒钟能处理N个这样的流程,那么TPS就是N/S。
b、QPS
QPS(Queries Per Second),字面意思即每秒查询数,本例中。如果我们请求的资源只有单个接口,那么QPS=TPS。但是在业务中,除了接口还有其它页面资源信息。一次请求包括css.css,script.js以及api,向服务器发起了3次请求,那么QPS=3。可以理解为QPS是每秒钟发起请求的数量。
访问问一个页面会请求服务器3次,一次访问产生一个“T”,产生3个“Q”
c、吞吐量
一个系统的吞度量(承压能力)与request对CPU的消耗、外部介面、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统介面、IO影响速度越慢,系统吞吐能力越低,反之越高。也就是说吞吐量一般要根据实际情况看与什么指标关联性更大来判断系统的承受能力

2).监听器

1.PerfMon Metrics Collector


PerfMon Metrics Collector,即服务器性能监控数据采集器,比如CPU、memory、I/O等,分为客户端和服务端。

PerfMon Metrics Collector使用
被测服务器配置:
1.下载ServerAgent-2.2.3包
2.上传至linux服务器 解压压缩文件 unzip ServerAgent-2.2.3
3.进入ServerAgent-2.2.3目录下,启动 ./startAgent.sh 文件
4.cmd进入命令行,有消息表示ServerAgent启动成功

客户端
监听器中加入PerfMon Metrics Collector,配置,ip为服务器IP

① cpu:代表使用率的百分比
②内存:代表使用率的百分比
③磁盘io:代表磁盘的读写速度,单位Mb/s
④网络io:网络的速度,单位kbps

3.特殊的线程组

1.Stepping Thread Group

当测试需求是要求逐渐增加负载型的压力测试场景时,使用该线程组,例如:测试场景共有30个线程,每5秒增加2个线程,持续运行60秒,最后每5秒停止2个线程

2.Ulitimate Thread Group

1.当测试需求是要求进行阶梯型的压力测试场景时,使用该线程组。例如:测试场景总共有30个线程,然后分为三次逐渐增加负载,每次增加负载10个线程,运行一定时间后,逐步停止
备注:这里是设置了三个线程计划,每个线程计划并发10个线程,实际上是最高30个线程同时执行

 2.当测试需求是要求进行波浪型的压力测试场景时,使用该线程组,

例如:测试场景总共有10个线程,然后分为三个波段进行测试,每个波段负载策略设置为一样 
备注:这里是设置了三个线程计划,每个线程计划并发10个,是在时间轴上按顺序执行的,因此场景最高并发用户是10个,而非30个并发用户。

举例:双十一买物品,0点后开始疯狂抢购(第一批用户),可能有一部分人5分钟后才进入,这个就是第二批用户,此时第一批和第二批会存在同时请求的情况。

4.性能测试报告

1.聚合报告
2.生成html测试报告

a.脚本执行前,新建一个csv存放执行结果文件

执行 完成后,查看文件中已存入执行结果

b.生成html报告

生成html的内容

打开html文件可查看测试报告,发送给其他人查看时,需要把生成的内容全部发送。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Windows 电脑类别怎么区分?不同类别区分总结

电脑类别 Windows 电脑的类别有哪些?我们可以大致分为这三类:CopilotPC、AI PC、普通 PC。下面就来看看这些电脑类别的区别。 普通 PC 普通 PC 就是指那些标准的台式电脑或者笔记本电脑,它们是由中央处理器(CPU)以及…

【面试题】信息安全风险评估要做些什么

信息安全风险评估是识别、评估和管理信息系统中潜在风险的重要过程。它具有以下几个关键步骤: 1.资产识别: 确定需要保护的信息资产,如硬件、软件、数据、人员等。例如,企业的客户数据库、重要的业务文档等。 2.威胁评估&#…

手把手教你打造高精度STM32数字时钟,超详细步骤解析

STM32数字时钟项目详解 1. 项目概述 STM32数字时钟是一个集成了时间显示、闹钟功能、温湿度检测等多功能于一体的小型电子设备。它利用STM32的实时时钟(RTC)功能作为核心,配合LCD显示屏、按键输入、温湿度传感器等外设,实现了一个功能丰富的数字时钟系统。 2. 硬件组成 STM…

文献解读-基因编辑-第十二期|《CRISPR-detector:快速、准确地检测、可视化和注释基因组编辑事件引起的全基因组范围突变》

关键词:基因组变异检测;全基因组测序;基因编辑; 文献简介 标题(英文):CRISPR-detector: fast and accurate detection, visualization, and annotation of genome-wide mutations induced by g…

做外贸有些事说早了,未必是好事

如果说能说话,其实谁也会,但是能把话说好却并不是一个简单的事,而且说话的时机往往也影响着事情的结局和走向, 所以才有了老人常提起的那句话:三岁学说话,一生学闭嘴。 最近我又因为图省事而犯了一个错误&…

云通SIPX,您的码号资源智能调度专家!

在数字化转型的浪潮中,号码资源作为企业与客户沟通的重要桥梁,其管理效率直接关系到企业运营的成败。随着运营商对号码资源管理的规范化和精细化,企业对高效、智能的号码资源管理需求日益增长,以实现对外呼叫的降本增效。 一、什么…

JAVA编程题期末题库【中】

8.计算邮资 程序代码: public static void main(String[] args) {// 计算邮资//if多分支语句//创建对象java.util.Scanner inputnew java.util.Scanner(System.in); //提示输入用户,输入邮件的重量System.out.println("邮件的重量:");int wei…

VMware ESXi 8.0U2c macOS Unlocker OEM BIOS Huawei (华为) FusionServer 定制版

VMware ESXi 8.0U2c macOS Unlocker & OEM BIOS Huawei (华为) FusionServer 定制版 ESXi 8.0U2 标准版,Dell (戴尔)、HPE (慧与)、Lenovo (联想)、Inspur (浪潮)、Cisco (思科)、Hitachi (日立)、Fujitsu (富士通)、NEC (日电)、Huawei (华为)、xFusion (超聚…

小型智能驱鸟器,建筑驱鸟专用

随着城市化进程的加快,鸟类与人类的居住空间逐渐交织重合,鸟类对建筑物的侵扰问题也愈发凸显。家庭庭院、住宅窗前、屋顶,甚至那些承载着历史与文化底蕴的名胜古迹和精美雕像,都时常受到鸟粪的污染。鸟粪具有腐蚀性且很难清理&…

智能疏散指示系统为什么是验收的必然考核标准?哪些厂家具备资质

智能疏散系统需要什么?现阶段,随着我国经济不断发展趋势的加快,住宅建筑具有复杂的特点。近年来,我国高层住宅、大中型建筑、综合性公共建筑越来越多。随着这座现代建筑的进步,我发现这种类型的建筑在发生火灾或事故时…

【高级篇】主从复制与高可用性:构建坚若磐石的数据库基础设施(十二)

引言 在上一章《备份与恢复》中,我们深入探讨了如何通过各种备份策略和恢复技术,确保数据的安全性和业务的连续性。然而,为了应对更大规模的业务挑战和灾难恢复需求,仅仅依靠备份是不够的。本章,我们将聚焦于MySQL的主从复制与高可用性技术,从原理到实践,从配置到优化,…

程序猿大战Python——Python与MySQL交互一

pymysql模块的安装 目标:了解如何安装pymysql模块? 当要使用Python和MySQL数据库进行交互,需要借助一个第三方模块:pymysql。 在使用pymysql模块前,先进行安装: pip install pymysql 有时使用pip instal…

iptables(11)target(SNAT、DNAT、MASQUERADE、REDIRECT)

简介 前面我们已经介绍了ACCEPT、DROP、REJECT、LOG,这篇文章我们介绍SNAT、DNAT、MASQUERADE、REDIRECT,这几个参数的定义我们在上篇文章中都有介绍,我这里再列出回顾一下 DNAT(目标地址转换)和 SNAT(源地址转换) 原理:修改数据包的源或目标 IP 地址。通常用于 NAT(…

制造业“智改数转”背景下,产品经理考取NPDP证书的重要性

在“智改数转”(智能化改造和数字化转型)已成为推动制造业高质量发展的关键路径背景下,作为连接市场需求与产品实现的关键角色,产品经理的角色愈发重要。而考取NPDP(新产品开发专业人士认证)证书&#xff0…

VBA 进度条(2)

1.前提 1-1. 在VBA编辑器找到工具-引用-勾选MicroSoft Visual Basic for Applications Extensibility Library 1-2. 信任中心 -> 宏设置 -> 开发人员宏设置 -> 选中“信任对VBA工程对象模型的访问” 2.类模块 Private objApp As Object Private u…

Mysql进阶-索引-使用规则-索引失效情况二(or连接的条件、数据分布影响)

文章目录 1、or连接的条件1.1、展示 tb_user 索引1.2、查询 id10 or age231.3、执行计划 id10 or age231.4、给 age 创建 索引1.4、执行计划 phone17799990004 or age23 2、数据分布影响2.1、查询 tb_user2.2、查询 phone >177999900202.3、执行计划 phone >177999900202…

Java 自定义jackson2序列化器遇到的问题

问题1:java: 错误: 不支持发行版本 5 修改idea java环境 问题2:ClassNotFoundException: com.fasterxml.jackson.annotation.JsonMerge 缺少 jar 包:jackson-annotations 引入依赖的地址:https://mvnrepository.com/artifact/c…

【深度学习】【Lora训练3】StabelDiffusion,Lora训练过程,秋叶包,Linux,SDXL Lora训练

为了便于使用,构建一个docker镜像来使用秋叶包。2024年6月26日。 docker run -it --gpus all -v /ssd/xiedong:/datax --net host kevinchina/deeplearning:pytorch2.3.0-cuda12.1-cudnn8-devel-xformers bashgit clone --recurse-submodules https://github.com/A…

如何实现智慧农田的精准灌溉

如何实现智慧农田的精准灌溉 智慧农田的精准灌溉是现代农业技术发展的重要组成部分,它集成了物联网、大数据分析、人工智能以及现代水利技术,旨在通过实时监测土壤湿度、气象条件及作物生长状况,实现水资源的高效利用和作物产量、品质的双重…

学习记录698@基带传输和频带传输基础

还是在学习计算机网络物理层时遇到这些知识点,这里简单的记录一下,主要都是通信专业的知识 基带传输 信源发出的原始信号叫做基带信号,基带信号分为模拟基带信号与数字基带信号。基带信号一般是低频成分,适合在具有低通特性的有…