在python接口测试之token&session处理(十二)中我们介绍了cookie,以及session和使用postman怎么获取token这些,本小节我们来看怎么使用jmeter测试工具来进行接口的自动化测试。
下面我们使用jmeter来进行接口自动化的测试,来进行获取token和参数的传递以及调用,关于jmeter如何自动发送邮件,以及怎么和jenkins整合到一起,可以参考Jmeter&Ant构建自动化测试平台的文章,这里就不详细的再描述。启动jmeter后,我们在测试计划中创建线程组,以及在线程组中创建要添加的cookie,headers的数据,和断言,见截图:
我们来看HTTP消息头管理器,这里面就是headers部分,见截图:
见对每个接口测试用例Response Headers的检查点,见截图:
在接口测试中,某些变量是全局的,我们可以放在用户定义的变量,比如这里接口请求的url,登录的用户名和密码我们可以放在用户定义的变量,其它接口用例直接调用,见截图:
在接口用例中,每个接口用例我们都得加请求的url,实际上我们有更简单的方式,就是使用HTTP请求默认值,见截图:
查看结果树很好理解,因为我们的接口用例执行成功后,我们需要看下执行的结果是通过还是失败,这里我们添加了登录的接口用例,见login接口用例截图:
我们点击
在结果树查看接口执行的结果,见截图:
依据结果我们看到,执行成功,在这里接口用例存在一个问题,就是缺少断言,缺少断言的自动化测试用例都是无效的,所以这点切记。OK,我们进行添加断言,这里我们已ID和status为断言,见添加的断言截图:
这样接口用例就是有效的,下面我们来看在jmeter中如何获取token,我们执行用例成功后,看到返回了信息中包含了token,见登录成功后返回的详情信息:
{ "status":0, "msg":"", "data":
{
"id":600192,
"name":"\u81ea\u52a8\u5316\u6d4b\u8bd5",
"token":"ma750WfVczJOyjeo7PO1513521787088"
}
}
获取token有二种方式,分别是:
1、使用后置处理器,结合正则表达式来获取token
2、使用后置处理器的jp@gc - JSON Path Extractor来获取token,并把获取到的token放在一个变量中
这里我们使用第二种的方式,在login的接口用例中增加后置处理器,并且获取token,见截图:
获取token成功后,下来的接口用例操作就很简单了,我们来继续添加infoGet的接口用例,见截图:
我们对infoGet的接口添加断言,断言username和status,见断言的截图:
坦白的说,使用jmeter来进行接口自动化测试是一个不错的选择,关于为什么一定要先获取token,在文章的开头我们已经解释了,在使用jmeter进行做接口的自动化测试中,数据直接都是互相定义并且调用,这样的好处是我们不需要为了接口用例而额外的创造数据。