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