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选项的关系,所以设置线程数和循环次数都可以实现,使用数据文件中的每一组数据进行测试。

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

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

(6)HTTP请求组件内容

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

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

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

(7)脚本运行结果

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

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

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

Jmeter高级性能测试实战https://edu.csdn.net/course/detail/35834

JMeter中使用“用户自定义变量”实现参数化相关推荐

  1. Jmeter中Cookie详解,参数化技术

    谈到性能测试,经常需要对用户进行参数化,jemter工具参数化经常使用的一个元件就是CSV数据文件设置 一. 操作步骤 1. 首先建议大家创建一个规范的目录保存文件 目录 作用 data 保存参数 r ...

  2. SAP云平台CloudFoundry中的用户自定义变量

    CloudFoundry应用的manifest.xml里的env区域,允许用户自定义变量,如下图5个变量所示. 使用cf push部署到CloudFoundry之后,在SAP Cloud Platfo ...

  3. jmeter学习记录(3)jmeter中如何引用变量?

    如何引用变量? 格式:${} 大括号中是引用的变量名 如果下个接口中需要用到上个接口返回的某个变量,则,需要在上个接口把该变量中提取出来,比如用正则表达式.然后就可以在下个接口中直接引用啦~ 举例说明 ...

  4. Jmeter中的变量(三)

    变量(Variables) Jmeter中的变量(参数化)目的是为了提供改变请求变化的机制.比如登录场景,一般不能使用同一个账号做并发操作. 变量的特点 1) JMeter变量对于测试线程而言是局部变 ...

  5. JMeter常用测试元件和组件参数化

    目录 一.JMeter常用测试元件 1.线程组 2.调度器 3.控制器 4.监听器 5.定时器 6.断言 7.配置元件 8.前置处理器 9.后置处理器 二.Jmeter组件参数化 1. 参数化是什么 ...

  6. jmeter中重定向多个正则表达式_2020年jmeter技术实战续集,最新技术全栈,值得收藏

    在上一篇:主要介绍线程组.HTTP请求默认值.用户定义的变量.固定定时器的应用场景及实战. 以下主要介绍正则表达式提取器.调式取样器(Debug Sampler).响应断言.HTTP信息头管理器的应用 ...

  7. jmeter中变量的作用范围_Jmeter参数化方式总结

    参数化概念 测试工作中,通常会使用不同的数据发送请求测试不同的场景来实现测试的全面性,这就需要对一些字段进行参数化,以使每次迭代都使用不同的数据来满足我们的测试需求. Jmeter做为常用的功能.性能 ...

  8. Jmeter书中不会教你的(38)——快递时效查询8用户自定义变量User Defined Variables

    通过前面28/32节讲解,可将快递时效查询的案例优化, 第一.在执行前先判断写入文件是否存在 第二.之前写入的部分字段含有逗号情况处理 这时候我们发现有一个变量重复定义String filePath1 ...

  9. JMeter中如何实现参数化(CSV)

    1.参数化的定义 参数化是自动化测试脚本的一种常用技巧,可将脚本中的某些参数使用变量来代替.例如登录操作时,利用GET/POST请求方式传递参数的场景,可在脚本运行时指定参数的取值范围和规则. 脚本在 ...

最新文章

  1. C语言(rand函数)
  2. 最大隶属度原则_首款骁龙888旗舰亮相?Realme新品,这外观很有辨识度
  3. 120xa正反转参数_RFID的软件SOPAS参数设置
  4. 读取一个文件中的字符,统计每个字符出现的次数
  5. AtCoder Beginner Contest 215 E - Chain Contestant
  6. webform 的路由
  7. java中关于length的真确理解~~~~有补充的请跟帖~~~
  8. MySQL记录变化工具_MySQL 表记录数对比工具
  9. mysql连接外部数据库名字错误_数据库连接出错! 可能出错原因:数据库位置或名称不对、数据库损坏!...
  10. 自动驾驶 5-3 前馈速度控制 Feedforward Speed Control
  11. win10服务器只显示4g内存,要注意了,4G内存在win10系统中根本不够用
  12. OpenAi ChatGPT注册及使用教程
  13. 职业规划之选择比努力更重要 职业生涯发展理论
  14. canvas用于绘制视频
  15. HAL库配置STM32F1系列PWM驱动步进电机(一)
  16. RabbitMQ集群的学习
  17. 系统的简单注解 - 12 09_font.asm
  18. 居家办公以外一些有意思的事
  19. 动易安全开发手册[zt]
  20. 房租、水单等费用补贴

热门文章

  1. 关于http协议中的服务器状态情况
  2. Java Web学习总结(27)——JavaEE中Web服务器、Web容器、Application服务器区别及联系
  3. 怎么设置服务器上的文件夹密码,文件服务器怎么设置文件夹密码
  4. [Windows编程] 如何判断操作系统是64位还是32位
  5. myeclipse左侧的目录树没了或不是竖向而是横向显示了
  6. 二十四种设计模式:责任链模式(Chain of Responsibility Pattern)
  7. 数据库的运维策略脚本篇(内附脚本,无私分享)
  8. 原生的强大DOM选择器querySelector - querySelector和querySelectorAll
  9. tornado异步客户端(Future)
  10. 1.1-nfs部署和优化-1