1、用户自定义变量介绍

我们可以看到前面一篇文章的例子中,数据文件login_data.csv的后三个参数都是一样的,我们可以把这些变量提取出来,放在一个公共的位置,方便我们随时提取。(凡是可以输入的位置,都可以使用参数化变量)

在JMeter中,有两个地方可以设置这种公共的变量:

  • 一种是在“测试计划”界面中设置“用户自定义变量”。
  • 一种是在配置元件中的“用户自定义变量”组件中添加变量。

之前我们介绍过,JMeter中常用的参数化方式有四种,

  1. CSV数据文件设置(CSV Data Set Config):这种方式是通常所指的参数化。数据存储在文件中,该种参数化方式取值范围大,灵活性强,适用于大量测试数据时的使用。
  2. 用户参数(User Parameter):适用于参数取值范围很小,需要少量测试数据时使用。
  3. 用户自定义变量(User Defined Variables):更多用于设置全局变量,常用于数据库地址,测试环境、开发环境地址等常量配置。
  4. 函数助手:可使用函数生成随机数字和随机字符串实现参数化。

本文我们以在“测试计划”界面中设置“用户自定义变量”为例,演示批量实现用户的登陆操作。

2、使用“用户自定义变量”实现参数化

(1)测试计划内包含的元件

添加元件操作步骤

  1. 创建测试计划,并且在测试计划中添加“用户自定义变量”数据。
  2. 创建线程组:选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组
  3. 在测试计划(也可以是线程组)里面添加配置元件CSV Data Set Config组件:选中“线程组”右键 —> 添加 —> 配置元件 —> CSV 数据文件设置
  4. 在线程组里面,添加取样器“HTTP请求”组件:选中“线程组”右键 —> 添加 —> 取样器 —> HTTP请求
  5. 在线程组里面,添加监听器“察看结果树”组件:查看结果,选中“线程组”右键 —> 添加 —> 监听器 —> 察看结果树

最终测试计划中的元件如下:

点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。

(2)数据文件内容

先用Excel表格编辑所需的请求参数,内容如下:

我们需要把该文件保存为.csv格式。

最后使用Notepad++打开该文件,然后点击“编码” —> 转为UTF-8编码,防止中文乱码。

最终所得到的.csv格式文件的内容如下:

(3)测试计划界面内容

在“测试计划”界面中,把公共的变量设置“用户自定义变量”中,如下图所示:

和在“HTTP请求”组件中添加数据的操作一样,这样在该测试计划中的所有组件都可以使用这些变量。

(4)线程组元件内容

如果需要使用CSV文件中所有的数据,需要设置线程组元件的线程数或循环次数。

因为在CSV数据文件设置组件中,有Recycle on EOFStop thread on EOF选项的关系,所以设置线程数和循环次数都可以实现,使用数据文件中的每一组数据进行测试。

(5)CSV数据文件设置组件内容

我一般常用操作,简单说明:

  • 文件名:就直接浏览选择文件即可,也就是使用数据文件的绝对路径。
  • 文件编码选择UTF-8
  • 变量名称:就是把数据文件的每个变量名都填写上,中间用逗号分割。
  • 忽略首行:选择True,如果CSV文件中首行写的是变量名称,选择忽略首行。
  • 分隔符:如果CSV文件中的数据,使用的是逗号隔开,就默是默认值。如果是制表符,就用\t表示。
  • 是否允许带引号?:如果变量值中有引号就选择True,没有则默认False即可。
  • 其他一般默认选择。如果需求看上面说明中写的很详细,按工作中实际情况选择。

(6)HTTP请求组件内容

在JMeter中使用参数化变量的格式:${变量名}

编辑登录接口内容,信息如下图所示:

我们可以看到${变量名}中的变量名,是以CSV数据文件设置组件中变里名称中定义变量名为准。如果不在变里名称栏中定义任何内容,就以数据文件中的标题列名为变量名。

(7)脚本运行结果

该测试脚本运行结果如下图所示:

说明:后三个参数submitback_actact,是从测试计划中设置的“用户自定义变量”所获取的。

以上就完成了在JMeter中通过“用户自定义变量”实现参数化的示例。

『动善时』JMeter基础 — 23、JMeter中使用“用户自定义变量”实现参数化的更多相关文章

  1. 『动善时』JMeter基础 — 19、JMeter配置元件【随机变量】

    目录 1.随机变量介绍 2.随机变量界面详解 3.随机变量的使用 (1)测试计划内包含的元件 (2)线程组界面内容 (3)随机变量界面内容 (4)HTTP请求界面内容 (5)查看结果 1.随机变量介绍 ...

  2. 『动善时』JMeter基础 — 43、JMeter对数据库的查询操作

    目录 1.使用"用户自定义变量"实现参数化 2. 在SQL Query中使用占位符传递参数 (1)传递的参数值是常量 (2)传递的参数值是变量 3.Variables names参 ...

  3. 『动善时』JMeter基础 — 6、使用JMeter发送一个最基础的请求

    目录 步骤1:创建一个测试计划 步骤2:创建线程组 步骤3:创建取样器 步骤4:创建监听器 步骤5:完善信息 步骤6:保存测试计划 步骤7:查看结果 总结:JMeter测试计划要素 当我们第一次打开J ...

  4. 『动善时』JMeter基础 — 40、JMeter中ForEach控制器详解

    目录 1.什么是逻辑控制器 2.ForEach控制器介绍 3.ForEach控制器的使用 (1)测试计划内包含的元件 (2)获取学院列表请求内容 (3)JSON提取器内容 (4)ForEach控制器内 ...

  5. 『动善时』JMeter基础 — 7、jmeter.properties文件常用配置

    目录 1.默认语言设置 2.配置默认编码格式 3.GUI图标放大比例设置 4.功能区工具栏图标大小设置 5.视图区目录树图标大小设置 6.内容区编辑字体设置 7.添加JMeter元素快捷键设置 8.捕 ...

  6. 『动善时』JMeter基础 — 12、JMeter取样器详解:sampler

    目录 1.取样器介绍 2.JMeter自带的取样器 3."HTTP请求"为例介绍一下取样器 (1)HTTP Request: (2)Web服务器: (3)HTTP请求: (4)同请 ...

  7. 『动善时』JMeter基础 — 17、JMeter配置元件【HTTP请求默认值】

    目录 1.HTTP请求默认值介绍 2.HTTP请求默认值界面 3.HTTP请求默认值的使用 (1)用于演示的项目说明 (2)测试计划内包含的元件 (3)说明HTTP请求默认值用法 4.总结 5.拓展知 ...

  8. 『动善时』JMeter基础 — 22、JMeter中实现参数化(CSV)

    目录 1.参数化的定义 2.什么情况下需要用到参数化 3.JMeter实现参数化的方式 4.CSV数据文件设置界面详细说明 (1)CSV数据文件设置组件界面说明 (2)补充说明:Recycle on ...

  9. 『动善时』JMeter基础 — 24、JMeter中使用“用户参数”实现参数化

    目录 1.用户参数组件介绍 2.用户参数界面介绍 3.使用"用户参数"组件实现参数化 (1)测试计划内包含的元件 (2)线程组元件内容 (3)HTTP请求组件内容 (4)用户参数组 ...

随机推荐

  1. vue项目中,更改数组元素的值,视图没有实时更新?

    问题背景: export default { data(){ showItems: [false, false, false, false] }, methods: { showItem(index) ...

  2. Kafka 常见问题汇总

    Kafka 常见问题汇总 1. Kafka 如何做到高吞吐.低延迟的呢? 这里提下 Kafka 写数据的大致方式:先写操作系统的页缓存(Page Cache),然后由操作系统自行决定何时刷到磁盘. 因 ...

  3. 别人 echo 、你也 echo ,是问 echo 知多少?-- Shell十三问<第三问>

    别人 echo .你也 echo ,是问 echo 知多少?-- Shell十三问<第三问> 承接上一章所介绍的 command line ,这里我们用 echo 这个命令加以进一步说明. ...

  4. Leedcode算法专题训练(搜索)

    BFS 广度优先搜索一层一层地进行遍历,每层遍历都是以上一层遍历的结果作为起点,遍历一个距离能访问到的所有节点.需要注意的是,遍历过的节点不能再次被遍历. 第一层: 0 -> {6,2,1,5} ...

  5. 06_pytorch的autograd操作

    06_pytorch的autograd操作 目录 一.引言 二.Variable 2.1 Variable 的数据结构 2.2 反向传播 2.3 autograd 求导数和手动求导数 三.计算图 3. ...

  6. Nest 中处理 XML 类型的请求与响应

    公众号及小程序的微信接口是通过 xml 格式进行数据交换的. 比如接收普通消息的接口: 当普通微信用户向公众账号发消息时,微信服务器将 POST 消息的 XML 数据包到开发者填写的 URL 上. - ...

  7. 【全网首发】鸿蒙开源三方组件--跨平台自适应布局yoga组件

    目录: 1.介绍 2.如何使用 3.集成方式 4.附录1:FlexBox科普 5.附录2:相关资料 介绍 yoga是facebook打造的一个跨IOS.Android.Window平台在内的布局引擎, ...

  8. 计算机网络——RIP协议:距离向量算法

    路由信息协议(RIP)是内部网关协议(IGP)中使用最广泛的一种协议,它是一种分布式.基于距离向量的路由选择协议,其特点是协议简单.它要求路由器周期性地向外发送路由刷新报文.路由刷新报文主要内容是由若 ...

  9. 963. Minimum Area Rectangle II

    Given a set of points in the xy-plane, determine the minimum area of any rectangle formed from these ...

  10. MyBatisPlus入门学习

    目录 MyBatisPlus 概述 快速入门 配置日志输出 CRUD拓展 插入 主键生成策略 更新操作 自动填充 乐观锁 查询操作 分页查询 删除操作 逻辑删除 性能分析插件 条件构造器 代码自动生成 ...