实践 DevOps 测试策略

news2025/1/14 18:33:55

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在vscode、remix中结合hardhat编译部署合约

创建 hardhat 工程 # 创建npm空项目,注意这里要选择合约项目对应的文件目录 npm init # 安装 hardhat 环境,这里安装的版本 2.11.1 npm install --save-dev hardhat2.11.1 # 创建工程 npx hardhat首先创建 npm 空项目,注意这里要选择合约项目…

Linux编程环境

一、实验目的 1.熟悉Linux下C语言程序设计的基本步骤 2.掌握gcc编译器的各种参数的使用方法 3.掌握gcc编译器创建函数库的方法 4.掌握gdb调试程序的方法 5.掌握多文件编译中的makefile的用法 二、实验软硬件要求…

matlab学习笔记(八)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 matlab学习笔记(八)一、傅里叶变换的MATLAB求解二、连续时间信号的频谱图三、MATLAB分析LTI系统的频率特性一、傅里叶变换的MATLAB求解 MATLAB的symb…

大学生网页设计制作作业实例代码 (全网最全,建议收藏) HTML+CSS+JS

文章目录📚web前端期末大作业 (1500套) 集合一、网页介绍二、网页集合三、作品演示A电影主题B漫画主题C商城主题D家乡主题E旅游主题F餐饮/美食主题G环境主题H游戏主题I 个人主题K体育主题L博客主题M汽车主题N文化主题P美妆主题Q企业主题R教育主题S其他主题&#x1f…

Docker的私有仓库部署——Harbor

一.Docker原生私有仓库—— Registry 1.1 Registry的简单了解 关于Docker的仓库分为私有库和公有仓库,共有仓库只要在官方注册用户,登录即可使用。但对于仓库的使用,企业还是会有自己的专属镜像,所以私有库的搭建也是很有必要的…

力扣(LeetCode)1780. 判断一个数字是否可以表示成三的幂的和(C++)

进制转换 转换 333 进制,如果每一位非 000 即 111 ,returntruereturn\ truereturn true (数字 000 除外)。 如果任意一位为 222 ,returnfalsereturn\ falsereturn false 。 证明: 对于第 ppp 位, 如果 p0p0p0 &#…

数据结构——树和二叉树最全总结(期末复习必备)

目录 树和二叉树 树的基本术语(均以上图b为例): 遍历二叉树: 线索二叉树: 树的存储结构: 树与二叉树的转换(利用的就是把二叉树和树表示成相同的二叉链表): 森林与二…

KubeSphere 接入外部 Elasticsearch 最佳实践

作者:张坚,科大讯飞开发工程师,云原生爱好者。 大家好,我是张坚。今天来聊聊如何在 KubeSphere 中集成外置的 ES 组件。 KubeSphere 在安装完成时候可以启用日志组件,这样会安装 ES 组件并可以收集所有部署组件的日志…

索引优化学习

背景 最近做查询优化,学到的。字段长度,索引长度联合索引计算是否使用范围查询使用索引 字段长度(varchar) 只谈论varchar:首先我们建表varchar(20) 中的20是字符数。看你的数据库编码 执行:show creat…

支持多种网关类型!米尔基于Zynq-7010/20开发平台工业网关设计应用

随着工业物联网的飞速的发展,5G时代的到来,工业控制系统在生产领域应用越来越广泛,工业物联网为未来工业控制系统灵活性和可扩展性的需求提供了支持。工业物联网使我们的生产数据可以进行规模化集中存储,并利用高速采集、云计算等…

ChatGPT国产平替出现了:APP商店就能下载,还可给AI加人设,背后公司刚成立3个月...

明敏 发自 凹非寺量子位 | 公众号 QbitAIChatGPT太火爆谁不想上手试试?但注册复杂、服务器拥挤……着实有点麻烦。不过很快就有极客网友指路,说国内其实已经有类似的APP上线了,也是上知天文下知地理的那种。比如聊聊《三体》,还会…

Transformer 训练优化

前言 自 BERT 出现以来,NLP 领域已经进入了大模型的时代,大模型虽然效果好,但是毕竟不是人人都有着丰富的 GPU 资源,在训练时往往就捉襟见肘,出现显存 out of memory 的问题,或者训练时间非常非常的久&…

web期末大作业:基于html+css+js制作深圳大学网站(13页) 学校班级网页制作模板 学生静态HTML网页源码

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

【easypoi 模板导出嵌套 list 问题】

easypoi 模板导出多 list 问题1背景1.1 espoi 模板定义1.2 导出结果1.3发现共享单车的数据没有显示,手动操作取消共享单车的单元格合并1.4手动取消单元格合并后数据,正常再把框线画好1.5 代码操作:用 esaypoi 处理到1.2,用基础 po…

聊聊与前端工程师天然互补的 Serverless

作为前端工程师,我们的使命是为用户提供良好的前端用户体验。随着云原生时代的到来,显而易见的,我们能做的更多了。Serverless 产品的特点是免运维、按量付费和自适应弹性,所以我们可以利用云上的各种 Serverless 能力&#xff0c…

《程序员的自我修养》程序实现的两大环境

学习内容 翻译环境 预处理 编译 汇编 链接 执行环境 在标准C的任何一种实现中,都存在两个不同的环境: 1.翻译环境:在这个环境中,源代码被翻译成为可执行的机器指令。 2.执行环境:用于执行实际的代码 在VS2022中&…

字符串的读入方式

文章目录1、scanf2、fgets()3、cin4、cin.getline()5、getline()1、scanf scanf只能读入不带空格的字符串,遇到空格则结束。scanf只能读入字符数组,不能读入string。scanf在读入的时候,会自动在字符串的末尾加上’\0’。定义字符数组长度时&…

虚表指针在C++类的继承/多态与重载中的基本逻辑

文章目录前言重载继承虚函数虚函数表动态绑定的实现析构函数构造函数多态子类直接继承父类的方法,不覆盖多重继承纯虚函数前言 C在C语言的基础上增加了类的概念,而类的最关键的特性就是三个: 继承多态重载 这篇文章想接着上两篇C相关的文章…

[附源码]Python计算机毕业设计SSM基于推荐算法的汽车租赁系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java动物爱心救助平台s9dza

首先选择计算机题目的时候先看定什么主题,一般的话都选择当年最热门的话题进行组题,就比如说,今年的热门话题有奥运会,全运会,残运会,或者疫情相关的,这些都是热门话题,所以你就可以…