【软件测试】使用JMeter进行压力测试_3

目录

[8. 同步定时器](#8. 同步定时器)

[8.1 同步定时器的作用](#8.1 同步定时器的作用)

[8.2 线程组的线程数、同步定时器的模拟用户组数量和HTTP请求取样器个数](#8.2 线程组的线程数、同步定时器的模拟用户组数量和HTTP请求取样器个数)

[9. 事务控制器与聚合报告](#9. 事务控制器与聚合报告)

[10. CSV数据文件设置](#10. CSV数据文件设置)


使用JMeter进行压力测试系列文章:

使用JMeter进行压力测试系列文章

https://blog.csdn.net/m0_63299495/article/details/160152401?spm=1011.2415.3001.5331https://blog.csdn.net/m0_63299495/article/details/160152401?spm=1011.2415.3001.5331https://blog.csdn.net/m0_63299495/article/details/160407784?sharetype=blogdetail&sharerId=160407784&sharerefer=PC&sharesource=m0_63299495&spm=1011.2480.3001.8118https://blog.csdn.net/m0_63299495/article/details/160407784?sharetype=blogdetail&sharerId=160407784&sharerefer=PC&sharesource=m0_63299495&spm=1011.2480.3001.8118


8. 同步定时器

8.1 同步定时器的作用

设置线程数为4,启动测试并点击右上角带有感叹号的黄色三角标志牌查看线程组运行情况:

创建的4个线程各自独立运行,请求到达的时间点分散,无法在同一时间对服务器产生并发压力。

为了实现多进程并发测试,需要使用同步定时器:右击添加->定时器->Synchronizing Timer,将同步定时器模拟用户组数量设置为4后重新测试,查看线程运行情况:

可见所有线程在定时器处排队等待,直到收集够指定数量的线程后再同时释放,在同一瞬间向服务器发起请求,从而实现多用户的并发执行。

8.2 线程组的线程数、同步定时器的模拟用户组数量和HTTP请求取样器个数

线程组中存在"线程数"选项,同步定时器中存在"模拟用户组数量"选项,二者以及HTTP请求取样器个数之间的含义需要进行区分:

(1)线程组的线程数n:线程是JMeter模拟用户请求的基本执行单元,即虚拟用户个数,代表当前测试场景中可并行执行任务的最大执行单元数量;

(2)同步定时器的模拟用户组数量m:同步阻塞阈值,阻塞已到达同步点的线程,直至至少达到指定数量的线程集合完毕后,统一释放所有阻塞线程继续执行后续任务;

(3)HTTP取样器数量k:代表单次HTTP接口请求任务,是线程执行的具体业务操作单元;

由于同步定时器必须等待直至收集足够数量的线程后才能释放请求,所以同步定时器设置的模拟用户组数量不能大于线程组设置的线程数,否则永远无法集齐指定数量的线程。

即:假设线程组设置的线程数为n,则同步定时器设置的用户数m需需满足:n≥m

在实际测试中,由于同步定时器设置的模拟用户组数量含义是阻塞阈值,而非固定的阻塞值,若设置固定的循环次数则会存在某一轮永远无法集齐阈值及其以上线程的情况,所以通常同步定时器会搭配线程组固定持续时长调度内无限次循环的方式来测试:

再这样的配置下进行测试,即可正确启动并正常终止所有线程;

9. 事务控制器与聚合报告

事务控制器可以将多个HTTP请求取样器打包成一个逻辑事务,统一计算耗时、统计成功 / 失败、统一展示。它不改变执行顺序,不控制并发,不等线程,只做结果统计与业务聚合。

聚合报告是常用的监听器,主要指标及其含义如下:

对于请求调用的响应时间,设有平均数、中位数、90%百分位,95%百分位,99%百分位共5个指标,在性能测试结果分析中,平均响应时间易受极端异常值影响,无法真实反映用户体验分布,因此不作为核心评估依据。通常以95%百分位响应时间作为主要评估指标以确保绝大多数用户在正常与极端场景下都能获得稳定的响应性能。

10. CSV数据文件设置

CSV数据文件可以从外部读取 .csv/.txt 文本数据,实现参数化,批量替换接口入参,模拟不同用户、不同数据重复请求。

此处以登录接口的用户登录账号密码信息为例,创建一个.csv文件:

把登录接口的HTTP请求取样器的参数对应值修改为从变量中获取:

在线程组下右击添加->配置元件->CSV Data Set Config:

其中:(1) 创建csv文件的方法为:首先创建一个.xls文件,编辑内容后,进行另保存->选择逗号分隔.csv文件进行创建:

不能通过直接修改后缀的方法,会导致乱码无法读取:

(2)若CSV文件中设有表头,即第一行并非有效数据,需要将"忽略首行"选项设为True;

若CSV文件中不设表头,即第一行就是有效数据,需要将"忽略首行"选项设为False;

(3)配置线程组多个线程数后,即可观察到读取CSV文件不同用户与密码进行登录测试结果;

相关推荐
Saniffer_SH3 天前
【高清视频】Gen6 服务器还没到,Gen6 SSD 怎么测?Emily 现场演示三种测试环境
人工智能·驱动开发·测试工具·缓存·fpga开发·计算机外设·压力测试
糖果店的幽灵5 天前
软件测试接口测试从入门到精通:JMeter接口测试
软件测试·jmeter·接口测试·压力测试·性能测试
1candobetter6 天前
JMeter 性能压测监控实战
jmeter
wenying_443237446 天前
软件测试—JMeter—跨线程组关联
jmeter·压力测试
川石课堂软件测试7 天前
UI自动化测试|下拉选择框&弹出框&滚动条操作实践
开发语言·python·jmeter·ui·docker·单元测试·harmonyos
HBYKKJ8 天前
格雷希尔G70-370L050N定制款密封测试接头,专门针对法兰式凸缘管口而设计,解决SF6压力表的气密性测试难题
功能测试·压力测试·快速接头·气密性测试·密封测试接头
不剪发的Tony老师8 天前
SQLQueryStress:一款SQL Server查询压力测试工具
数据库·sqlserver·压力测试
AI thought9 天前
C语言企业项目实战(四)
c语言·单元测试·压力测试·企业项目·工程体系
测试19989 天前
Jmeter性能压测:TPS与QPS
自动化测试·软件测试·python·jmeter·测试用例·压力测试·性能测试
川石课堂软件测试10 天前
UI自动化测试|XPath元素定位实践
功能测试·测试工具·jmeter·microsoft·ui·postman·harmonyos