什么是 DevOps 测试策略?

DevOps 的一个重要组成部分是持续集成/持续交付(CI/CD),在 CI 和 CD 之间的就是持续测试。

如果不进行持续测试,将会出现:

  • 缺陷的泄漏
  • 软件延期交付
  • 客户不满意

DevOps 测试策略的好处

  • 可以提供更快的反馈

我们都不希望看到开发人员返回到 1-2 周前编写的代码中去修复一个 bug。我们希望他们得到更快的反馈,这样他们就可以立即解决问题,更快地释放投入到其他工作。

  • 可以覆盖更多平台

通过实施扩展自动化测试的策略来覆盖更多的平台。这可能具有挑战性,因为移动和网络平台都是分离的。但是,当我们使用正确的测试自动化工具时,可以确保在更快的时间内覆盖更多的平台。

  • 尽量减少测试执行时间限制

最后,减少测试执行的时间限制,执行时间需要更短。当我们大规模并行运行,并使用正确的工具时,我们可以加快上线的时间。

开发DevOps测试策略的最佳实践

对于大多数企业来说,理想的状态是持续测试并制定出测试策略的最佳实践。

  • 行规模的自动化测试

为了建立一个成功的 DevOps 测试策略,需要在 Web 和移动设备上扩展测试自动化。

  • 扩展Web测试
  • 扩展移动测试
  • 拓展API 自动化测试

随着项目发展,API 数量越来越多,每次迭代涉及到的回归测试任务也越来越重。API 自动化测试功能能够让测试人员仅通过界面来创建 API 自动化测试,一键发起自动化测试并实时得到测试结果,提高回归测试效率。

  1. 0 代码 API 自动化测试:能够让测试人员仅通过界面来创建 API 自动化测试,不需要学习 如何编写代码。
  2. 通过 Javascript 编写复杂的测试用例:提供了 Javascript 脚本模式。可以通过非常简单的 脚本来编写复杂的 API 测试用例,实现自动化测试中复杂的流程跳转、数据加解密、验签等目的。
  3. 可进行 API 之间参数传递:无需学习变量和脚本语法,通过界面可以直接设置复杂的参数传递规则,如将注册后的 Token 传递给登录 API,将登录后的 Cookie 传递给后续 API 进行 鉴权等。
  4. 可直接对 JSON、XML 等结果进行校验:无需编写脚本解析复杂的 JSON、XML 结果,系统自带的强大的结果校验工具能够让测试人员快速对数据进行校验。
  5. 支持对数据库进行操作:测试过程中可以直接对数据库进行操作,方便在测试之前写入测试数据、测试中校验数据、测试后清空脏数据等。
  6. 支持 定时 / Open API 发起自动化测试:系统会记录每一次的请求历史,可以看到详细的测 试时间、请求及返回信息等。
  7. 自动生成测试报告:每次测试都可以生成详细测试报告,支持在线查看和离线下载;报告中会显示 API 的请求时间、请求参数、返回结果、校验结果、错误原因等信息,方便对 API 进行排查。
  8. 自动将 API 文档变更同步到测试用例中:当 API 文档发生变化时,可以一键将最新的 API 文档内容同步到测试用例中,减少维护测试用例的时间成本。

 

自动化所有测试类型

要制定一个成功的策略,就需要跨所有测试类型实现自动化。功能测试和非功能测试,性能、可访问性和单元代码覆盖率等等。

维护稳定的测试自动化套件

CI 内部和 CI 外部的自动化是敏捷和 DevOps 的核心。确保自动化持续增加价值 > 并满足上述目标 > 需要一个稳定的测试自动化套件。

自动化套件必要时进行不断的审查、审核、维护和重构。

随着产品代码的更改,测试也会随之更改。确保团队正在研究测试场景并在需要时对其进行更新。

要解决这种情况,明智的做法是通过自动化测试框架让软件在进入生产阶段之前完成自动化测试。实现自动化的一种方法是通过将测试驱动开发(TDD)与行为驱动开发(BDD)的组合分层,以确保可测试性、更高的效率和促进协作。从长远来看,拖延解决问题是有风险的。因此,不应该让 DevOps 中的问题恶化,因为它可能会迅速升级。如果使用大量手动测试而不是应用自动化测试,就会出现这样的场景。

为了控制快速的 DevOps 生命周期,测试自动化是一个基本的必要条件。在现有条件下,有必要考虑广泛和允许关键的变更来增强测试自动化过程。需要优化总体测试策略以获得满意的结果。

 

使用高级报告和分析

每个测试活动的核心都有一份测试报告。报告越详细、越有可操作性,开发人员就越能更快地找出故障的根本原因并向前推进。

确保使用强大的报告平台作为整个测试活动的一部分。

 

让整个团队参与测试

如果没有整个团队的参与,DevOps 测试策略是不会成功的。

为了对每个 pull 请求和代码更改进行大规模的自动化测试,我们需要:

  • 业务测试人员进行探索性和结构化的手工测试——利用无代码自动化测试。
  • 测试中的软件开发人员创建基于功能和非功能代码的自动化测试脚本
  • 软件开发人员创建单元并构建验收测试

成功实施 DevOps 测试策略所需的工具

  • Docker – 容器化工具
  • Git – 版本控制系统(VCS)工具
  • Jenkins – 持续集成(CI)工具
  • Jira – 敏捷的团队协作工具
  • Nagios – 连续监控工具
  • Puppet – 配置管理和应用程序部署工具
  • Eolinker – API测试和API自动化测试

 

3个由 API 驱动的 DevOps 策略

为了充分利用 DevOps 管道,需要将其与适用于企业的 API 策略相平衡。下面,我们将回顾 API 如何加速常见的 DevOps 策略。

API 信息管理

  • 为 HTTP、HTTPS 协议的 API 提供文档管理;
  • 手动创建 API 文档;
  • 自动从代码中识别注解生成 API 文档;
  • 针对 API 文档进行版本管理,支持一键切换、对比历史版本;
  • 支持 API 变更通知,当 API 发生变化时通知相关团队成员;
  • 支持 API 在线评论,可以直接针对 API 文档进行评论并通知相关成员;

 

API 测试管理

  • 一键对 API 发起测试
  • 支持请求参数类型:表单、JSON、XML、Raw、Binary、Query、Rest、其他自定义类型
  • 支持对 API 测试进行时间分析
  • 支持对 API 进行鉴权
  • 支持编写脚本改变测试的内容
  • 支持将测试数据保存为测试用例方便后续调用
  • 支持一键批量测试所有测试用例并得到返回结果

 

API 研发流程管理

  • 支持 API 状态变更通知:支持将 API 设置为已发布、设计中、待确定、开发、对接、测试、完成、异常、维护、废弃等状态,并且根据每种状态设置状态变更操作,比如当 API 变为测试状态时通知测试人员;
  • 支持 API 变更通知,当 API 发生变化时通知相关团队成员;
  • 支持 API 在线评论,可以直接针对 API 文档进行评论并通知相关成员;
  • 支持 API 统计,能够了解整个项目内的 API 状态分布、bug 情况、迭代情况等;
  • 支持创建 API 迭代计划,了解当前迭代计划中包含的 API 信息以及当前的研发、测试状态等;

 

API 在 DevOps 中的重要性

 企业不断寻找新方法来降低成本和提高效率,同时保持产品质量。API 可实现自动化、推动一致性、效率和成本节约。

  • 提高运营效率

自动化帮助公司从运营过程中消除人为错误和成本。即使是一项记录良好、清晰、可重复的任务,如果由人完成,也会产生不同的结果。另一方面,自动化此任务可确保每次都以相同的方式执行。这种一致性提高了操作的可靠性和效率。

  • 实现业务连续性和灾难恢复

手动灾难恢复计划不是确保业务安全的理想选择。手动流程总是为错误留有余地。API 使公司能够自动化灾难恢复流程并提高效率。通过 API 实现的自动化允许公司在灾难期间访问所有必要的工具。这包括由虚拟化平台中公开的 API 驱动的复制工具。

结论

DevOps 实践可以在系统失败和成功之间产生差异。团队可以利用 API 来消除从头开始新项目所需的时间和资源。此外,API 策略可以帮助公司通过使用云 API 来采用云原生方法,通过版本控制系统驱动 DevOps 管道,并解决遗留系统问题。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐