前言
无论是 web 互联网还是移动互联网公司,后台都有大量的接口提供的服务,有很多的业务上的逻辑是放在后台来实现,前端针对后台接口返回的数据,选择性的进行正确的展示.同样越来越多的公司也越来越关注接口测试,有的自己搭建了接口测试平台(Django,flask 等等好多)或者针对很多开源库,自己整了一套适合自己的接口测试框架(httpclient,requests 等),但在有些测试团队,通常自动化方面开展会遇到各种各样的问题:
版本迭代过快.由于互联网版本节奏非常快,有的公司甚至一个月迭代一个大版本(比如我司,应用一个月更新一次,其中还有各种小版本,小补丁上线).团队成员精力有限,公司出于成本的考虑,可能不会留给测试人员太多搭建接口测试平台或者接口测试用例框架的时间
自身能力有限吧,对于大型的项目,后台逻辑的理解可能会发挥很长时间,对于构建自动化用例来说有一定的技术门槛,不是所有的测试人员都能达到这个水准
成本问题,之前我司招了一个专门搞自动化的,半年后还是友好分手了,投入和产出不成正比.需要有专门的人员长时间花精力和时间去维护,可能也会超出公司的预期
Jemter 用于接口的优点
最初了解 Jemter,它是一款用于性能测试的一款工具,目前也是主要功能之一,后来才逐渐丰富完善,逐渐不少公司用于接口测试.
主要有如下几个优点:
1. 支持多种类型的协议
Jmeter 自带支持的接口协议有多种,可以省去接口协议的数据收发方面的开发
类型. png
2. 对 HTTP 协议支持的比较全面
HTTP 目前还是互联网公司常用的协议,Jmeter 对 HTTP 的支持比较全面,对于协议方法,请求参数和值,代理等方面都提供了支持.
http 请求. png
同时还提供了 cookie 管理器,cache 管理器,请求默认值等辅助功能
其余. png
3. 断言方式较全面
如果仅是简单的请求,相应,不对相应内容进行断言,测试结果检查起来是很困难的.
断言. png
Jmeter 提供了相应断言,可以看出还是较全面的,支持相应代码,响应头,响应内容等,同时支持包括,等于,否等多种判断规则
4. 可以连接数据库检查数据
在实际接口测试中,有时候需要连接数据库查询数据进行校验,Jmeter 中可以通过 JDBC Request 这个 sampler 实现,如下:
JDBC.png
5. 工具非常稳定
作为一款开源工具,Jmeter 的用户可以达到千万级,其稳定性已经得到了比较充分的验证.而自动化是一个比较频繁执行的行为,所以 Jmeter 的稳定正好满足这一点
Jmeter 用于接口测试实践
仅仅是简单使用吧,介绍的比较浅,用例分层,报告输出,邮件发送,持续集成等暂都不做介绍.
整体框架如下:
Jmeter.png
HTTP 请求默认值,主要方便下面,不用每次请求都输入相同的 url
HTTPcookie 管理器,主要用于管理 cookie
下面是一个 HTTP 接口请求,每个接口有一个断言
查看结果树,显示最终的结果
以上只是一个简单的框架,如果用到实战中,需要进一步的进行优化,仅仅做入门学习参考
备注:这篇文章的产生,主要是读了《移动 APP 测试实战》一书,部分内容借鉴了里面的内容,有兴趣的可以买来读一读
来源: http://www.jianshu.com/p/42437b93c790