当前位置: 首页 > news >正文

怎样做好接口自动化测试?

今天介绍一下在接口自动化测试相关实践中总结到的一些经验。

接口自动化测试的目的

自动化测试的主要目的是用来回归测试的,当代码有变化时,有可能影响不应该变化的逻辑,这个时候为了确认这种情况,就需要进行回归测试。有时候回归测试的范围比较大,如果全由人工的测试,一次两次还可以接受,如果每次都这样做,人力成本不说,反反复复执行相同测试用例的测试人员也会抱怨。

通过接口自动化测试可以实现手工测试不容易做的验证,比如验证接口中大量数据的排序,多字段的比较,如果都通过手工来做,效率问题不可接受。

手工很难充分验证的功能逻辑,一些异常、极限的场景,通过手工很难构造,此时如果我们了解接口的内部逻辑,通过使用脚本有目的的构造这样的场景来触发接口的内部逻辑,从而对这些逻辑进行验证测试,相对来说是很容易的。

采用定时的针对线上接口的自动化测试,能启动一定的监控作用,当接口功能出现问题时,通过定时的巡检测试就可以及时发现。

接口自动化测试需要掌握的技能

首先就是对于业务要有相当程度的理解,如果要设计好的接口自动化测试用例,一定要对业务有着深刻的理解,因为接口自动化的前期会有一定的投入,如果我们可以将有限的投入聚焦业务中的核心功能点,会有事半功倍的效果。

其次是拥有设计功能测试用例所用到的测试设计基本功,自动化测试和功能测试一样,同样不可穷举、不能做到足够的充分测试,那么就需要经过一定的测试分析,来选择最有效的测试用例。

最后是有一些代码能力,架构设计能力。

接口自动化测试需要注意什么

由于开展接口自动化测试有一定的成本,所以编写接口自动化测试用例,实际上要有一个权衡的。

如果测试用例写得很细,我们测试了接口中每个功能点甚至是每一条分支路径都有涵盖,那么就会特别依赖被测代码的逻辑,如果被测代码逻辑稍微有点变化,测试用例可能就会执行失败。

如果我们的测试用例验证的内容没那么细的话,那有可能即使被测代码逻辑有变动,但是测试用例执行不容易失败,这时就有可能遗漏由于代码变动产生的真的bug。

所以开展自动化测试要找到一个平衡点,尤其是要注意和其他层面的测试相互配合,比如单元测试、UI自动化测试、人工测试等。我们可以事先定义出一套分层测试的规范,即哪些逻辑应该有接口自动化测试保证,哪些逻辑要由UI自动化测试保证,哪些逻辑要由人工测试保证。我们在进行不同层面的测试时,就能互相配合,达到一个较高的测试覆盖率。这个规范没有统一的标准,也是根据自己团队的实际业务、资源、人力等因素来设定的。

最后,接口自动化测试用例其实也是有生命周期的,从产生到修改、再到废弃。自动化测试用例只要在生命周期内才能发挥价值,所以我们要尽可能的延长它的生命周期,还要尽可能的降低case的产生成本和修改成本,所以整个自动化测试用例就要进行管理。说到管理,我们就不得不谈谈度量了。关于自动化测试的度量指标列举了一些供大家参考:

  • case总数量
  • case变更量
  • 代码覆盖率
  • 投入人力
  • 单个/所有case执行次数
  • 单个/所有case发现问题数
  • 人工参与的回归测试投入情况

当我们开展自动化测试时,就需要通过分析上述指标,以及这些指标一段时间内的趋势,来调整自动化测试方案和策略。

http://www.lryc.cn/news/197461.html

相关文章:

  • Leetcode刷题详解——找到字符串中所有字母异位词
  • Android 自定义view 圆形进度条
  • 混凝土基础的智能设计:VisualFoundation 12.0 Crack
  • C++中成员函数的重载覆盖与隐藏
  • 电子器件系列49:CD4050B缓冲器
  • Leetcode 349 两个数组的交集 (哈希表)
  • 基于YOLOv8模型的水下目标检测系统(PyTorch+Pyside6+YOLOv8模型)
  • vue-cli脚手架创建项目时报错Error: command failed: npm install --loglevel error
  • c语言练习92:链表的中间结点
  • CentOS(4)——关于Linux软件下载时:amd64、x86、x86_64、arm64 的说明
  • 简单易学,让你拥有个性化的二维码
  • 开源原生android的视频编辑软件
  • 10kb的照片尺寸怎么弄?几个步骤轻松搞定!
  • uniapp-vue3-微信小程序-标签选择器wo-tag
  • 数据结构与算法-(9)---双端队列(Deque)
  • DTI综述(更新中)
  • 封装一个滑块控制灯光组件
  • flutter循环
  • 2.3 如何使用FlinkSQL读取写入到JDBC(MySQL)
  • Flink日志收集到数据库/kafka
  • Go项目踩坑:go get下载超时,goFrame框架下的go项目里将vue项目的dist同步打包发布,go项目打包并压缩
  • DataCon【签到题】挖矿流量检测
  • Vivado详细使用教程 | LED闪烁示例
  • 一些经典的神经网络(第17天)
  • Hadoop-HA-Hive-on-Spark 4台虚拟机安装配置文件
  • Hutool工具类参考文章
  • 【 Python ModuleNotFoundError: No module named ‘xxx‘可能的解决方案大全】
  • eclipse 配置selenium环境
  • 数据挖掘(6)聚类分析
  • 在启智平台上安装anconda