什么是接口?
从狭义的角度来说,接口就是指系统架构设计中所设计好的接口,通常是有接口文档对接口做详细的描述的。这样的接口是用来实现系统解耦、模块相互通信的。
从广义的角度来说,输入和输出的数据的集合就叫接口。
输入和输出的对应关系是由功能和接口设计来决定的。
主流的接口实现架构:
SOA:
SOA是指面向服务的体系架构,是用来实现大型系统的异构需求的。
异构:就是一个系统使用多种不同的开发语言进行开发。
**典型实现:**webservice接口。
微服务:
微服务是相对于SOA来说的,强调的是服务的解耦、快速的发布和迭代。
特点就是:一个服务就实现一个功能or几个小的功能、服务和服务之间相互不影响、独立存在、工作和变更。
**典型实现:**RestFul风格的接口。
webservice接口:
http://192.168.2.236:8080/ws/services/HelloServices?wsdl
webservice接口一般来说分为三层:
·webservice call:通过XML来进行服务的描述和管理。
·SOAP request: SOAP叫简单对象共享协议。
SOAP主要是实现接口自身业务数据的封装。
·HTTP request:底层的通信协议。
这就意味着,针对webservice接口的测试可以考虑分别从三层来实现。
·RestFul风格:
https://ke.qq.com/course/315793?taid=4010275389100433&tuin=15945f87
·接口文档:
·协议:https
·path(URLorURI):/course/{cid}
·method:get
·parameters:
参数名 类型 说明
cid String 课程编号
参数名 类型 说明
taid int xxx
tuin String xxx
什么是接口测试?
接口测试又称为API测试,是测试系统组件间接口的一种测试,属于灰盒测试范畴。
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
测试的重点是要检查数据的交换,传递和控制管理过程, 以及系统间的相互逻辑依赖关系等。
接口测试:
·从广义的接口定义来说,接口测试是一种有别于UI层面的测试的测试方式。
·从狭义的接口定义来说,接口测试就是针对系统接口所进行的测试。
接口测试分类:
模块之间的接口:如果订单支付时,需要去用户资金模块查询余额等。
系统对外部系统提供的接口
内部子系统的服务之间的接口
接口测试的场景:
web网站的API接口:如微信接口、新浪微博接口等。
公司内部系统API:订单接口需要调用用户资金接口查询余额。
APP,客户端软件等。
常见的接口测试工具:
postman、jmeter、soupUI、java+httpclient、robotframework+httplibrary等。
接口测试与自动化测试的区别?
自动化测试如app自动化测试、web自动化测试:
都是模拟人类的行为去测试,底层都是通过接口去和服务器进行交互
接口测试可以在底层模拟人类的行为去进行测试。
接口测试与性能测试?
自动化测试的模拟行为,测试效率较慢,
接口测试可以直接和服务器进行快速交互,对接口进行性能、压力测试。
接口测试的价值?
提升测试效率:
底层的一个bug能够引发上层的8个左右bug,而且底层的bug很容易引起全网的宕机,接口测试能够提供系统复杂度上升情况下的低成本高效率的解决方案。
能快速定位bug
安全缺陷
性能缺陷
接口测试流程:
类似于功能测试流程,一个完整的接口测试流程如下:
- 分析接口文档和需求文档
- 编写接口测试计划
- 编写接口测试用例并评审
- 接口测试执行
- 输出接口测试报告
一般接口用例设计依据的就是开发提供的接口文档和产品提供的需求文档。
更多软件测试资料,关注公众号:软件测试圈 获取