对自动化测试断言的思考

断言在自动化测试中起着关键的作用,它是验证测试结果是否符合预期的重要手段。如果在自动化测试过程中忽视了断言,那么这个测试就失去了其本质的意义,因为我们无法得知测试结果是否达到了预期的效果。因此,断言在自动化测试中的重要性不言而喻。那么,面对这样一个重要的环节,我们应该如何去进行有效的自动化测试断言呢?

本文主要是探讨 API 自动化里面断言的实战思考。

自动化目的

自动化测试的目的主要是为了提升测试效率、降低成本。不同公司、团队和业务可能有不同的自动化目的,常见的几个目的如下:

  • 测试过程测试数据准备时间比较长,为了解决造数据来做的自动化或者脚本。

  • 冒烟测试自动化,为了快速验证提测版本是否存在阻碍问题。

  • 项目回归测试用例太多,人力执行耗时长,为了提升回归效率。

  • 存在重复复杂的操作比较耗时,为了释放人力,去做更有价值的工作。

  • 测试过程中数据统计,例如每天缺陷的各种状态数据、月度、年度数据统计。

自动化的目的可能不止上面几点,但主要围绕成本和效率展开。通过自动化技术手段,可以提升测试效率、降低成本,实现降本增效的目标。

发展阶段

这个阶段有自动化开展阶段、业务发展阶段等不同的方面,我们先来探索这些有哪些阶段,仅个人观点,供参考。

自动化开展阶段

  • 探索阶段:在这个阶段,团队部分人开始探索自动化的潜力和可行性。主要特点包括:

    • 研究和评估不同的自动化技术和工具。

    • 进行部分业务的尝试,以验证自动化的效果和可行性。

    • 重点是技术探索和创新,以确定最佳的自动化解决方案。

  • 个人阶段:在这个阶段,个人开始尝试和应用自动化技术。主要特点包括:

    • 个人自主地学习和应用自动化技术。

    • 个人通过试错和实践来提高自己的自动化能力。

    • 个人可能会使用一些简单的自动化工具和脚本来提高工作效率。

  • 团队阶段:在这个阶段,团队开始协作和共享自动化经验。主要特点包括:

    • 团队成员之间开始分享自动化的最佳实践和经验。

    • 团队建立共享的自动化工具和资源库。

    • 团队开始协作开发和维护自动化解决方案。

  • 成熟阶段:在这个阶段,自动化已经成为组织的一部分,并得到广泛应用。主要特点包括:

    • 自动化成为组织的标准工作流程和流程的一部分。

    • 自动化解决方案得到持续改进和优化。

    • 自动化的效益和价值得到认可,并在组织中得到广泛应用。

需要注意的是,这些阶段的划分是一种理想化的描述,实际情况可能因组织和团队的不同而有所差异。

业务发展阶段

  • 初创阶段:在这个阶段,团队刚刚组建,业务规模较小,主要任务是确定产品或服务的市场需求,并建立初步的商业模式。此阶段的重点是产品开发、市场验证和初步的客户认可。

  • 成长阶段:这个阶段产品业务已经进入成长阶段。此阶段的目标是更加快速的占领市场,推广业务,逐渐有了产品的质量意识,当前阶段有了一定的用户群体。

  • 成熟阶段:此阶段产品已经在市场上建立了一定的品牌知名度和市场份额后,进入成熟阶段。此阶段的重点是巩固市场地位、提高产品质量和服务水平,公司对于产品的质量要求已经有很高的追求。

  • 衰退阶段:在一定的市场周期后,公司可能会进入衰退阶段。此阶段的特点是市场竞争激烈,盈利能力下降,公司面临业务调整和转型的压力。

自动化断言

对于自动化的断言,常用的断言方式都是基于以下几个方面。

  • 状态码:这是最基本的断言,检查返回的 HTTP 状态码是否符合预期。例如如果你发送的是一个 GET 请求,那么预期的状态码应该是 200。

  • 业务码:这是用来检查 API 业务逻辑是否处理成功。例如一般业务处理成功,未出现异常,可能返回响应内容业务码为 0。

  • Body体关键msg信息:这是用来检查 API 返回的数据是否符合预期。例如你检查返回的 JSON 对象中的某个字段是否有预期的值。

  • 响应Header关键msg信息:这是用来检查 API 返回的响应头数据是否符合预期。例如你检查返回的 Header 对象中的某个字段是否是预期的值。

  • Body 结构:这是用来检查 API 返回的响应数据结构是否符合预期。例如你检查返回的 JSON 对象中是否是预期的结构体。

  • 全Body体:这是用来检查 API 返回的数据是否符合预期。例如你检查返回的 JSON 对象中的所有内容是否和预期的值一致。

  • 响应时间:这是用来检查 API 响应的速度是否在可接受的范围内。如果响应时间过长,可能会影响用户体验。

  • 入库数据:如果 API 操作会影响数据库,那么你可以检查数据库中的数据是否符合预期。

那我们该怎么在API自动化测试过程合理的使用断言呢?这需要我们根据自动化的目的、产品的不同阶段、自动化的不同阶段等这些方面来进行考虑。

如你的目标是检查 API 的基本功能,那么状态码断言和响应内容断言可能就足够了。如果你的目标是性能测试,那么响应时间断言就很重要。

在产品的早期阶段,可能需要频繁地修改和调整 API,所以选择一种容易修改的断言方案会更有利。在产品的后期阶段,API 的稳定性和性能可能更重要,所以可能需要更复杂的断言方案。

在自动化的早期阶段,你可能需要快速地编写和运行测试,所以选择一种简单的断言方案会更有利。在自动化的后期阶段,你可能需要更精确地控制测试结果,所以可能需要更复杂的断言方案。

下面我们列举几种工作中的使用场景,供大家参考:

  • 监控环境、服务是否可用:就采用状态码断言

  • 刚开始做自动化时,这时候需要快速反馈出效果采用业务码+关键 msg断言

  • 对于数据准确性非常高的场景:采用全Body体+入库数据断言

  • 对于微服务之间的通讯接口:采用业务码+关键 msg断言+Body 结构断言

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】在这里插入图片描述
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

 行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 1150305204,里面有各种测试开发资料和技术可以一起交流哦。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-13 01:52:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-13 01:52:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-13 01:52:02       87 阅读
  4. Python语言-面向对象

    2024-01-13 01:52:02       96 阅读

热门阅读

  1. vue3中el-table实现表格合计行

    2024-01-13 01:52:02       66 阅读
  2. [ECE]1.3 Basic logic operations

    2024-01-13 01:52:02       48 阅读
  3. 3 微信小程序

    2024-01-13 01:52:02       51 阅读
  4. 面试题-回溯算法解法模板

    2024-01-13 01:52:02       55 阅读
  5. 数据库面经---10则

    2024-01-13 01:52:02       61 阅读
  6. Android实现通过字符串找到图片、Class

    2024-01-13 01:52:02       49 阅读
  7. [ECE] Introduction to Digital Logic and Systems

    2024-01-13 01:52:02       52 阅读
  8. 【PHP】判断字符串是否是有效的base64编码

    2024-01-13 01:52:02       56 阅读
  9. golang中context详解

    2024-01-13 01:52:02       57 阅读