Jmeter之参数化

用Jmeter测试时包含两种情况的参数,一种是在url 中,一种是请求中需要发送的参数

URL 中的参数

比如:http://blog.da-fang.com/index.php/2010/06/01/jmeter参数/,其中” 2010/06/01/jmeter”为url参数。

在jmeter的请求中:blog.da-fang.com填写在“服务器名称或IP”中;

/index.php/${url_parameter}/填写在“路径”中;

请求中的参数分为:get请求和post请求

Get请求,如:http://blog.da-fang.com/?catagory=web,其中category是参数名,web是它的值

Post请求,用Jmeter录制后,可以在请求的“同请求一起发送参数”和”同请求一起发送文件”中找到。

在jmeter的请求中:blog.da-fang.com填写在“服务器名称或IP”中;

/填写在“路径”中;

参数名称category填写在“同请求一起发送参数”的“名称”中,参数值${category_name}填写在对应的“值”中。

参数化jmeter 脚本时,使用参数的地方书写格式为${参数名}

 

具体设置参数化的方法如下:

1.        用jmeter自带的函数助手,通过菜单“选项”->“函数助手对话框”,即可在“函数助手”弹出框上找到Jmeter的函数

其中较常用的有:

__Random,   ${__Random(,,)}方法的第一个参数为随机数的下限,第二个参数为随机数的上限,第三个参数为储存随机数的变量名;

__threadNum,  ${__threadNum}

__CSVRead,     ${__CSVRead(,)}方法中第一个参数是文件名,第二个参数是文件中的列(列数从0开始)

__StringFromFile, ${__StringFromFile(,,,)}方法中第一个参数是文件名,

${__StringFromFile(,,,)}方法中没有指定读取文件中的哪一列的参数,所以${__StringFromFile(,,,)}只能读取包含一列的文件

2.        用户定义的变量

2.1     添加“配置元件”——>“用户定义的变量”

2.2     “名称”中输入变量名,此处以登录为例,定义两个变量username和password。

“值”中可以直接输入值,也可以通过Jmeter的函数__CSVRead,__StringFromFile从csv或dat文件中读取,还可以通过前缀加随机数的方法设置参数。

A:当参数值是某个前缀加一个数字时,可以用前缀名加${__Random(,,)}或${__threadNum}的方法设置参数值。如进行登录测试之前,先准备了用户名为perf_0到perf_1000的用户,那么用户名就可以设为perf_{__Random(0,1000,)}。

B.当参数值没有规律的且量不太大时,可以通过${__CSVRead(,)},${__StringFromFile(,,,)}从文件中读取,如将用户名和密码保存在user.csv文件中,user.csv的内容如下:

oriana,123456

admin,admin

dandan,123456

因为user.csv文件中有两列数据,所以只能用${__CSVRead(,)}函数,username参数后的值设为${__CSVRead(user.csv,0)},password参数后的值设为${__CSVRead(user.csv,1)}。

3. 从csv文件中读取当参数的值没有规律且量不太大时,可以用这种方法。

具体做法如下:

3.1 创建一个csv文件,内容为参数的值集,每一个参数占一列,第一行就开始写参数值,不要写参数名

3.2 在测试计划或线程组中添加一个“配置元件”->“CSV Data Set Config”

3.3 Filename中填写步骤2.1中csv文件的完整路径(当csv文件在bin目录下时,只需给出文件名即可)

3.4 Virable Names中填写变量名,如果csv文件中有多个变量,则用逗号隔开;

4.从数据库中获取当参数的值没有规律且量比较大时,可以选用这种方法。

具体做法如下:

4.1 下载MySQL JDBC “http://dev.mysql.com/get/Downloa ...st.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正则表达式提取器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值