接口测试基础与工具
2016-09-12
接口测试是集成测试实现的一种方式,分为:
- 消息接口测试
- 代码接口测试两类
本章主要还是针对消息接口为主的。
1 接口测试基础
1.1 什么是接口测试
接口是指系统模块与模块或系统与系统间进行交互,一般现在我们用的多的是基于HTTP协议为基础的接口(包括WebService协议或者Tuxedo协议),除此之外还有RPC的接口,但不管是哪种接口,其本质就是发送一个Request报文给服务器,然后服务器响应返回一个Response报文。
我们对Response的报文进行分析,判断是否和我们发给服务器的Request对应的返回相同,从而验证业务是否正确实现,这即是接口测试。
1.2 为什么要做接口测试
随着系统越来越多,以及复杂性越来越高,为了保证系统的独立性,也为了使业务更加的独立,系统间的交互越来越多的使用接口(高内聚低耦合)。这时候对于传统测试人员需要等到系统集成后才能进行测试,不但很难确保测试的覆盖率(接口覆盖率),效率也非常低下,为了解决这两个问题,接口测试也应运而生了。
1.3 接口测试的适用范围及覆盖率
所以任何接口都是应该经过测试,即有交互的地方,我们就要进行接口测试:
- 首先要达到100%的接口覆盖率,
- 在有条件的情况下做到进一步的100%需求对接口的映射 及 100%的接口对代码的逻辑覆盖率。
1.4 接口测试的用例
接口测试用例和单元或者系统的用例其实区别也不大,主要说明调用的接口传递的数据以及应该对应返回的内容即可(其他属性根据具体情况添加)。
1.5 接口测试的目的及方式
1)核心:保证系统接口的功能正常
2)方式:持续集成
3)目的:提高测试效率,保证数据的准确性
4)文档:接口测试对接口定义文档要求很高,所有的接口数据类型及业务分支导致的报文返回结构是需要事先定义好的,所以要形成文档的习惯,以方便查阅,尽量减少团队与团队间的沟通成本。
2 接口测试工具
常用工具介绍
发包工具
- 典型商业工具:loadrunner、soapui
- 典型开源工具: jmeter、jsoup、httpclient、python中的urllib2,urllib库
抓包工具
- HTTP抓包:HTTP Analyzer 、HTTPwatch、Fiddler、Firebug
- 通用数据抓包:MiniSniffer、Sniffer、Omnipeek
- 进程级抓包:WSExplorer
3 参考
《接口测试最佳实践》