【软件测试】使用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文件不同用户与密码进行登录测试结果;

相关推荐
OneBlock Community1 天前
一边加速,一边止血:Polkadot 的压力测试月
压力测试
EVE จุ๊บ2 天前
如何修改mac上的jmeter堆内存
jmeter·macos
狼爷3 天前
JMeter 全指南:从性能测试入门到架构级实战
jmeter·测试
雪碧聊技术5 天前
什么是压力测试?压力测试的工具有哪些?一文详解
jmeter·压力测试·wrk
弹简特6 天前
【精通JMeter接口测试-完结】05-JMeter通关收官!BeanShell和接口签名
jmeter·beanshell·接口签名
某人辛木7 天前
JMeter下载安装配置
jmeter
汽车仪器仪表相关领域7 天前
Kvaser Memorator Professional HS/LS:高速 + 低速双通道 CAN 总线记录仪,跨系统诊断的专业级解决方案
网络·人工智能·功能测试·测试工具·安全·压力测试
迷藏4948 天前
# 发散创新:用Locust实现高并发场景下的精准压力测试与性能调优实战在现代微服务架构中,**接口稳定性与响应速度**已成为衡量
java·python·微服务·架构·压力测试