好久没有总结了,趁空把最近的接口测试内容写下。过了这么久(居然快5年了,时间真是把杀猪刀啊!让我先cry一会)才发现应该去写博客记录职业发展的历程。
1、什么是接口测试?
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个
子系统之间的交互点。测试的重点是要检查数据的交换、传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
2、接口测试场景:
手机APP
客户端软件
web网站API:微信接口、新浪微博接口等等
公司内部系统API:订单接口需要调用用户资金接口查询余额
3、软件架构模型
服务器-客户端
1、b/s,浏览器服务器模型。通过http协议、websocket协议等进行通讯。
2、c/s,客户端服务器模型。客户端:app、桌面软件等。
服务器内部:服务器之间互相调用。
4、接口测试分类
1、模块之间的接口:如订单模块下单时,需要去用户资金模块查询余额等
2、系统对外部系统提供的接口
3、内部子系统的服务之间的接口
5、涉及的协议
tcp/ip协议、http/https、websocket、json、xml
webservice(soap/WSDL)、restservice、xmpp、自定义协议
hession、dubbo
6、网络传输:
http、https、webservice
文本:json、xml
二进制:thrift、protobuf、hession
7、接口测试的比较
接口测试与自动化测试:
自动化测试如app自动化测试、web自动化测试:都是模拟人类行为的测试
底层都是通过接口去和服务器进行交互,接口测试可以在底层模拟人类的行为去进行测试。
接口测试与功能测试:
功能测试用于测试系统功能是否满足业务逻辑;功能测试包含一个或多个接口测试;接口测试能涵盖一定的功能测试。
接口测试与性能测试:
自动化测试的模拟行为,测试效率较慢;接口测试可以直接与服务器进行快速交互,对接口进行性能、压力测试。
接口测试与安全测试
功能测试能一定程度上测试安全性,接口测试能大范围测试系统安全性,类似于模拟黑客攻击的行为。
8、接口测试能带来什么
提升测试效率:底层的1个bug能够引发上层的8个左右bug,而且底层的bug很容易引起全网的宕机,接口测试能提供系统复杂度
上升情况下的低成本高效率的解决方案。
能快速定位bug
安全缺陷
性能缺陷
9、接口测试工具
jmeter:ws、rs、http
soupui:ws、rs、http、安全测试
其他:loadrunner工具非常多,掌握测试的思想即可
10、编写代码
httpclient、cxf
dubbo、thrift等的客户端
11、接口的认证
用户名密码、sessionid或access_token、公钥私钥、其他
12、接口测试与加密算法
RSA、AES、DES、MD5、SHA1、SHA256、SHA512
13、why做接口测试
1、随着系统复杂程度的上升,传统的测试方法测试成本急剧增加,测试效率大幅下降(数据模型推算,底层的一个bug能够引发上层的8个左右bug,而且底层的bug很容易引起全网的宕机,接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案。
2、接口测试不同于传统开发的单元测试,接口测试是站在用户的角度对系统接口进行全面高效持续的检测
14、接口测试分类
1、代码接口测试(模块间接口测试):例如:java中的interface接口
2、协议间接口测试:协议是指通信双方实现相同功能的相应层之间的交往规则、例如:web测试中的http协议接口、socket协议接口测试、telnet协议接口测试
3、服务间接口测试:服务是一种应用程序类型,它在后台运行,服务应用程序通常可以在本地和通过网络为用户提供一些功能,例如:webservice接口、淘宝开源的dubbo中间件服务接口等