JMeter 动态参数赋值实践

目录

前言

单线程 + 用户参数

场景说明

实战结果

配置明细

单线程 + CSV Data Set Config

场景说明

实践结果

配置明细

多线程循环单次执行

场景说明

实践结果

配置明细

单线程 + 控制器 + 用户自定义变量 + 用户参数

场景说明

实战结果

配置明细

多并发 + 多接口 + 同步定时器

场景说明

实践结果

配置明细

总结


前言

日常接口测试/性能测试使用 jmeter 实现动态参数赋值,常规用法都是配置 csv 文件,然后接口直接从 csv 文件里面去获取,但是这种方式有一个弊端,就是脚本文件迁移的时候,必须一起带上 csv 才行,不然脚本位置变了,里面 csv 的文件路径没有同步更新,脚本执行就会受影响了。但是除去 csv 的方式,尤其是小数据量的情况下,是可以通过用户自定义变量或者用户参数来实现的,接下来使用他们来做演示,看各自不同组合配置产生的结果如何。

单线程 + 用户参数

场景说明

测试计划 (顺序执行: true)
|
+-- 线程组 (并发用户数: 1, 循环次数: 10)|+-- 用户参数(user parameter)| 变量用户id对应的不同用户值: userId_1, ..., userId_n)| 每次迭代更新一次:false/true,结果一样|+-- HTTP 取样器 (调用接口,并在入参处引用 ${userId})|+-- HTTP 取样器 2(后续接口调用...)|...|+-- HTTP 取样器 N (整个链路的最后一环)

实战结果

循环 10 次,每次的接口入参值都相同,且值为 userId_1

配置明细

图片图片图片图片图片

单线程 + CSV Data Set Config

场景说明

测试计划 (顺序执行: true)
|
+-- 线程组 (并发用户数: 1, 循环次数: 10)|+-- CSV Data Set Config(变量为 userId)|+-- HTTP 取样器 (调用接口,并在入参处引用 ${userId})|+-- HTTP 取样器 2(后续接口调用...)|...|+-- HTTP 取样器 N (整个链路的最后一环)

实践结果

单线程 N 次循环 结合 CSV 外部参数化配置,可实现动态取参,且值不重复

配置明细

图片图片图片图片

多线程循环单次执行

场景说明

测试计划 (顺序执行: true)
|
+-- 线程组 (并发用户数: 10, 循环次数: 1)|+-- 用户参数(user parameter)| 变量用户id对应的不同用户值: userId_1, ..., userId_n)| 每次迭代更新一次:false/true,结果一样|+-- HTTP 取样器 (调用接口,并在入参处引用 ${userId})|+-- HTTP 取样器 2(后续接口调用...)|...|+-- HTTP 取样器 N (整个链路的最后一环)

实践结果

线程并发数为 n,用户参数里面的用户个数为 m

若 n <= m, 则只执行 n 次的用户请求,此时结果入参值动态获取

若 n > m, 则会执行 n 次的用户请求,超出 m 会重新开始读取用户参数

这种做法存在一个问题:看到的执行结果是乱的,因为并发执行的时候,本身就是无序的,没办法做到第一个用户执行完毕后第二个用户执行。

配置明细

图片图片图片图片图片

单线程 + 控制器 + 用户自定义变量 + 用户参数

场景说明

测试计划 (顺序执行: true)
|
+-- 线程组 (并发用户数: 1, 循环次数: 1)|+-- ForEach Controller(确定变量,及值的格式如:e=a_1)|+-- 用户对应的变量 (如:a_1 = 1, a_2 = 2)|+-- IF Controller(如环境 A, ${e} == 1)|+-- 用户参数(user parameter 环境 A)|   (userId_1)| 每次迭代更新一次:false/true,结果不同|+-- IF Controller(如环境 B, ${e} == 2)|+-- 用户参数(user parameter 环境 B)|   (userId_2)| 每次迭代更新一次:false/true,结果不同|+-- 事务控制器|+-- HTTP 取样器 (调用接口,并在入参处引用 ${userId})|+-- HTTP 取样器 2(后续接口调用...)|...|+-- HTTP 取样器 N (整个链路的最后一环)

实战结果

上述配置方式,相当于是循环里面通过判断获取对应目标用户参数,通过这种方式来控制先执行那个用户参数后执行那个用户参数,看到的执行记录是有序的

配置明细

图片图片图片图片图片图片图片图片图片图片

多并发 + 多接口 + 同步定时器

场景说明

测试计划 (顺序执行: true)
|
+-- 线程组 (并发用户数: 8, 循环次数: 1)|+-- 用户参数(user parameter 环境 A)|   (userId_1)| 每次迭代更新一次:false/true,结果不同+-- 事务控制器|-- 同步定时器|+-- HTTP 取样器 (调用接口,并在入参处引用 ${userId})|+-- HTTP 取样器 2(后续接口调用...)|...|+-- HTTP 取样器 N (整个链路的最后一环)

实践结果

未增加定时器,不同用户执行同一接口无序

增加定时器后,不同用户可同时执行同一接口

配置明细

图片图片

总结

  1. 单线程 + CSV 参数化配置,可实现参数动态赋值;

  2. 单线程 + 循环控制器 + 用户参数,可实现不同参数赋值;

  3. 多线程 + 用户参数,可实现不同参数赋值;

  4. 多并发 + 多接口 + 同步定时器,可实现高并发下接口顺序执行;

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

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

相关文章

AudioSegment 提高音频音量 - python 实现

一些采集的音频声音音量过小可以通过 AudioSegment 实现音量增强。 按照 python 库&#xff1a; pip install AudioSegment 代码具体实现&#xff1a; #-*-coding:utf-8-*- # date:2024-10 # Author: DataBall - XIAN # Function: 音频增加音量import os from pydub import …

Matlab学习01-矩阵

目录 一&#xff0c;矩阵的创建 1&#xff0c;直接输入法创建矩阵 2&#xff0c;利用M文件创建矩阵 3&#xff0c;利用其它文本编辑器创建矩阵 二&#xff0c;矩阵的拼接 1&#xff0c;基本拼接 1&#xff09; 水平方向的拼接 2&#xff09;垂直方向的拼接 3&#xf…

记录:网鼎杯2024赛前热身WEB01

目录扫描&#xff0c;发现上传点&#xff0c;判断可能存在文件上传漏洞&#xff0c;并根据文件后缀判断网站开发语言为php 编写蚁剑一句话木马直接上传 蚁剑连接 这里生成 的flag是随机的&#xff0c;因为烽火台反作弊会随机生成环境&#xff0c;在一顿查找后&#xff0c;在hom…

今日总结10.23

什么是反射 优缺点是什么 一、光学中的反射 定义&#xff1a; 反射是光线在与物体表面相遇时&#xff0c;由于介质的折射率不同而产生的一种现象。当光线照射到一个物体表面时&#xff0c;一部分光线会被反射回来&#xff0c;这个过程被称为反射。 优点&#xff1a; 1.反射…

stm32F103 实现呼吸灯效果

目录 硬件连接 软件实现步骤 初始化系统时钟。 配置 GPIO 引脚。 配置定时器以生成 PWM 信号。 在主循环中调整 PWM 占空比以实现呼吸效果。 示例代码 1. 初始化系统时钟 2. 配置 GPIO 引脚 3. 配置定时器以生成 PWM 信号 4. 在主循环中调整 PWM 占空比以实现呼吸效…

5G RedCap工业路由器赋能电力物联网应用

随着5G轻量化技术应用的推进&#xff0c;5G RedCap旨在提供低功耗、低成本、广覆盖等功能特点赋能电力智能化升级。特别适用于工业物联网、低空经济、车联网、消费电子和轻量级5G的需求。 5G RedCap工业路由器的特点 低功耗&#xff1a;5G RedCap工业路由器通过节能技术&#…

npm run serve 提示异常Cannot read property ‘upgrade‘ of undefined

npm run serve 提示Cannot read property ‘upgrade’ of undefined 一般是proxy的target代理域名问题导致的&#xff0c;如下&#xff1a; 解决方案&#xff1a; proxy: { “/remoteDealerReportApi”: { target: ‘http://demo-.com.cn’, //此域名有问题&#xff0c;会导致…

PTA数据库编程练习合集

10-1 查询重量在[40,65]之间的产品信息 本题目要求编写SQL语句&#xff0c; 检索出product表中所有符合40 < Weight < 65的记录。 提示&#xff1a;请使用SELECT语句作答。 表结构: CREATE TABLE product (Pid varchar(20), --商品编号PName varchar(50), --商品名…

JavaWeb开发7

前后端混合开发 沟通成本高 分工不明确 不便管理 不便维护扩展 前后端分离开发 前端--接口--后端 需求分析--接口定义--前后端并行开发--测试--前后端连调测试 前端开发 模块化 JS、CSS 组件化 UI结构、样式、行为 规范化 目录结构、编码、接口 自动化 构建、部署、…

iOS -- 代码优化

目录 1. filter 优化2. return 优化案例1案例2 3. for循环优化案例1案例2 4. 枚举 优化5. 未完待续…… 1. filter 优化 原代码 if var vcs vcs {for vc in vcs {if vc is XXLoginViewController {if let index vcs.firstIndex(of: vc) {vcs.remove(at: index)}} }修改后 v…

Git_IDEA集成GitHub

Git_IDEA集成GitHub 设置 GitHub 账号 分享工程到 GitHub push 推送本地库到远程库 pull 拉取远程库到本地库 clone 克隆远程库到本地 设置 GitHub 账号 去 GitHub 账户上设置 token 因为网络原因用账号密码可能登不上&#xff0c;所以选择用口令。 分享工程到 GitHub…

网络安全领域推荐证书介绍及备考指南

在网络安全领域&#xff0c;拥有专业认证不仅可以证明个人的专业能力&#xff0c;还能帮助在实际工作中应用先进的技术和知识。以下是几种热门的网络安全证书介绍及备考指南。 1. OSCP (Offensive Security Certified Professional) 证书简介 OSCP是针对渗透测试领域的入门级…

人工智能:未来生活与工作的变革力量

人工智能&#xff08;AI&#xff09;作为21世纪最具变革性的技术之一&#xff0c;正以前所未有的速度改变着我们的生活和工作方式。从医疗行业的突破性进展到企业运营的智能化&#xff0c;以及日常生活中各种智能产品的普及&#xff0c;人工智能正在成为现代社会不可或缺的一部…

Matlab 疲劳驾驶检测

课题介绍 该课题为基于眼部和嘴部的疲劳驾驶检测。带有一个人机交互界面GUI&#xff0c;通过输入视频&#xff0c;分帧&#xff0c;定位眼睛和嘴巴&#xff0c;通过眼睛和嘴巴的张合度&#xff0c;来判别是否疲劳。 二、操作步骤 第一步&#xff1a;最好电脑安装的是MATLAB …

SpringBoot整合Lombok框架与应用

Lombok框架 Lombok框架的主要作用是通过注解可以在编译期生成某些代码&#xff0c;例如Setters & Getters、hashCode()与equals()、toString()方法等&#xff0c;可以简化开发。 话不多说-直接上代码--------------------- <!-- Lombok的依赖项&#xff0c;主要用于简…

Jmeter 实战 JDBC配置

​ JDBC JDBC&#xff08;Java Database Connectivity&#xff09;是一种用于执行SQL语句的Java API。通过这个API&#xff0c;可以直接连接并执行SQL脚本&#xff0c;与数据库进行交互。 使用JMeter压力测试时&#xff0c;操作数据库的场景 在使用JMeter进行接口压力测试时…

全栈面试题】模块3-9】JavaSE高级 -- Object类、 GC、反射、Socket

目录 面试题3.62 JAVA中Object类中有哪些常用方法&#xff1f; 面试题3.63 什么是深拷贝和浅拷贝 面试题3.64 GC是什么? 为什么要有GC? 面试题3.65 JVM垃圾回收机制和常见算法 面试题3.66 简单的介绍⼀下强引用&#xff0c;软引用&#xff0c;弱引用&#xff0c;虚引用 …

状态模式介绍

状态模式&#xff08;State Pattern&#xff09;是一种行为设计模式&#xff0c;它允许一个对象在其内部状态改变时改变其行为。状态模式主要用于处理对象的行为随着其状态的改变而变化的情况。通过使用状态模式&#xff0c;可以将状态的相关行为封装到对应的状态类中&#xff…

基于SSM消防物资存储系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;仓库管理&#xff0c;物资入库管理&#xff0c;仓位管理&#xff0c;物资详情管理&#xff0c;报警通知管理&#xff0c;安全检查提醒管理 用户账号功能包括&#xff1a;系统首页…

【数据分享】全国能源-电力平衡表(2000-2020年)

数据介绍 一级标题指标名称单位能源电力可供量亿千瓦小时能源电力生产量亿千瓦小时能源水电生产电力量亿千瓦小时能源火电生产电力量亿千瓦小时能源核电生产电力量亿千瓦小时能源风电生产电力量亿千瓦小时能源电力进口量亿千瓦小时能源电力出口量亿千瓦小时能源电力能源消费总量…