jmeter参数化
一:用户自定义变量
1. 添加->配置元件->用户定义的变量->添加
如定义:名称为 userID;值为1234
2. 在使用userId的地方改为使用&{userID}
parameters中的名称:userId;值:1234 => 就可以改为名称:userId ;值:&{userID}
bodyDta中的{"username":"张丽丽","userId":"1234"} =>就可以改为 {"username":"张丽丽","userId":"&{userID}"}
二:导入文件----使用菜单选项->函数助手对话框
1. http://blog.csdn.net/sunwangdian/article/details/50732389 --》这个是讲把参数放在.dat或.csv文件中(或从数据库中导出的),通过__CSVRead生成变量
__CSVRead()的第一个值为参数文件的路径,第二个值是取参数文件中的第几列,填好这两个值后,点击生成,就可以生成一个变量,拷贝这个变量用在需要参数化的地方
注意:.dat文件第一列从0开始取得
如:aa.dat文件中有两列 ,一列的值是userName的值,一列的值是userId的值,并保存在E盘
选项->函数助手对话框->__CSVRead->第一个值填写E:\aa.dat->第二个值填写0->点击生成->拷贝生成的变量
parameters中的名称:userName;值:张丽丽 => 就可以改为名称:userName;值:${__CSVRead(E:\aa.dat,0)}
名称:userId;值:1234 => 就可以改为名称:userId;值:${__CSVRead(E:\aa.dat,1)}
2. 其中${__Random(,,)}方法的第一个参数为随机数的下限,第二个参数为随机数的上限,第三个参数为储存随机数的变量名;${__CSVRead(,)}方法中第一个参数是文件名,第二个参数是文件中的列(列数从0开始);
三:测试计划或线程组中添加一个“配置元件”->“CSV Data Set Config”
当参数的值没有规律且量不太大时,可以用这种方法。
具体做法如下:
1. 创建一个csv或dat文件,内容为参数的值集,每一个参数占一列,第一行就开始写参数值,不要写参数名
2. 在测试计划或线程组中添加一个“配置元件”->“CSV Data Set Config”
3. Filename中填写csv文件的完整路径(当csv文件在bin目录下时,只需给出文件名即可)
4. Virable Names中填写变量名,如果csv文件中有多个变量,则用逗号隔开(如:username,userid)
5.这是就可以在参数化的地方使用${username}或${userid}
四:从数据库中获取
当参数的值没有规律且量比较大时,可以选用这种方法。
具体做法如下:
4.1 下载MySQL JDBC “http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.12.zip/from/http://ftp.jaist.ac.jp/pub/mysql/”
4.2 解压下载的zip包后,将其中的mysql-connector-java-5.1.12-bin.jar放到Jmeter的lib目录下
4.3 添加“配置元件”->“JDBC Connection Configuration”,设置下列参数:
Database URL:jdbc:mysql://host:port/db(如jdbc:mysql://localhost:3306/testlink
JDBC Driver class:com.mysql.jdbc.Driver
username:连接数据库的用户名(如root)
password:连接数据库的密码
4.4 添加“Sampler”->“JDBC Request”,在SQL Query中输入查询语句,如下:
SELECT CONCAT (“[",
GROUP_CONCAT(
CONCAT("{username:'",login,"'"),
CONCAT("{password:'",password),"'}"),"]“) AS json FROM users
4.5 在4.4中的JDBC请求中添加“后置处理器”->“正则表达式提取器”,以提取3.4中的用户名和密码为例设置正则表达式提取器的参数:
引用名称:user
正则表达式:username:’(.+?)’\{password:’(.+?)’
模板:$1$$2$
使用时,user_g1即为用户名,user_g2即为对应用户名的密码;更多正则表达式提取方法参见Jmeter正则表达式提取器
浙公网安备 33010602011771号