当前位置: 首页 > news >正文

Jmeter之实现参数化的不同方式详解

参数化简介

定义:动态的获取、设置或生成数据,是一种由程序驱动代替人工驱动的数据设计方案,提高脚本的编写效率以及编写质量
适用场景:当提交的数据量较大时,每次修改太麻烦,可以使用参数化
本文介绍实现参数化的4种方式
1、用户定义的变量
2、CSV数据文件设置
3、用户参数
4、函数

一、用户定义变量

注意:此形式应用在一段地址重复出现时,可以定义成【用户定义变量】,方便后续随时调用。
实现参数化方式:
1、通过右键【测试计划-添加-配置元件-用户定义变量】新建用户定义变量
2、添加【变量名】和【变量值】
变量名:自定义的; 变量值:调用接口中需要被参数化的部分
在这里插入图片描述
3、在接口的http请求的路径中修改对应的变量名,调用方式,如下:

${变量名}

在这里插入图片描述

二、CSV数据文件设置

注意:实现数据脚本分离,此形式在日常使用场景中应用比较广泛
实现参数化方式:
1、创建CSV文件存储测试数据;CSV:逗号分隔符,是一种简洁且常见的数据存储格式,保存时编码格式:【utf-8】。
2、通过右键【测试计划-添加-配置元件-csv数据文件设置】
3、【CSV数据文件设置】注意事项,如下图
在这里插入图片描述
4、要执行CSV数据文件的线程组,【循环次数】要改成:永远,以便于系统可以动态的执行完所有的测试数据。
在这里插入图片描述
5、将线程中对应接口的参数设置成动态参数的形式,如下

${参数名}

三、用户参数

注意:此形式脚本和数据依赖性比较强,在日常使用场景中应用不太广泛
实现参数化方式:
1、新建用户参数:通过右键【线程/接口请求-添加-前置处理器-用户参数】
在这里插入图片描述
2、【用户参数】设置,如下图
在这里插入图片描述
3、将对应的【线程组】中的【线程数】=【用户参数】中的用户数
在这里插入图片描述
4、将线程中对应接口的参数设置成动态参数的形式,如下

${参数名}   (参数名和【用户参数】中设置的变量保持一致即可)

四、函数

线程组设置,如下图:
在这里插入图片描述

1、计数器函数:_counter

1.1.TURE:每个用户都有自己的计数器

${__counter(TURE,)}

点击菜单栏的【函数助手】选择counter,变量值=true,点击生成函数,复制生成的字符串,放在请求名称后边,执行结果会在请求名称后边动态生成数字值(每个用户有自己的计数器)
在这里插入图片描述
在这里插入图片描述
执行结果,如下图:
在这里插入图片描述

1.2.FALSE:所有用户公用一个计数器

${__counter(FALSE,)}

其他设置同TRUE,执行结果如下:
在这里插入图片描述

2、随机函数: _Random

2.1.参数1:取值范围最小值(包含)

2.2.参数2:取值范围最大值(包含)

在这里插入图片描述

${__Random(1,3,)}

执行结果,如下图:2个用户各循环3次,每次随机赋值1、2、3,
在这里插入图片描述

3、获取当前时间函数: _time

3.1.无参:获取的是距离 1970/01/01 00:00:00 的毫秒值

在这里插入图片描述

${__time(,)}

执行结果,如下图:后面生成时间戳
在这里插入图片描述

3.2.参数1:【yyy_MM_dd HH:mm:ss】 格式化成 【年_月_日 时:分:秒】 格式

在这里插入图片描述

${__time(yyy_MM_dd HH:mm:ss,)

执行结果,如下图显示:

http://www.lryc.cn/news/991.html

相关文章:

  • Matlab论文插图绘制模板第76期—半对数刻度折线图(Semilogx和Semilogy)
  • 【找工作】永善县政务服务管理局公开招聘5名公益性岗位人员
  • 【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用算法(拷贝和替换算法)
  • C语言程序环境剖析——探究从.c到.exe之路
  • 【软件测试】8年资深测试总结出的测试学习经验,从入门到测试开发......
  • 【博学谷学习记录】超强总结,用心分享|Spark的RDD算子分类
  • 云原生系列之使用 prometheus监控远程主机实战
  • 2023年地方两会政府工作报告汇总(各省市23年重点工作)
  • 第一章 企业管理概论
  • 独立图片服务器有什么突出之处
  • Linux驱动开发基础__mmap
  • 若依框架---为什么把添加和更新分成两个接口
  • 图论算法:Floyd算法
  • 回顾 | .NET MAUI 跨平台应用开发 - 用 .NET MAUI 开发一个无人机应用(下)
  • 部署有多个仓库的svn服务
  • Mapper文件注入问题
  • 基于微信小程序的国产动漫论坛小程序
  • 常用限流算法
  • 前端面经详解
  • 网页CAD开发快速入门
  • C#开发的OpenRA的mod.yaml文件
  • 【ESP32+freeRTOS学习笔记-(七)中断管理】
  • 【总结】1591- 从入门到精通:使用 TypeScript 开发超强的 CLI 工具
  • 【Java】int和Integer的区别?为什么有包装类?
  • 【LeetCode】石子游戏 IV [H](动态规划)
  • 修改Vue项目运行的IP和端口
  • 【C++提高编程】map/ multimap 容器详解(附测试用例与结果图)
  • laravel操作redis和缓存操作
  • 目标检测论文阅读:GaFPN算法笔记
  • 【转】Generative Pretrained Transformer