文/amy
前面 【JMeter】参数化方法(一)已简单介绍关于参数化的几种常用方法,
关于如下配置以上几种参数方法,具体方法如下:
1. 测试计划面板中定义的变量, 例如:数据库配置信息、IP 地址 可使用全局变量
2. 【配置元件/ 用户自定义的变量】
3.【配置元件/ CSV Data Set Config】
(1) 确定所需要准备变量值的参数,例: houseId, userId, premisesPermitAddr, agentId
(2) 准备数据- csv 文件
每一列变量对应的参数分别为: houseId, userId, premisesPermitAddr, agentId
此处有3行数据,每一列表示一种参数,每一行表示一组参数。
若有进程是循序3次,则第1次执行脚本是参数值是调用第一行数据,第2次执行脚本参数值是调用第二行数据
(3) jmeter 中添加 配置文件,可在线程组或sampler下添加,作用域取决于配合文件添加的位置
(3) 配置文件
Filename: csv 文件路径,可用绝对路径或相对路径,为方便管理可用相对路径
File encoding:文件编码,gb2312
Variable Names:CSV文件中对应的变量值名称,每一列用","(英文逗号)隔开
注:以上3个信息需手动配置,下面的信息可不用重新配置
Delimiter(use'\t' for tab): 每一列使用 ,(英文逗号)相隔
Allow quoted data?: 是否允许引用数据?
Recycle on EOF?: 是否循环?
Stop thread on EOF: 文件结束后是否结束进程?
Sharing mode:共享模式,即作用或为: 所有进程、当前进程组、当前进程、自定义
调用时可直接使用"${houseId}, ${userId}, ${premisesPermitAddr}, ${agentId}" 在对用的参数上
4.【前置处理器/ 用户参数】
如图,username和password 分别有2组不同的取值,通过界面右下方的四个按钮,可以向列表中增加参数,增加参数值,删除参数和删除参数值。
"每次迭代更新一次"选项控制参数值取值的变化规则,如果选中该选项,则参数的值在每个迭代中保持不变,在新的迭代开始时取下一个值。如果取消该选项,则参数值在每个在其作用域内的sampler发出请求时去下一个可用值。
如果参数的取值范围很小,可使用用户参数比较合适;如果参数的取值范围很大,建议使用 csv data set config 方法
5.【后置处理器/ 正则表达式提取器】
栗子:将响应数据里的"code":"1" 中的 1 用正则表达式提取出来
调用时直接使用"${codestate}"
6. JDBC 请求中将结果保存为变量输出
若将此SQL运行结果中的 id 值保存为变量值,以便作为后面请求的参数值,具体步骤如下:
(1) JDBC 请求中- Variable names 填写需要保存为变量的 字段名称,此处需要提取出 id
(2) 添加一个Debug PostProcessor 调试器可查看结果
id_#=1 表示 id 值有1个,id_1= 58856 表示这个值为 58856, 后面调用时 可使用"${id_1}"
7.【选项/ 函数助手对话框】
栗子:_CVSRead 函数是从外部读取参数,可以从一个文件中读取多个参数
步骤:
1. 新建一个data.txt 文件,username 和 password 参数值 如下:
test1,1111
test2,2222
test3,3333
其中,CSV file to get values from | * alias: 表示要读取的文件路径,为绝对路径
CSV 文件列号| next|*alias:从第几行开始读取,注意 第一行是 0,
调用时直接填写生成的字符串,则
username 为 ${__CSVRead(d:\data.txt ,0)},
password 为${__CSVRead(d:\data.txt ,1)}
以后 若有不足,欢迎大家指出 ~~~
谢谢~~