1.参数化定义
参数化是将客户端发送给服务器处理的数据预先保存到一个参数中的过程.
Jmeter提供了多种参数化的方式与手段,常见的有:
1)用户参数
2)用户自定义变量
3)参数化函数
4)CSV Data Set Config
5)数据库
2.Jmeter参数化类型
2.1用户参数
位置:前置处理器->用户参数
2.2用户自定义变量
位置:配置元件->用户自定义的变量
2.3参数化函数
Jmeter提供了很多参数化相关的函数:
__Random
__RandomDate
__RandomString
__CSVRead
__StringFromFile
__RandomFromMultipleVars
等等, 大家可以根据实际情况选择,最常用的莫过于__CSVRead(),下面重点介绍其用法.
步骤:
1) 创建CSV文件(.txt文件亦可),并配置参数值
这里参数化登录的用户名与命名.
2) 利用函数助手生成函数调用语句
这里要注意函数参数的用法,这里做一个说明:
3) 在取样器配置面板中用函数调用语句替换请求参数值
注意passwd参数的值是:
${__CSVRead(C:\Users\Foreknew\Desktop\testdata.csv,1)}${__CSVRead(C:\Users\Foreknew\Desktop\testdata.csv,next)}
若取完密码后不换行,导致会取相同的行的列值.
2.4CSV Data Set Config
位置:配置元件->CSV Data Set Config
步骤:
1) 创建CSV文件(.txt文件亦可),并配置参数值
这里参数化登录的用户名与命名.
2) 添加并配置CSV Data Set Config
3) 在取样器配置面板中用参数替换取代写死的数据
注意:
username的值不能直接写成配置元件中配置的变量名usr,要写成${usr},这叫参数替换,这里不是直接使用参数,而是使用参数的值,因此需要用参数替换求出参数值.
2.5 数据库
有时候从数据库里直接获取数据进行参数化对于构造数据来说是比较方便的,但实际使用此方法有一定的难度.
先讲步骤:
1.使用JDBC Connection Configuration配置数据库连接
2.发送JDBC Request获取数据库中数据
3.循环获取数据库返回的数据进行参数化
3.1 ForEach控制器迭代(单个变量)
3.2 循环控制器 + 计数器(多个变量)
看一些细节:
1) JDBC Connection Configuration配置
2) JDBC Request配置
3) 循环取值参数化
(3.1) ForEach控制器迭代(单个变量)
a.添加ForEach控制器并配置:
b.在请求中使用输出变量:
说明:
此处只参数化了用户名,密码没有.因为ForEach迭代器每次只能迭代一个变量,这是其限制,可以使用下面的方法实现.
(3.2) 循环控制器 + 计数器(多个变量)
a.添加循环控制器,并配置循环次数
b.添加用户名,密码的计数器并配置
用户名计数器配置:
密码计数器配置与此相同不在说明:
c.在请求中使用计数器