Jmeter 性能压测-混合场景

文章讨论了如何在脚本中实现定时启动与暂停,使用Jenkins定时任务或UltimateThreadGroup控制并发。重点在于混合场景下的并发用户对不同接口的请求,以及性能测试时的服务器压力管理和线程间参数传递。结尾提供了软件测试面试题资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、问题:脚本期望在启动之后,运行一段时间,暂停,然后过一段时间之后,再运行?

①Jenkins中的定时任务 √ 但是,这种方式,需要大家掌握Jenkins中定时任务的配置

②Ultimate Thread Group 下一波浪的起始时间大于 前一个波浪的所有时间之和

2、混合场景-不同数量的并发用户数,向不同接口发起请求

混合场景:不同数量的并发用户数,向不同接口发起请求---这种才是真正的混合场景,才真正符合企业产品实际情况

"假"混合场景:在一个线程组中,添加逻辑控制器,控制我们脚本的运行,这种,是把脚本混合了, 但是于生产的情况还是有差异。

跨线程组传参,比如设置:

线程组1 并发数 40
线程组2 并发数 20
线程组3 并发数 10

每个线程组设置不同的并发数,特别注意被引用的变量一定要大于等于引用的变量,否则会有些引用不到。

在做性能测试时,不要连续去执行性能测试,在前一轮性能测试结束的时候,要休息一会,等待服务器的压力释放。

再开始下一轮性能测试,不然,因为前面的性能测试导致服务器压力过大,未释放,从而影响后续性能测试结果。​​​​​​​

${__setProperty(pro_gqid_${__threadNum},${gqid},)} ---设置和线程相关的属性
${__P(pro_gqid_${__threadNum},)}----获取属性

图片

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

在这里插入图片描述

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

### 使用 JMeter 进行混合场景试 #### 创建多线程组 在单个 JMeter 试计划下可以创建多个线程组来代表不同的用户行为模式。每个线程组内可包含特定于该类用户的接口取样器,从而允许模拟多种类型的交互操作[^1]。 对于希望更精确地反映真实世界负载情况的应用程序来说,这种方法非常有用,因为它能够同时运行若干独立但又相互关联的工作流。 #### 设置合理的间隔时间 当执行一系列连续的性能试迭代时,在两轮之间安排适当的停顿期是非常重要的。这有助于让被系统有足够的时间恢复到稳定状态,减少因累积效应而产生的偏差影响最终的结果分析[^2]。 #### 控制并发比例 针对存在多个并行业务流程的需求,可以通过调整各线程组中的虚拟用户数以及它们之间的相对权重来进行精准调控。具体而言,依据实际业务逻辑设定恰当的比例关系以确保所生成的数据流量分布合理且贴近实际情况[^3]。 #### 实现方式概述 以下是几种常见的用于构建复杂混合工作负荷的方法: - **按百分比分配请求**:按照预定义好的规则将总请求数划分给各个子任务; - **基于定时器调节频率**:利用内置或自定义定时组件改变事务发生的速率; - **组合使用以上两者**:综合考虑数量与速度因素共同作用下的效果评估[^4]。 ```xml <!-- 示例 XML 片段展示如何配置两个具有不同特性的线程组 --> <jmeterTestPlan> <!-- ...其他配置... --> <hashTree> <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup"> <stringProp name="ThreadGroup.on_sample_error">continue</stringProp> <elementProp name="ThreadGroup.main_controller" elementType="LoopController"/> <boolProp name="LoopController.continue_forever">false</boolProp> <intProp name="LoopController.loops">100</intProp> <!-- 配置第一个线程组的具体参数 --> </ThreadGroup> <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup"> <stringProp name="ThreadGroup.on_sample_error">stopthread</stringProp> <elementProp name="ThreadGroup.main_controller" elementType="LoopController"/> <boolProp name="LoopController.continue_forever">true</boolProp> <intProp name="LoopController.loops">1</intProp> <!-- 配置第二个线程组的具体参数 --> </ThreadGroup> </hashTree> <!-- ...更多配置项... --> </jmeterTestPlan> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值