『动善时』JMeter基础 — 23、JMeter中使用“用户自定义变量”实现参数化
1、用户自定义变量介绍
我们可以看到前面一篇文章的例子中,数据文件login_data.csv
的后三个参数都是一样的,我们可以把这些变量提取出来,放在一个公共的位置,方便我们随时提取。(凡是可以输入的位置,都可以使用参数化变量)
在JMeter中,有两个地方可以设置这种公共的变量:
- 一种是在“测试计划”界面中设置“用户自定义变量”。
- 一种是在配置元件中的“用户自定义变量”组件中添加变量。
之前我们介绍过,JMeter中常用的参数化方式有四种,
- CSV数据文件设置(
CSV Data Set Config
):这种方式是通常所指的参数化。数据存储在文件中,该种参数化方式取值范围大,灵活性强,适用于大量测试数据时的使用。 - 用户参数(
User Parameter
):适用于参数取值范围很小,需要少量测试数据时使用。 - 用户自定义变量(
User Defined Variables
):更多用于设置全局变量,常用于数据库地址,测试环境、开发环境地址等常量配置。 - 函数助手:可使用函数生成随机数字和随机字符串实现参数化。
本文我们以在“测试计划”界面中设置“用户自定义变量”为例,演示批量实现用户的登陆操作。
2、使用“用户自定义变量”实现参数化
(1)测试计划内包含的元件
添加元件操作步骤:
- 创建测试计划,并且在测试计划中添加“用户自定义变量”数据。
- 创建线程组:
选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组
。 - 在测试计划(也可以是线程组)里面添加配置元件
CSV Data Set Config
组件:选中“线程组”右键 —> 添加 —> 配置元件 —> CSV 数据文件设置
。 - 在线程组里面,添加取样器“HTTP请求”组件:
选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求
。 - 在线程组里面,添加监听器“察看结果树”组件:查看结果,
选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树
。
最终测试计划中的元件如下:
点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。
(2)数据文件内容
先用Excel表格编辑所需的请求参数,内容如下:
我们需要把该文件保存为.csv
格式。
最后使用Notepad++
打开该文件,然后点击“编码” —> 转为UTF-8编码,防止中文乱码。
最终所得到的.csv
格式文件的内容如下:
(3)测试计划界面内容
在“测试计划”界面中,把公共的变量设置“用户自定义变量”中,如下图所示:
和在“HTTP请求”组件中添加数据的操作一样,这样在该测试计划中的所有组件都可以使用这些变量。
(4)线程组元件内容
如果需要使用CSV文件中所有的数据,需要设置线程组元件的线程数或循环次数。
因为在CSV数据文件设置组件中,有Recycle on EOF
和Stop thread on EOF
选项的关系,所以设置线程数和循环次数都可以实现,使用数据文件中的每一组数据进行测试。
(5)CSV数据文件设置组件内容
我一般常用操作,简单说明:
- 文件名:就直接浏览选择文件即可,也就是使用数据文件的绝对路径。
- 文件编码选择
UTF-8
。 - 变量名称:就是把数据文件的每个变量名都填写上,中间用逗号分割。
- 忽略首行:选择True,如果CSV文件中首行写的是变量名称,选择忽略首行。
- 分隔符:如果CSV文件中的数据,使用的是逗号隔开,就默是默认值。如果是制表符,就用
\t
表示。 - 是否允许带引号?:如果变量值中有引号就选择True,没有则默认False即可。
- 其他一般默认选择。如果需求看上面说明中写的很详细,按工作中实际情况选择。
(6)HTTP请求组件内容
在JMeter中使用参数化变量的格式:${变量名}
。
编辑登录接口内容,信息如下图所示:
我们可以看到${变量名}
中的变量名,是以CSV数据文件设置组件中变里名称中定义变量名为准。如果不在变里名称栏中定义任何内容,就以数据文件中的标题列名为变量名。
(7)脚本运行结果
该测试脚本运行结果如下图所示:
说明:后三个参数
submit
、back_act
和act
,是从测试计划中设置的“用户自定义变量”所获取的。
以上就完成了在JMeter中通过“用户自定义变量”实现参数化的示例。
『动善时』JMeter基础 — 23、JMeter中使用“用户自定义变量”实现参数化的更多相关文章
- 『动善时』JMeter基础 — 19、JMeter配置元件【随机变量】
目录 1.随机变量介绍 2.随机变量界面详解 3.随机变量的使用 (1)测试计划内包含的元件 (2)线程组界面内容 (3)随机变量界面内容 (4)HTTP请求界面内容 (5)查看结果 1.随机变量介绍 ...
- 『动善时』JMeter基础 — 43、JMeter对数据库的查询操作
目录 1.使用"用户自定义变量"实现参数化 2. 在SQL Query中使用占位符传递参数 (1)传递的参数值是常量 (2)传递的参数值是变量 3.Variables names参 ...
- 『动善时』JMeter基础 — 6、使用JMeter发送一个最基础的请求
目录 步骤1:创建一个测试计划 步骤2:创建线程组 步骤3:创建取样器 步骤4:创建监听器 步骤5:完善信息 步骤6:保存测试计划 步骤7:查看结果 总结:JMeter测试计划要素 当我们第一次打开J ...
- 『动善时』JMeter基础 — 40、JMeter中ForEach控制器详解
目录 1.什么是逻辑控制器 2.ForEach控制器介绍 3.ForEach控制器的使用 (1)测试计划内包含的元件 (2)获取学院列表请求内容 (3)JSON提取器内容 (4)ForEach控制器内 ...
- 『动善时』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基础 — 24、JMeter中使用“用户参数”实现参数化
目录 1.用户参数组件介绍 2.用户参数界面介绍 3.使用"用户参数"组件实现参数化 (1)测试计划内包含的元件 (2)线程组元件内容 (3)HTTP请求组件内容 (4)用户参数组 ...
随机推荐
- Python3基础之构建setup.py
技术背景 在上一篇博客中,我们介绍了如何使用pyinstaller将python项目打包成一个可执行文件,并且放在系统目录下,让系统用户可以直接识别到我们构造的项目.而python项目中常见的setu ...
- 为科学计算而生的Julia——基于Manjaro Linux的安装与入门
技术背景 Julia是一门为科学计算而生的编程语言,其着重强调了开源.生态与性能.从开源角度来说,相比于Matlab就要友好很多,用户可以免费使用,而且MIT协议应该是最宽松的开源协议之一(截图来自于 ...
- Alluxio+HDFS+MapReduce集成及测试
目录 1.在 HDFS 上配置 Alluxio 1.1.节点角色 1.2.软件版本 1.3.准备工作 1.3.1.设置 SSH 免密登录 1.3.2.安装 JDK 1.3.3.安装 Hadoop 1. ...
- RabbitMQ 入门 (Go) - 7. 数据持久化(下)【完】
数据库 我使用的是 PostgreSQL. 使用的驱动是 github.com/lib/pq 这个网址 https://pkg.go.dev/github.com/lib/pq 是官方文档. 创建数据 ...
- 深入Spring Security魔幻山谷-获取认证机制核心原理讲解(新版)
文/朱季谦 本文基于Springboot+Vue+Spring Security框架而写的原创学习笔记,demo代码参考<Spring Boot+Spring Cloud+Vue+Element ...
- Java字节流和字符流,是时候总结一下IO流了
目录 从接收输入值说起 字节流读取 字符流读取 Scanner 读取 什么是 IO 流 字节流和字符流 字节流 字节输入流 字节输出流 缓冲流的原理 字符流 字符输入流 字符输出流 为什么字符流需要 ...
- 【pytest系列】- assert断言的使用
unittest断言方式是用过框架自己实现的,即self.assertEqual()等,当我们使用pytest框架后,这种断言方式是不可用的,因为测试类不会再继承unittest.TestCase类, ...
- 还在用KPI做管理研发团队?试试黄勇的OKR实战笔记
OKR是一种融入了人性的科学管理框架,承诺的事情就要努力去做到.深层次来看,OKR便恰恰体现了这样一种"承诺"精神. OKR绝不是一款简单的目标管理工具,用好它,你便能体会到管理的 ...
- Spring Boot XSS 攻击过滤插件使用
XSS 是什么 XSS(Cross Site Scripting)攻击全称跨站脚本攻击,为了不与 CSS(Cascading Style Sheets)名词混淆,故将跨站脚本攻击简称为 XSS,XSS ...
- Docker下MySQL的安装
1 概述 本文讲述了如何利用Docker去安装MySQL,以及MySQL自定义配置文件的相关设置. 2 安装Docker 首先安装Docker并开启服务: systemctl start docker ...