1、什么是接口测试:
接口是指模块与模块或系统与系统之间进行交互,一般我们用的最多的是HTTP协议的接口,webservice协议的接口,还有RPC(远程过程调用接口)
本质就是发送一个request请求,服务器响应返回一个response,我们对其进行分析,即是接口测试
2、如何做接口测试
接口测试要覆盖业务
接口测试要覆盖代码
MC/DC
3、为什么做接口测试
为了保证系统的独立性,和业务的独立性,保证数据传输的准确性,持续性的检查接口数据的准确性
4、UI自动化:Qtp, webdriver, robotium, appium, 意义较小,稳定性差
常见接口测试工具:
典型商业工具:Loadrunner, soapui
典型开源工具:jmeter jsoup httpclient python中的urllib2,urlib库
扩展工具:Poster, postman
接口测试与抓包:
协议原理
协议捕捉:Firebug, fiddler, httpwatch
协议变更:poster,postman,httpRequest, TemperData
http抓包工具:HTTP analyzer ;fiddler;httpwatch;
进程级抓包:WSExplorer
5、接口测试的目的以及方式
核心:保证系统的稳定性
方式:持续集成
目的:提供测试效率,保证数据的准确性
文档:接口的数据类型是提前定义好的,需要整理出断言文字等
工具选择:协议,工具是否熟悉,工具的局限性(能否解决问题),成本
6、实现原理
模拟客户端对服务端进行多连接
伪造报文欺骗服务器认证机制:服务器机制;客户与服务器直接的交流报文结构;合理的技术构造报文结构
cookie session; 报文体
http协议:RFC2616; 超文本传输协议
Http1.1只能压缩BODY;http2.0可以压缩header
服务器识别终端的方式几乎都用user-agent
通过切换user-agent实现浏览器模式的手机效果
connection:keep alive: 长连接
服务器返回信息
2XX都是服务器正常返回
4XX都是客户端问题
5XX都是服务器问题(发送数据非法,导致服务器某些逻辑错误;服务器太忙了)