全网最全,接口自动化测试怎么做的?精通接口自动化测试详解
目录:导读
- 一、前言
- 二、接口自动化测试的 "能 "
- 1、接口自动化的目标
- 2、接口自动化 Case 用例设计原则
- 3、接口自动化用例定时跑
- 三、接口自动化测试的 "不能 "
- 1、接口自动化之难点
- 2、接口自动化之痛点
一、前言
接口通俗来讲就是前端和后段之间传输数据的桥梁,注意:不是每一个项目都有接口,一些大型项目是前后端分离的,那么他们怎么实现数据的传递和返回呢?在通俗来讲就是前端和后段都有一个模拟参数数据
二、接口自动化测试的 "能 "
1、接口自动化的目标
- 用于项目的 API 层的 HTTP 接口的功能逻辑验证
- 减少手工测试的工作(回归验证;跨模块的验证)
- 实现手工验证不能做的验证(如接口涉及大量数据的排序比较)
- 手工很难充分验证的功能逻辑(如接口的功能验证涉及大量的数据)
P.S. 实际项目中,接口自动化的根本目的是什么?
个人认为是定时跑时,能监控接口,当接口功能失常时,可以及时发现,即发现 Bug。因此,可以使用代码覆盖率来评估接口自动化的完整性,但更重要的是发现问题
2、接口自动化 Case 用例设计原则
切记:
- 不要为了做自动化而做自动化,做的首要目标是问题出现时,能第一时间发现
- 自动化中的代码覆盖率统计可以作为参考,但不能一开始就为了提高覆盖率,陷入 Case 设计之中
注意:好的接口自动化 Case 设计,依赖于 Case 设计者的功能理解程度(手工测试的功力)+ 功能覆盖点
原则:
1.将手工测试点转换为自动化用例
Case 设计注意:验证用例通过的标准—参考一个功能点容易出问题的地方。或者说,一个用例的通过说明此功能点一定没问题;反之,一定有问题。
2.覆盖手工测试不易检查/太浪费时间的检查
比如:
- 一个 HTTP 接口设计大量的数据比较的时候
- 接口的 json 返回不能直接检查功能点是否正确(需要调用另一个接口的 json 来间接验证时)
- 一个接口的 json 返回需要和其他模块的接口联合” 互相验证 “(需要调用其他模块的接口的 json,两个 json 相互来验证彼此的正确性)
3.“边缘性” 的功能检查 这里主要指的是回归验证
如果系统涉及边缘性的功能验证,把此类功能设计层自动化用例
4.接口验证的程度
接口的验证:即判断一个接口是否正常的标准。注意:接口参数”合理地“组合
5.DB 数据更新检查
(如果有必要)注意从接口的角度检查 DB 数据的更新:
- 其他系统的数据更新到待测系统 DB 中的数据
- 每天待测系统由于用户操作更新到 DB 中的数据
6.接口自动化的数据准备
关于是否需要为接口自动化,特意在 DB 中准备需要的数据,适需要程度而定。原则:除非必须,否则不用准备。如果不准备数据,无法完成对接口的验证,则自己准备数据即可
注意:一旦自己准备数据,评估对其他功能验证的影响。确保 DB 中数据量和真实性(模拟的数据需要充足,并且不能和真实数据差异性过大)
3、接口自动化用例定时跑
自动化一般会选择每天定时跑。这里需要注意的一点就是定时跑的时间选择
时间选择上注意几点:
1)在线上跑时,注意对线上接口的影响(一般要求:线上的回归验证可以随时跑)
2)如果要检查 DB 数据更新的有关逻辑,注意数据的稳定性 (如用户量少的时候)
3)在测试时(非生产环境),接口涉及读,写 DB,考虑是否需要定时跑
三、接口自动化测试的 "不能 "
首先,接口自动化不是万能的,总有覆盖不到的时候。知道自动化的”不能“之处,才能更好配合手工测试出问题
自动化的 ”不能“ 之处如下:
1)HTTP 接口突然出现压力问题(前期的压测)
2)Web 层面的手动测试 (新功能上线后,对原有功能回归时,仍需要接口自动化验证接口,手工测试 Web 页面功能)
3)异常情况(如需要第三方 API 挂掉/超时的场景)
1、接口自动化之难点
1)实现变动 vs 维护的工作量 vs 检查的详细程度
检查详细程度:自己和自己比;自己和同类接口同一指标比较(因为口径不一致,或者内部实现变化,需要后续维护)
经验:自己和自己比,扩展和兼容性比较好(动态参数 + 完成功能检查);而自己和别的接口比 看需求而定(接口提测前后 数据准确性检查比较参考);
P.S. 小的点,执行时间和执行频率
用途:发现功能失常,功能不可用;
2)接口监控 —— 执行时间和执行频率
- 检查详细程度 vs 执行时间和执行频率 (只能和自己)
- 检查详细程度 vs 经常频繁报警(一个接口怎样算是正常的,返回非200+功能正常)
3)数据报表
数据的正确性:统计口径(业务方的口径+多个接口/模块口径的差异后导致业务方不一致)
2、接口自动化之痛点
痛点当然源自难点:
- 当接口本身实现频繁变动、对接口的检查太过详细、开发修复缓慢时,那么不停的报警将会来了
- 不合理的自动化设计及维护方案,造成自动化成本大于自动化收益时,接口自动化就变得无足轻重了
实际项目中的体会是:为了自动化而自动化。特别测试场景过于复杂时,当自动化实现成本远大于手工测试成本时,就没有必要非去自动化测试了
相对于UI自动化而言,接口自动化具有更大的价值
为了优化转化路径或者提升用户体验,APP/web界面的按钮控件和布局几乎每个版本都会发生一次变化,导致自动化的代码频繁变更,没有起到减少工作量的效果
而接口一旦研发完成,后期重构/大幅度修改的频率则比较低.因而做接口自动化性价比还是很高的,对于迭代版本旧有功能的回归,beta测试,线上回归都能起到事半功倍的作用
全网最全,接口自动化测试怎么做的?精通接口自动化测试详解相关推荐
- 【高速接口-RapidIO】4、Xilinx RapidIO核详解
期待大家的一键三连,爱你们!!! 总目录:总目录(经验分享) 献上链接: [高速接口-RapidIO]2.RapidIO串行物理层的包与控制符号 [高速接口-RapidIO]3.RapidIO串行物理 ...
- 首席新媒体运营黎想教程:最全电商运营方案,50个技巧详解
做电商该怎么运营是个问题,一开始就做好定位.选品.定价.测款.老客-然后再去大力推广.那么一个合格的电商运营到底应该是什么样子的?这其实很难有定论,如果把店铺运营销量做的好,那么这个人肯定是比一般人好 ...
- C#高级编程——C#扩展方法+接口,定义统一的搜索接口,基于Unity(三)——图文详解加源码
C#高级编程--C#扩展方法+接口,定义统一的搜索接口,基于Unity(三)--图文详解加源码 前言
- 自动化测试框架[Cypress命令行执行测试详解]
前提 已经熟练掌握了Cypress的基本知识,请参考自动化测试框架[Cypress概述]和自动化测试框架[各自动化测试框架比较] 已经熟练掌握Cypress环境配置,请参考自动化测试框架[Cypres ...
- python微信自动发消息_Python使用微信itchat接口实现查看自己微信的信息功能详解...
Python使用微信itchat接口实现查看自己微信的信息功能详解 发布时间:2020-09-09 04:20:11 来源:脚本之家 阅读:134 本文实例讲述了Python使用微信itchat接口实 ...
- python itchat_Python使用微信itchat接口实现查看自己微信的信息功能详解
本文实例讲述了Python使用微信itchat接口实现查看自己微信的信息功能.分享给大家供大家参考,具体如下: itchat是python的一个api,可以访问自己的微信信息,功能还蛮好玩的,可以扒取 ...
- 基于Python的接口自动化unittest测试框架和ddt数据驱动详解
引言 在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条接口测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行,还有在运行大量的接口测试用 ...
- mysqldump全量恢复_删库不跑路-详解MySQL数据恢复
日常工作中,总会有因手抖.写错条件.写错表名.错连生产库造成的误删库表和数据的事情发生,那么,如果连数据都恢复不了,还要什么 DBA. 相关文章 MySQL备份策略:https://segmentfa ...
- java8 四大函数式接口 和 用于数据处理的 stream流 使用详解
文章目录 Stream 使用示例 四大函数式接口 Function 功能型接口 Consumer 消费型接口 Supplier 提供型接口 Predicate 断言型接口 常用 api stream, ...
- 什么是ZooKeeper?可以做什么?ZooKeeper分布式事务详解篇
前言 什么是ZooKeeper,你真的了解它吗.我们一起来看看吧~ 一.什么是 ZooKeeper? ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效.高可用的分布式协调服务 ...
最新文章
- 电源两端并联一个电容的作用(
- C#操作Excel的OLEDB方式与COM方式比较
- java see 方法_Java 反射常用方法
- android安全性发展,Android未来发展 安全是重点
- python的实例属性和静态属性_Python面向对象之静态属性、类方法与静态方法分析...
- NumPy 基础用法
- 4556: [Tjoi2016Heoi2016]字符串
- java发送电子邮件以qq邮箱为例
- 一道题目,检验一千个瓶子中哪个有毒
- 关于Lazarus下PowerPDF控件的使用
- 2021.10.13 向日葵黑屏驱动卸载方法
- Excel表格输入身份证数字就变了 Excel函数公式大全 Excel表格制作
- 基于阶梯式Tent混沌和模拟退火的樽海鞘群算法
- 关于移植STM32f107网口程序到GD32f107的问题
- ddm模型公式_绝对估值法DDM、DCF模型及RNAV简介
- Ubuntu cd 命令
- (零基础)如何使用python下载哔哩哔哩视频?
- 02-UI知识+Scen场景搭建
- 一、pytorch环境配置
- 移动互联网是“元宇宙”的1.0版
热门文章
- 阿里巴巴矢量图的使用方法详细教程
- 移动端软件测试面试题及答案-2021年最新版
- echarts 设置仪表盘数字的位置_【Python代替Excel】11:用Python做数据仪表盘
- 用蓝牙网络设计蓝牙低能耗智能应用程序.第1部分
- 互联网晚报 | 12月20日 星期一 | 安踏100亿成立“和敏基金会”;阿里公布碳中和目标;京东上线数字藏品交易平台...
- FATE —— 二.3.2 Hetero-NN使用CustModel设置顶部、底部模型
- Mac系统中QQ记录的存储路径
- 一篇长文带你深析Linux动态链接的全过程
- 【朝花夕拾】Android自定义View篇之(十一)View的滑动,弹性滑动与自定义PagerView...
- BULK INSERT如何将大量数据高效地导入SQL Server