持续集成之测试自动化

简介: continuous integration pipeline背景介绍持续集成(Continuous Integration)是Devops理念的一种实践过程,同时也是敏捷开发的具体表现形式。
img_3bc49a573e5fdad0e83d40c09767f938.png
continuous integration pipeline

背景介绍

持续集成(Continuous Integration)是Devops理念的一种实践过程,同时也是敏捷开发的具体表现形式。除了持续集成,还有持续交付(Continuous Delivery),持续部署(Continuous Deployment)等。这里我们着重介绍持续集成过程中的测试自动化(Test Automation),如果测试没有实现自动化的话,那么整个持续集成是不完善的,同时也不是高效的。因此自动化测试是持续集成过程中的重要一环。

img_20214e18df1f8d05aed30a6974d50b55.png
devops

测试自动化

自动化测试(Automated Test),很多团队都在做,但是往往效果不明显。究其原因还是对自动化测试的理解误区, 以为有了自动化后,就不需要手工测试了,因此将一些不适合做自动化的测试用例进行自动化,导致了投入产出比过高。同时,由于缺乏好的统一的测试框架支持,自动化测试脚本编写的复杂度过高,维护性差,耗费了测试人员大量的精力来编写和维护自动化测试用例。

img_914877290de78d7a85c86ca11917ad0a.png
Test Tools

基于此,我们在自动化测试实践过程中,选择了一款验收测试自动化测试框架Robot Framework,来作为我们的底层核心框架。同时基于RF框架,构建我们整个可维护性可扩展性的自动化测试套件架构。如下所示:

img_380f033fb248ca024d929ed49eef128e.png
Acceptance Test Suite

这个自动化测试套件架构具体分为三个大层,八个小层。我们分别来介绍:

平台层

平台层, 主要是提供测试用例运行环境,运行库的。对测试用例屏蔽了具体的底层技术细节,同时提供了一个统一的测试用例编写语法。
平台层,主要包括测试框架层,和测试库层。

测试框架层

测试框架层,我们选择Robot Framework 来作为基础框架,负责测试用例的解析,测试用例的执行,测试监控以及测试报告管理。也可以选择其他框架如Cucumber或者是TestNG等。

测试库层

测试库层,主要是与实际被测对象进行交互的工具封装层。如对Web测试工具Selenium的封装层Selenium2Lbirary,对接口测试工具requests的封装层RequestsLibrary等等。

资源层

资源层,主要是为测试用例提供资源的,如用户自定义的关键字资源,变量资源或者其他资源类型。这里重点关注关键字资源。

关键字层

关键字在资源层又被划分成三层,低阶关键字层,中阶关键字层,高阶关键字层。之所以进行这样的分层,主要是为了实现业务的分离,和用例的可维护性,可扩展性。
三层关键字在不同的测试对象上又可以有不同的表现方式,如针对Web测试对象,表现为页面对象层,页面逻辑层,业务流程层。

用例层

用例层,主要是测试套件和测试用例。概念比较明晰,不作具体介绍。

测试执行

为了能够使我们的自动化测试快速,稳定的运行,我们基于Docker搭建了一套分布式测试执行环境。如下图所示:


img_5f96f6485bc49587d0a606c67c0e3c4b.png
Test Environment In Docker

之所以用Docker来运行测试环境,是为了实现测试环境的独立,确保测试过程不受到系统环境影响。

img_77bf9d04445bd709e1a97a3fe0f83254.gif
example of CD-pipeline

帮助

目录
相关文章
|
1月前
|
敏捷开发 运维 测试技术
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第18天】 随着敏捷开发和DevOps文化的普及,持续集成(CI)已成为软件开发过程中不可或缺的组成部分。本文将深入探讨自动化测试在持续集成环境中的重要性,分析其如何提高软件交付速度、保障质量并减少人工干预。通过对现代软件工程实践中自动化测试策略的剖析,揭示了其在维护高效率和高质量软件产品中的核心地位。
31 7
|
1月前
|
敏捷开发 监控 jenkins
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第14天】 随着敏捷开发和持续集成(CI)的普及,自动化测试已成为确保软件质量和加速交付过程的重要环节。本文旨在深入探讨自动化测试在持续集成环境中的核心价值,分析其如何提高测试效率,减少人工错误,并保障产品的快速迭代与发布。通过对自动化测试工具、策略及最佳实践的综合评述,为读者呈现一个全面的自动化测试实施指南。
18 0
|
3月前
|
监控 测试技术 持续交付
自动化测试和持续集成/交付:提升软件质量和效率的关键
在当今快节奏的软件开发环境中,自动化测试和持续集成/交付已经成为了必不可少的工具和流程。通过自动化测试,开发团队可以更快地检测和修复缺陷,同时提高测试覆盖率和质量。而持续集成/交付则可以让开发者将代码快速、自动地构建、测试和部署到生产环境中。这篇文章将探讨自动化测试和持续集成/交付的优势和实现方式,以及如何在实践中有效地使用它们来提升软件质量和效率。
|
3月前
|
安全 jenkins 测试技术
自动化测试与持续集成/持续交付(CI/CD)的实践与应用
自动化测试是现代软件开发不可或缺的环节,它可以有效地提高测试效率、降低测试成本。而持续集成/持续交付(CI/CD)则是一种基于自动化的软件开发流程,能够将代码的开发、构建、测试和部署等过程无缝连接起来,从而实现快速迭代和部署。本文将结合实际案例,介绍自动化测试和CI/CD的实践与应用。
144 2
|
3月前
|
存储 测试技术 持续交付
自动化测试与持续集成/持续交付(CI/CD):优化软件开发流程的利器
自动化测试与持续集成/持续交付(CI/CD)是现代软件开发中至关重要的环节,通过将自动化测试与持续集成/持续交付相结合,可以实现开发流程的高效优化,提高软件质量和交付速度。本文将探讨自动化测试与CI/CD的概念、原理及其在软件开发中的重要性,以及如何实施这些技术以提升团队的协作效率和软件交付质量。
55 1
|
3月前
|
监控 测试技术 持续交付
自动化测试与持续集成/持续交付:加速软件开发的利器
在软件开发过程中,自动化测试与持续集成/持续交付(CI/CD)已经成为不可或缺的工具。本文将介绍自动化测试和CI/CD的概念及其在软件开发中的重要性,探讨其如何加速软件开发过程,提高质量和效率。
|
3月前
|
测试技术 持续交付 开发者
自动化测试与持续集成/持续交付:加速软件开发的利器
自动化测试与持续集成/持续交付(CI/CD)是现代软件开发中的重要环节。本文将介绍自动化测试和CI/CD的基本概念,探讨其对软件开发效率、质量和可靠性的影响,并分享一些实践经验和最佳实践。
|
1月前
|
敏捷开发 监控 Devops
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第15天】 本文旨在探讨自动化测试作为软件开发过程中不可或缺的一环,尤其在持续集成(CI)环境中的显著影响。通过深入分析自动化测试的实施策略和最佳实践,文章揭示了如何有效提升软件交付速度和质量。文中不仅讨论了自动化测试的基本概念和框架选择,还详细阐述了其在CI流程中的关键步骤及潜在挑战,并提出了相应的解决方案。
20 4
|
1月前
|
敏捷开发 测试技术 持续交付
探索自动化测试在持续集成环境中的关键作用
【2月更文挑战第15天】 随着敏捷开发和持续集成(CI)实践的普及,自动化测试已成为确保软件质量和加速产品上市速度的核心环节。本文将深入探讨自动化测试在持续集成环境中的重要性,分析其如何提高测试效率,减少人工干预的错误,并实现快速反馈循环。通过案例分析和最佳实践分享,我们将揭示自动化测试策略对提升软件开发流程的影响,以及如何有效地将其整合到现代软件生命周期管理中。
|
3月前
|
测试技术 Python
cypress 和allure 集成生成测试报告
cypress 和allure 集成生成测试报告
cypress 和allure 集成生成测试报告

热门文章

最新文章