JMeter之参数化

来源:互联网 发布:大数据需要学哪些技术 编辑:程序博客网 时间:2024/06/15 03:15

七、JMeter怎样参数化:

        JMeter参数化是JMeter的核心功能,我们一定要掌握;

        下面我们以登录软件测试论坛这个接口为例:





通过抓包,我们知道了登录接口的信息:

域名:bbs.51testing.com

路径:/member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1

类型:POST

参数:fastloginfield,username,password,quickforward,handlekey

以及请求头,这里就不详细罗列了。

那么我们可以添加HTTP请求了:




首先我们要参数化的是用户名和密码,username和password这两个参数:

把abcdef改为${name},把123456改为${password}:




然后在线程组里面添加CSV数据集配置:




配置文件名是login.txt,一定要与.jmx脚本文件在同一个目录下;

参数(变量)名是这几个:number,name,password,case,response,5个,分别对应配置文件的5列数据,用英文,隔开;

下面我们来写配置文件,也就是.txt文件:




就像做功能测试那样设计登录的测试用例;

1,abcdef,123456,登录成功的测试用例,欢迎您回来,中级站友 abcdef,现在将转入登录前页面
2,AAAAAA,123456,用户名错误的测试用例,登录失败,您还可以尝试
2,abcdef,111111,密码错误的测试用例,登录失败,您还可以尝试
3,,123456,用户名为空的测试用例,登录失败,您还可以尝试
3,abcdef,,密码为空的测试用例,抱歉,密码空或包含非法字符
3,,,用户名和密码都为空的测试用例,抱歉,密码空或包含非法字符


在这里,为了方便理解,我调整了一下样式,但还是要以上面那个文件的格式为准,不要保存下面这个:

从上往下看,分为5列,参数名和对应的值,分隔符是英文,




好了,组名(name)这个参数对应的就是if控制器,接下来我们在线程组里添加如果(if)控制器:




因为我们有三组测试用例,所以我们要添加3个if控制器:




让我们再分别展开每个if控制器:




然后把线程组的循环次数1改为1000,因为我们这里有6个测试用例,所以会循环6次:




然后再把服务器的域名和路径也改为参数化,这两个是全局变量:




对应的,3个HTTP请求也要修改:








对应的,响应断言也要改,这里要注意了,这几个响应断言都是一样的写法:




JMeter的元器件都是可以复制、粘贴和随便拖动的,完整展开是这样的:




好了,全部的准备工作都做好了,让我们来跑一把:

全部都是绿色的,说明这6个测试用例都成功了:




下面我们来看一下第6个:




好了,这就是JMeter的参数化,要注意的地方我已经指出来了;我这里举的是登录的例子,在实际的工作中,你也可以灵活的运用。