『动善时』JMeter基础 — 24、JMeter中使用“用户参数”实现参数化
1、用户参数组件介绍
用户参数(User Parameter)组件在前置处理器元件中添加,前置处理器的作用是在取样器发出请求之前,执行一些操作。
即:如果将前置处理器附加到取样器元件中,则它将在该取样器元件运行之前执行。常用操作如:取样器参数设置、环境变量设置、脚本预处理等。
之前我们介绍过,JMeter中常用的参数化方式有四种:
- CSV数据文件设置(
CSV Data Set Config):这种方式是通常所指的参数化。数据存储在文件中,该种参数化方式取值范围大,灵活性强,适用于大量测试数据时的使用。 - 用户参数(
User Parameter):适用于参数取值范围很小,需要少量测试数据时使用。 - 用户自定义变量(
User Defined Variables):更多用于设置全局变量,常用于数据库地址,测试环境、开发环境地址等常量配置。 - 函数助手:可使用函数生成随机数字和随机字符串实现参数化。
本文以前置处理器中的用户参数组件为例,实现JMeter中的参数化。
2、用户参数界面介绍
用户参数组件添加方式:选中“取样器”右键 —> 添加 —> 前置处理器 —> 用户参数。
用户参数界面如下图所示:

界面说明:
- 名称:用户参数组件的自定义名称,见名知意最好。
- 注释:即添加一些备注信息,对该用户参数组件的简短说明,以便后期回顾时查看。
- 每次迭代更新一次:我个人的理解,不同的线程需要应用不同的用户数据,这时就需要勾选此选项。也就是根据线程组里设置的线程数,每个线程调用不同的用户数据,依次取值。但是我实际操作中,勾选不勾选都能够依次取值。(如果修改线程组界面中的循环次数,勾不勾选,都只用一个用户的值。)
- 添加变量:横着添加一行变量信息,此变量会应用于每个用户。
- 删除变量:删除所选中的一行数据。
- 添加用户:竖着添加一个用户信息,一个用户就是一组测试数据。
- 删除用户:删除所选中的一列数据。
- 向上和向下按钮:就是上下移动所选中变量的位置。
3、使用“用户参数”组件实现参数化
例如:现在有一个需求,实现批量用户登陆。
(1)测试计划内包含的元件
添加元件操作步骤:
- 创建测试计划
- 创建线程组:
选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组。 - 在线程组中,添加取样器”HTTP请求“组件:
选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求。 - 在取样器中,添加前置处理器“用户参数”组件:
选中“取样器”右键 —> 添加 —> 前置处理器 —>用户参数。 - 在线程组中,添加监听器察看结果树组件:查看结果,
选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树。
最终测试计划中的元件如下:

点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。
(2)线程组元件内容
如果需要使用CSV文件中所有的数据,需要设置线程数。
因为没有了CSV数据文件设置组件的参与,所以这里只能使用线程数进行设置,才能实现变量的循环应用。
如果使用循环次数进行设置,效果就是使用同一用户,执行几次登陆操作。

(3)HTTP请求组件内容
在JMeter中使用参数化变量的格式:${变量名}。
编辑登录接口内容,如下图所示:

(4)用户参数组件内容
配置好的四组用户数据,如下图所示:

操作方式说明:
- 增加变量:就是横着添加一行,有几个用户,这一行中就有几列。
- 删除变量:就是删除所选中的一行数据。
- 添加用户:就是纵向添加一列数据,有几个变量,这一列中就有几行。
- 删除用户:就是删除所选中的一列数据。
(5)脚本运行结果
该测试脚本运行结果如下图所示:

以上就完成了在JMeter中通过“用户参数”组件实现参数化的示例。
4、总结
优先级说明:
- 线程组下的用户参数组件 优先级高于 测试计划 里的用户自定义变量。
- HTTP 请求下的用户参数组件 优先级高于 **线程组下 **的用户参数组件。
- 若有重名参数,优先取优先级高的用户参数。
- 若用户参数和用户自定义变量重名,则优先取用户参数组件中的值 。
因为配置元件执行完再到前置处理器,所以前置处理器的值会覆盖配置元件中设置的值。
提示:关于使用”函数助手“实现JMeter的参数化,我们在后边学习到”函数助手“在说明。
『动善时』JMeter基础 — 24、JMeter中使用“用户参数”实现参数化的更多相关文章
- 『动善时』JMeter基础 — 20、JMeter配置元件【HTTP Cookie管理器】详细介绍
目录 1.HTTP Cookie管理器介绍 2.HTTP Cookie管理器界面详解 3.JMeter中对Cookie的管理 (1)Cookie的存储 (2)Cookie的管理策略 4.补充:Cook ...
- 『动善时』JMeter基础 — 6、使用JMeter发送一个最基础的请求
目录 步骤1:创建一个测试计划 步骤2:创建线程组 步骤3:创建取样器 步骤4:创建监听器 步骤5:完善信息 步骤6:保存测试计划 步骤7:查看结果 总结:JMeter测试计划要素 当我们第一次打开J ...
- 『动善时』JMeter基础 — 44、JMeter对数据库的更新操作
目录 1.执行一条insert语句 2.insert语句实现参数化 3.一次执行多条insert语句 4.使用Beanshell生成加密数据示例 (1)测试计划内包含的元件 (2)JDBC连接配置组件 ...
- 『动善时』JMeter基础 — 7、jmeter.properties文件常用配置
目录 1.默认语言设置 2.配置默认编码格式 3.GUI图标放大比例设置 4.功能区工具栏图标大小设置 5.视图区目录树图标大小设置 6.内容区编辑字体设置 7.添加JMeter元素快捷键设置 8.捕 ...
- 『动善时』JMeter基础 — 12、JMeter取样器详解:sampler
目录 1.取样器介绍 2.JMeter自带的取样器 3."HTTP请求"为例介绍一下取样器 (1)HTTP Request: (2)Web服务器: (3)HTTP请求: (4)同请 ...
- 『动善时』JMeter基础 — 17、JMeter配置元件【HTTP请求默认值】
目录 1.HTTP请求默认值介绍 2.HTTP请求默认值界面 3.HTTP请求默认值的使用 (1)用于演示的项目说明 (2)测试计划内包含的元件 (3)说明HTTP请求默认值用法 4.总结 5.拓展知 ...
- 『动善时』JMeter基础 — 22、JMeter中实现参数化(CSV)
目录 1.参数化的定义 2.什么情况下需要用到参数化 3.JMeter实现参数化的方式 4.CSV数据文件设置界面详细说明 (1)CSV数据文件设置组件界面说明 (2)补充说明:Recycle on ...
- 『动善时』JMeter基础 — 23、JMeter中使用“用户自定义变量”实现参数化
目录 1.用户自定义变量介绍 2.使用"用户自定义变量"实现参数化 (1)测试计划内包含的元件 (2)数据文件内容 (3)测试计划界面内容 (4)线程组元件内容 (5)CSV数据文 ...
- 『动善时』JMeter基础 — 27、通过JMeter函数助手实现参数化
目录 1.测试计划中的元件 2.数据文件内容 3.函数助手配置 (1)函数助手的打开方式 (2)函数助手界面介绍 (3)编辑后的函数助手界面 4.HTTP请求组件内容 5.线程组元件内容 6.脚本运行 ...
随机推荐
- 网络编程Netty入门:责任链模式介绍
目录 责任链模式 责任链模式的简单实现 Netty中的ChannelPipeline责任链 服务端接收客户端连接 pipeline初始化 入站事件和出站事件 Pipeline中的Handler Pip ...
- JDBC_11_PreparedStatement(增删改操作)
PreparedStatement(增删改操作) * 代码: ``` import javax.swing.plaf.nimbus.State; import java.sql.*; public c ...
- 基于 Socket 的群聊聊天室(带图形界面,包含注册、登录、数据入库功能)
代码下载 https://github.com/juno3550/GroupChatRoom 实现框架 Chat 包: server.py:服务器端执行代码(TCP 服务器,根据客户端消息调用 mod ...
- Socket简介 与 UDP
1. Socket 简介 2. UDP 1. Socket 简介 网络编程,是指让在不同的电脑上的软件能够进行数据传递,即进程之间的通信. 本地的进程间通信(IPC) 例如有:队列.同步(互斥锁.条件 ...
- 善用k8s describe
使用 kubectl describe 来查看某个东西的详细例如 kubectl describe deployment my-nginx kubectl describe svc my-nginx
- hdu3622 二分+2sat
题意: 给你N组炸弹,每组2个,让你在这N组里面选取N个放置,要求(1)每组只能也必须选取一个(2)炸弹与炸弹之间的半径相等(3)不能相互炸到对方.求最大的可放置半径. 思路: 二 ...
- PAT 乙级 -- 1011 -- A+B和C
问题简述 给定区间[-231, 231]内的3个整数A.B和C,请判断A+B是否大于C. 输入格式: 输入第1行给出正整数T(<=10),是测试用例的个数.随后给出T组测试用例,每组占一行,顺序 ...
- android dalvik浅析一:解释器及其执行
dalvik是android中使用的虚拟机,基于寄存器,分析基于android4.2源代码.本篇主要分析的是dalvik中的解释器部分,源码位于/dalvik/vm,主要代码在interp和mterp ...
- 《THE LEAN STARTUP》 《精益创业》
书名:<THE LEAN STARTUP> <精益创业> 作者: [美] 埃里克·莱斯 IMVU:(3D人物场景聊天)https://secure.imvu.com 作者是这个 ...
- Mybatis的初始化和结合Spring Framework后初始化的源码探究
带着下面的问题进行学习: (1)Mybatis 框架或 Spring Framework 框架对数据层 Mapper 接口做了代理,那是做了 JDK 动态代理还是 CGLIB 代理? (2)Mappe ...