Jmeter的几种参数化方式

1.为什么要做参数化?

在用jmeter脚本进行压测的时候,为了更真实的模拟起到更好的效果,我们需要让参数动态变化起来,也就是参数化。通过参数化我们也可以更好、更灵活的维护我们的测试脚本。

2.参数化的方式

能够实现参数化的方式有很多种,比如定义全局变量、通过函数助手、从文件中读取等方式,这里先只描述几种我比较熟悉的参数化方式,其它的之后再进行补充完善。

2.1.定义全局变量

定义全局变量非常简单,只需要在测试计划页面"用户定义的变量"下维护变量名和对应的变量值,然后在需要调用变量的地方使用${变量名}即可调用变量实现参数化,如下图所示。

2.2.函数助手

函数助手也是我们经常用于参数化的方式之一,可以选择随机数(_Random)或者随机字符串(_RandomString)通过生成随机数据来进行参数化。

2.2.1.随机数

想用随机数可以在函数助手中选择_Random函数,然后设置最小值和最大值,点击生成按钮可以生成随机数的表达式,将其拷贝到所需要引用的地方即可,如生成1000~9999范围内的随机数,如下图所示。

2.2.2.随机字符串

想用随机字符串可以在函数助手中选择_RandomString函数,然后设置字符串长度和取值范围,点击生成按钮可以生成随机字符串的表达式,将其拷贝到所需要引用的地方即可,如生成1000~9999范围内的随机数,如下图所示。

2.3.从文件中读取

在函数助手中选择_CSVRead函数,在"用于获取值的CSV文件|*别名"处维护待参数化文件的路径,在"CSV文件列号"所在行维护取值列,然后点击生成按钮,即可生成变量表达式,如下图所示。

参数化文件中列与列之间用英文逗号分隔,在参数化取列的值时0代表第一列,1代表第二列,依此类推。

在实际执行过程中还发现,当有多个线程循环读取的时候,每个线程只读取1行值,如5个线程循环2次,共执行10次,只会读取到前5行所在值,1个线程循环10次都在读取第一行所在值。

小结:

**csv_read函数特点:**每个并发用户只读取1行,且永远使用同一行数据,无论并发用户循环多少次,执行多少个http请求。

**使用场景:**某些业务场景是流程式,需要分成多个http请求,且多个http请求需要用到一个共同的参数,如:用户id、用户名。

2.4.csv文件参数化

在线程组中添加"CSV数据文件设置"配置元件,在文件设置中"文件名"处维护参数化文件的路径,文件编码根据需求选择,我这里选择"UTF-8",在"变量名称"处维护要从文件中取值的变量名,如果要取多列值,不同变量之间用英文逗号分隔,"分隔符"所在处输入英文逗号,在需要引用变量的地方用${变量名}进行引用即可。

**需要注意的是:**遇到文件结束符再次循环和遇到文件结束符停止线程两个值是相反的。

相关推荐
美团测试工程师4 小时前
九大高效的前端测试工具与框架
软件测试·测试工具·jmeter
love静思冥想8 小时前
JMeter 使用详解
java·jmeter
互联网杂货铺1 天前
几个常见的Jmeter压测问题
自动化测试·软件测试·测试工具·jmeter·职场和发展·测试用例·压力测试
ggggyyyyy09282 天前
接口测试-Fidder及jmeter使用
测试工具·jmeter·fiddler·接口测试
明月与玄武2 天前
Jmeter 分布式压测部署--常见坑以及解决方案
分布式·jmeter
字节程序员2 天前
使用JUnit进行集成测试
jmeter·junit·单元测试·集成测试·压力测试
hakesashou2 天前
jmeter怎么调用python
开发语言·python·jmeter
我非夏日2 天前
JMeter配置原件-计数器
jmeter
爱学测试的李木子2 天前
性能】JDK和Jmeter的安装与配置
java·开发语言·软件测试·测试工具·jmeter
rkmhr_sef2 天前
二、Jmeter Web压测
前端·jmeter