参数化: 就是动态的获取、设置或生成数据,是一种由程序驱动代替人工驱动的数据设计方案
参数化得优点,其实就是程序实现较之于人工实现的优点,通过参数化,可以提高脚本的编写效率以及编写质量
JMeter 中为不同的场景, 提供了不同的参数化方案, 常见实现有如下四种:
以以下场景为例:
请求:https://www.baidu.com
要求:第一次请求附带参数name="账单"&age=18;第二次请求附带参数:name="李四"&age=28
添加线程组
添加用户参数
添加变量(数据字段的变量名)
添加数据,第二列及以后每列代表一条数据
添加http请求,并配置参数,变量值形式为${XXX},大括号里面一定要和"用户参数"那里配置的变量名称一致
查看结果
【用户定义的变量】一般做全局变量使用,不适合参数需求量大时的选择
添加线程组
添加用户定义的变量
方式1
方式2测试计划中直接添加
添加变量
添加http请求,并配置参数
查看结果
拓展:
CSV 文件:逗号分隔值, 是一种简洁且常见的数据存储格式, 存储语法如下图所示
在CSV文件中,一行对应一条信息,一条信息中的不同字段用英文逗号分隔
以以下场景为例
场景1
请求https://www.baidu.com
要求:循环3次,每次请求时附带参数id,code,session的值不同
添加线程组
添加CSV Data Set Config
配置文件
设置CSV Data Set Config的参数
添加http请求并配置参数
线程组循环次数设置为3
添加查看结果树,运行并查看结果
场景2:
思考一下,文件中如果数据经常变化,每次都设置循环次数,就非常不灵活,如何实现有多少行读取多少行,动态获取数据条数
经过以上设置,就不用每次手动修改循环次数,这样更加灵活
CSV Data Set Config的参数详解:
Filename:参数项文件(参数路径)
File encoding:文件编译字符编码,一般设置UTF-8
Variable names:读取参数后保存的变量名称
Delimilter:如文件中使用的是逗号,填写逗号,如果文件中使用的TAB,则填写\t
忽略首行:True表示从第二行开始读,默认为false
Allow Quoated data:CSV文件是否容许值被引用,一般默认即可
Recycle on EOF:True当读取文件到结尾时再重头读取文件,False当读取文件到结尾时,停止读取文件,一般默认即可
Stop thread on EOF:当"Recycle on EOF"一项为False时起效;True当读取到文件结尾时,停止进程,一般默认即可
Share Mode:共享模式一般默认即可
作用:这个函数是一个计数器,用于统计函数的使用次数
新建线程组
添加http请求、查看结果树
调用函数
三种方式
TRUE,每个用户有自己的计数器可以用于统计每个线程各执行了多少次;
FALSE,使用全局计数器,可以统计出这次测试共运行了多少次用
http请求添加变量,${__counter(False,)}
线程组设置循环次数
查看结果是否为num1-10