日常开发过程中,项目的接口通常由服务提供方约定和提供,微服务模式下接口被多个消费者调用更是常态,那么提供方接口的变更如何快速、高效、无遗漏的通知给消费者呢?另外,当一个service同时被多个使用者调用,如何保证对service的修改可以让其它所有使用者造成的影响都能被感知到?这些问题契约测试可以给你答案。另外,微服务模式下,接口测试是非常重要的测试手段,它在实际的项目中帮助验证微服务之间的协同和交互,大幅降低测试成本和提高测试效率方面提供了很大帮助,可以说接口测试是业务功能测试前置的助推器。因此,这里对这两种测试手段进行介绍。
接口测试和契约测试所处的阶段
在实际的工作中,结合随行付的实际情况我们对自动化测试金字塔原理进行了定制,加入契约自动化测试内容,形成如下新版自动化测试金字塔结构。
由图可知,一个项目的测试过程,从项目推进的维度,首先进行单元测试,其次接口自动化测试、契约测试,最后UI自动化测试和手工测试。
微服务模式下如何开展接口测试
接口测试属于集成测试范畴,他是单元测试的扩展和延续。它主要的关注点是内部接口功能实现是否完整,比如说内部逻辑是不是正常,异常处理是不是正确。它是单元测试和契约测试的过渡阶段,它是项目单个代码逻辑最终串联形成有价值业务逻辑的桥梁。因此,其作用举足轻重。随行付开展接口测试,采用的思路是规范和方法先行,其次是工具选择、人员培训,然后是实施和过程优化,最后常态化持续提效和质量保证的过程。
接口测试规范化要求
接口测试的质量保证和测试过程的流程化需要通过规范和方法进行指导和约束。我们定制了如下要求(部分内容):
- 需求存在新增接口或者接口变更时,要求进行新增接口测试案例的编写或存量接口案例的维护;
- 需求涉及到的存量接口需要进行回归测试;
- 接口测试覆盖率要求达到100%;
- 需求测试结束前至少进行一轮接口回归测试,且回归通过率达到100%
测试流程规范涉及从需求提出、脚本编写、执行到测试报告的各个过程。
- 接口文档。接口文档是接口测试案例设计的依据,接口文档的全面性和准确性决定了接口测试范围的全面性和接口测试结果的正确性、有效性。随行付采用swagger进行接口文档管理。
- 接口用例设计。根据接口文档设计接口测试案例,接口测试案例通过接口测试平台进行编写,且需要满足不重不漏原则。
- 接口用例评审。根据项目实际情况,接口测试案例编写完成后,需组织相关干系人进行案例评审,记录并发送会议纪要。
- 接口用例执行。需求测试结束前接口测试案例至少在测试环境中执行了一次回归测试,要求案例执行通过率达到100%
- 缺陷管理和测试报告。
- 脚本纳入回归体系,定时回归,持续保障接口的质量,以及接口质量的持续和及时反馈。
脚本命名规范和编写规范如下(部分内容):
- 接口命名要求:采用“接口名称_接口描述”进行命名,用