| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> 接口自动化测试必备知识 -> 正文阅读 |
|
[开发测试]接口自动化测试必备知识 |
在所有的自动化测试中,接口测试是必不可少的一项,同时也是回报率最高的一项。有效且覆盖完整的接口测试,不仅能保障新功能的开发质量,还能让开发在修改功能逻辑的时候有回归的能力,同时也是能优雅地进行重构的前提。 今天主要探讨接口测试的作用以及常用的接口测试工具。 一、什么是接口测试 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 二、为什么要做接口测试 1、互联网的快速发展,公司内部系统或与外部系统的关联越来越多,一个业务流程关联多个后端系统,它们的关联都是基于接口来实现,接口测试可以将复杂的系统关联进行简化,只要做好每个接口的测试就能够较好的保证系统质量。 三、接口测试的范围 1、业务功能(包括正常、异常场景是否实现)。 四、接口测试的重点 1、检查接口返回的数据是否与预期结果一致。 五、接口测试原则 1、基础原则: ?自动化:接口测试是非交互式的自动化执行,不需要人参与。 ?独立性:接口测试之间不应该相互依赖。 ?可重复:接口测试可重复执行,不受环境影响。 ?接口测试遵守BCDE原则,保障接口交付质量。
?数据准备:数据准备通过系统服务进行,不能通过直接插入db方式。 ?可测性:对于不可测的代码需要进行重构成合理的结构。 ?覆盖性:接口测试需要覆盖所有UC,同时代码覆盖率和分支覆盖率应达到一定标准,新增代码必须被覆盖。 ?持续性:如果代码修改导致已有接口测试执行失败,必须修复代码问题或者测试代码逻辑。 ?时间要求:接口测试应该在项目发布之前完成,不应放到项目发布之后补充。 以上的基本原则应适用于所有层的自动化测试用例,在编写接口测试时,除了上面这些原则,还有其他原则需要遵守,先看一张图: 2、从系统角度来分析入口调用,以HSF服务为例: ?外围系统调用由我们系统提供的服务。 ?系统执行了一堆代码逻辑,其中包含有分支逻辑。 ?系统执行过程中依赖外部HSF服务,进行了调用,并得到了返回值。 ?系统执行过程中依赖DB查询或者落地了数据,依赖缓存查询或者落地了数据。 ?系统执行过程中对外发送了消息。 ?给上游系统返回HSF执行结果。 3、有效接口测试的关键原则是要覆盖所有入口,mock所有依赖,校验执行过程中所留下的痕迹,总结如下: ?入口覆盖:接口测试用例必须覆盖HSF服务入口、消息入口、定时任务入口。 ?依赖mock:在基本原则中,有可重复这个原则,即接口测试不能受环境依赖,需要mock掉对外依赖。但对于db依赖,不建议完全mock掉,一方面mock成本高,另外可能覆盖不到sql和表约束逻辑。 ?校验完整:有效的接口测试,应该具备完整的校验,没有校验的接口测试是没有意义的。只要执行过程中,留下的痕迹对业务有影响,都要进行完整校验,方能保障接口测试的有效性。
六、接口测试常用工具 1、JMeter 2、Robot Framework Robot Framework是一款Python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。常用于轮次很多的验收测试和验收测试驱动开发(ATDD)。 3、SOAPUI 4、PostMan 七、是否所有项目都需要接口自动化 接口自动化相比UI自动化拥有更高的回报率,但不是说所有项目都需要实现自动化。在思考是否实现自动化时还要考虑项目的周期和当前系统的稳定性,这样自动化才能达到较高的的投入回报比。 |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/28 11:50:38- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |