参数化是为了解决什么问题:
当提交的数据量较大时,怎么提交?每测试一次就修改一次吗?
定义:
动态的获取、设置或生成数据,是一种由程序驱动,代替人工驱动的数据设计方案,提高脚本的编写效率以及编写质量
以下四种方式实现参数化:
1、用户定义的变量
2、CSV数据文件设置
3、用户参数
4、函数
【1】用户定义的变量
使用场景:
当接口地址/api/departments/重复出现很多次时,就可以把这个地址定义在用户定义的变量中,无需每个http请求中再填写,简化代码
当不同请求的路径都是一样的时候,可以使用 用户定义的变量来统一维护
统一配置路径:
配置完使用时调用: ${变量名}
运行一下看结果:
另:也可以在测试计划里,添加用户定义的变量,与上面的区别,仅为作用域不同。
【2】CSV数据文件设置(比较常用)
使用场景:实现批量数据的操作,&&实现数据和脚本的分离
注:忽略首行,当csv文件中首行没有填写参数名,这里默认False就好;
要是csv文件中首行添加了参数名,这里就要设置为True。例如:
(4)运行一下,去数据库查看数据是否插入成功
【3】参数化-用户参数
使用场景:实现批量数据的操作,但是没有CSV方式方便,数据和脚本不能分离
与CSV参数化的区别:
不用额外的创建文件,均使用jmeter中的数据
路径:
数据设置事项:
1.1、用户参数中,添加变量和用户
1.2、线程组中,修改线程数
这里有3个用户,线程数修改为3
1.3、HTTP请求中,变量${}参数化
1.4、运行,查看结果
中文不用加双引号,例如:
【4】函数
常见函数:
操作:
1、__counter实例:
1.1、首先在http请求中设置计算器函数,见下图:
注:大小写不区分
1.1.1:设置为true:每个用户有自己独立的计时器
1.1.2、在线程组中设置用户数和循环次数,运行查看结果
1.1.3、结果:1个用户分别循环了3次
1.2.1:设置为false:所有用户都使用一个全局计时器
1.2.2运行一下:
请求中使用counter函数参数化实例:
应用场景:当需要参数化的数据只有唯一性要求,但是对具体的参数值无明确要求时,建议使用函数方式。
查看结果的时候,test001-test006会随机请求
2、__Random实例:
2.1:使用随机数函数[1,5]
2.2、在线程组中设置用户数和循环次数,运行查看结果
2.3、展示随机的结果:
3、____time实例:
3.1:设置好线程数和循环次数
3.1.1:选择time函数,直接点击“生成”,复制粘贴函数字符串到http请求名称中
3:1.2:运行下
3.2:自己设置时间格式 yyyy-MM-dd hh:mm:ss
3.2.1运行下