首页 > 其他分享 >实践 DevOps 测试策略

实践 DevOps 测试策略

时间:2022-11-30 18:47:29浏览次数:46  
标签:策略 DevOps 支持 实践 API 测试 自动化

什么是 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 管道,并解决遗留系统问题。

标签:策略,DevOps,支持,实践,API,测试,自动化
From: https://www.cnblogs.com/apibest/p/16939365.html

相关文章

  • Golang-单元测试
    单元测试针对使用传统方式测试代码块的不足:1)测试代码块需要在main函数中去调用,需要修改main函数,若项目正在运行,就可能去停止项目,不方便2)不利于管理,当需要测试多个函数或多个......
  • 计算机视觉的常用测试数据集和源码
    以下是computervision:algorithmandapplication计算机视觉算法与应用这本书中附录里的关于计算机视觉的一些测试数据集和源码站点,整理了下,加了点中文注解。ComputerVision......
  • 蓝鲸研运体系在腾讯内的应用实践
    蓝鲸是腾讯IEG十多年研运探索的经验与成果,积累了很多人的智慧与付出。由于腾讯IEG的业务特殊性,蓝鲸体系天生地展现出对异构业务的友好,避免了需要重复造轮子才能完成对多业务......
  • 医疗器械安全最佳实践
    全球各地对医疗器械安全的担忧与日俱增。在美国,由于连接设备的数量不断增加,以及网络攻击对患者的护理造成的破坏力,导致新的立法正在出台。2022年6月8日,美国众议院通过了H.......
  • Miller-Rabin 素性测试算法
    Miller-Rabin素性测试算法需要如下两个引理:1.费马小定理设\(p\)是素数,\(a\)为整数,且\((a,p)=1\),则\(a^{p-1}\equiv1\pmod{p}\)证明:考虑\(1,2,3,\dots,(p-1)\)......
  • 三. 基于Jenkins与Gitlab的CI/CD及DevOps实战 -2
    基于Jenkins与Gitlab的CI/CD及DevOps实战DevOps介绍:OPS部分职责:1.通过监控、告警、人工值守等方式保证应用程序的7*24的可用性。   2.系统选型、基础环境初始......
  • ZooKeeper 避坑实践:如何调优 jute.maxbuffer
    作者:子葵背景在日常运维ZooKeeper中,经常会遇到长时间无法选主,恢复时进程启动又退出,进而导致内存暴涨,CPU飙升,GC频繁,影响业务可用性,这些问题有可能和jute.maxbuffer的......
  • 火山引擎 DataLeap 的 Data Catalog 系统公有云实践
     DataCatalog通过汇总技术和业务元数据,解决大数据生产者组织梳理数据、数据消费者找数和理解数的业务场景。本篇内容源自于火山引擎大数据研发治理套件DataLeap......
  • 图解来啦!机器学习工业部署最佳实践!10分钟上手机器学习部署与大规模扩展 ⛵
    ......
  • CodeDay#5 启动报名| 带你深入探索支付宝终端动态化实践
    #01____CodeDay2021年首站:广州见时隔一年,mPaaSCodeDay回来了。在过去的一年中,我们通过与众多终端开发者在能力对接、需求沟通中发现,愈来愈多的研发团队面临业务需求爆......