5年测试总结,自动化测试DevOps-CICD持续集成流程设计...

news2024/11/16 9:31:29

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

测试进阶,DevOps和持续集成/交付,了解DevOps的基本概念、原理和工具,了解持续集成/交付的基本流程,熟悉Docker、Kubernetes等容器技术。

下面我们就来聊聊
DevOps:CICD流程设计思路

代码管理

选择代码管理工具:目前比较流行的代码管理工具有Git、SVN等,可以根据具体需求选择适合的工具进行代码管理。

创建代码仓库:在代码管理工具中,可以创建一个代码仓库,用于管理整个项目的代码。

创建分支:在代码仓库中,可以创建多个代码分支,用于管理不同的代码开发、测试和发布环境。

提交代码:开发人员可以将他们编写好的代码,通过代码管理工具提交到指定的分支上,代码管理工具会记录每次提交的代码版本,包括代码修改的内容、时间、开发人员等信息。

合并代码:在多人协作开发过程中,不同人员提交的代码可能会存在冲突,需要进行代码合并,将不同的代码修改合并成一个版本。

版本控制:使用代码管理工具的版本控制功能,可以轻松回溯、浏览和比较不同版本的代码,便于开发人员了解代码的历史演变,及时发现和解决问题。

分支管理:在不同的阶段,可以根据需求创建新的分支,例如开发、测试、预发布、生产等不同的分支,便于不同阶段的协同开发和测试。

自动化流程构建

可以使用Jenkins、Travis等来实现,通过定义构建任务和配置相关的参数,可以实现自动编译、打包、部署等操作,并生成构建报告,

环境准备:首先,需要在构建机器上安装构建工具和相关编译器等运行所需的环境。同时,需要配置好构建环境,如JVM、Node.js、Python等环境。

代码获取:构建过程中需要从版本控制仓库中获取代码,通常使用Git进行代码仓库的管理。

依赖管理:根据项目需要,安装相应的依赖库,如包管理工具Maven、NPM等。

编译:将代码编译成可执行文件。

打包:将编译后的文件进行打包,生成可执行的应用程序、库文件或者容器镜像等。

部署:将应用程序部署到指定的环境中进行测试,进行验证并记录测试结果。

编译输出:将编译打包后的文件输出到指定的目录中,供以后的构建和部署使用

自动化测试

对软件进行自动化测试,包括单元测试、集成测试、验收测试等,以确保软件质量。

选择自动化测试工具:常用的自动化测试工具有Selenium、Appium、Robot Framework、JMeter等,可以根据具体的测试需求选择适合的工具。

计划测试用例:在自动化测试前,需要先规划测试用例,并将其转化为可执行的测试脚本。测试用例应该基于需求分析、设计文档等项目规范,涵盖功能测试、性能测试、安全性测试等各个方面。

编写测试脚本:基于给定的测试需求,编写相应的自动化测试脚本,可以使用多种编程语言进行脚本编写,如Java、Python、Bat、Shell等。

配置测试环境:在进行自动化测试前,应该配置相应的测试环境,包括测试服务器、数据库等必要的环境。

自动化部署

将构建好的软件自动化部署到测试或生产环境中,可以使用容器编排工具如Kubernetes,或利用自动化脚本实现。

准备部署环境:在进行自动化部署前,需要先准备好部署环境,包括服务器、数据库、网络等。

创建部署流程:根据应用程序或系统的特点和需求,创建一个自动化部署的流程,通常采用自动化部署工具,如Jenkins、Ansible、Octopus Deploy等。

编写部署脚本:根据部署流程编写相应的脚本,完成自动化部署的各个步骤。脚本需要与部署工具集成,通过命令行或API接口来调用。

配置自动化部署工具:将自动化部署脚本交给相应的自动化部署工具,进行配置,包括安装、配置、测试等。

运行自动化部署:运行部署工具,将应用程序或系统的代码和相关配置文件自动化地部署到生产环境中。

验证和测试:在自动化部署完成后,需要进行验证和测试,确保应用程序或系统在生产环境中正常运行,包括性能测试、功能测试、安全测试等。

监控和管理:自动化部署完成后,需要对应用程序或系统进行实时监控和管理,以确保它们能够持续地稳定运行。

测试持续监控

对软件进行监控,包括性能监控、日志监控、故障监控等。

确定监控指标:根据应用程序或系统的特点和需求,确定需要收集和监控的关键性能指标,如响应时间、吞吐量、错误率等。

选择监控工具:根据监控指标的需求,选择合适的监控工具,如Zabbix、Nagios、Grafana等。这些工具通常提供可视化面板展示监控指标信息,一些工具也会提供报警机制,可以在指标达到阈值时触发报警操作,保证管理员及时发现异常情况。

配置监控工具:根据选择的监控工具,进行相应的配置,包括监控指标的收集、存储、分析和展示等。

监控应用程序或系统:启动监控工具,开始监控应用程序或系统的运行状态。当监控指标出现异常或错误时,监控工具会发出报警信息。

分析监控数据:对收集到的监控数据进行分析,通过对性能指标、错误日志、异常行为等的分析,发现应用程序或系统的问题并及时解决。

持续改进:通过对监控指标和数据的不断分析,找到应用程序或系统的瓶颈,进行优化和改进,并验证其效果。这样可以不断提升应用程序或系统的性能和稳定性。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

无论你遇到多大的挑战和困难,都要记得保持积极向上的心态,勇往直前,坚持不懈。因为只有这样,才会最终实现自己的目标,收获成功和幸福。

每个人生命的长度是一定的,但我们所拥有的时间却是不确定的。因此,让我们珍惜每一分每一秒,努力奋斗,成为更好的自己,给生命留下更精彩的回忆。

坚持、努力、毅力,是成功的关键。当我们面对挫折时,不要轻易放弃,而应该从失败中汲取经验教训,不断调整自己的方向和方式,让自己变得更加强大、更加优秀。

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

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

相关文章

JS对Json数组进行抽取 获取key: “value“

这篇文章不是拿key或value 是抽取需要的 key: “value” 【必须是单一数组 若是多组数据需要for循环】 // row 是json串 !!! 一、我有一个单一的json【row】 只要 id 和 appStatus 且分开成新数组 let list [];for (var key in row) {var temp {}if (key "id") {…

MyBatis-Plus多数据源dynamic-datasource解决多线程情境下数据源切换失效问题

前言:项目中使用MyBatis-Plus多数据源dynamic-datasource,完成多数据源的切换;但是在并发场景下,我们会发现线程会一直访问默认数据源(配置的Master数据),并没有访问我们在上一步切换后的数据源…

如何把电脑文件备份?本指南很详细

概述:当文件发生丢失的时候,如果我们有备份,直接进行还原就可以了。可见备份的重要性。如何把电脑文件备份?本文将为大家详细介绍。 一、为什么要备份文件 我们在电脑上面会保存很多文件,有的文件是很重要的&#xf…

基于vfw的局域网语音聊天室系统源码论文

语音视频聊天 UDP套接字的运用 在实现语音视频聊天时,采用的是基于UDP套接字的点对点模式,而UDP面向的是无连接的数据服务,其套接字的使用如图10所示。 图10 UDP套接字的使用 视频的捕获 利用VFW接口,视频捕获可以分为以下几个步骤: 建立视频采集窗口…

如何把数据库中的数据显示到页面

主要内容:使用JDBC访问数据库中数据(Java Web数据可视化案例) 文章目录 前期准备:案例:第一步:创建数据库及数据第二步:编写实体类第三步:编写Dao类第四步:编写Servlet代…

SpringBoot中使用redis事务

本文基于SpringBoot 2.X 事务在关系型数据库的开发中经常用到,其实非关系型数据库,比如redis也有对事务的支持,本文主要探讨在SpringBoot中如何使用redis事务。 事务的相关介绍可以参考: 0、起因 在一次线上事故中,我们…

与春相拥,在职读研邂逅中国人民大学与加拿大女王大学金融硕士项目何其有幸

工作几年后的你是否有冒出在职读研的想法?或许你为此纠结了一段时间,在职读研要考虑到的因素众多,年龄、精力分配等,工作几年,经历了职场的磨练,更能知道自己家想要的是什么,对于是否读研会有一…

红海云签约长久数科,引领汽车流通行业人力资源数字化创新

上海铂中数字科技有限公司(以下简称“长久数科”)是国内领先的数字化汽车供应链服务企业,致力于通过整合客户资源、技术资源、产业链配套资源以及地面服务资源,打造一站式服务的汽车生态大数据SaaS平台。 近日,长久数…

编译原理陈火旺第三版第六章课后题答案

下面的答案仅供参考! 1.按照表6.1所示的属性文法,构造表达式(4*71) *2的附注语法树。 答: 首先考虑最底最左边的内部结点,它对应于产生式F→digit,相应的语义规则为F. val: digit.lexval,由于这个结点的子结点digit的属性digit . lexval的…

一文彻底理解Java 17中的新特性密封类

密封类的作用 在面向对象语言中,我们可以通过继承(extend)来实现类的能力复用、扩展与增强。但有的时候,有些能力我们不希望被继承了去做一些不可预知的扩展。所以,我们需要对继承关系有一些限制的控制手段。而密封类…

android framework-ActivityManagerService(AMS)上

一、SystemServer android-10.0.0_r41\frameworks\base\services\java\com\android\server\SystemServer.java 1.1、startOtherService AMS初始化完成后,会调用systemReady方法。 mActivityManagerService.systemReady(() -> {Slog.i(TAG, "Making service…

springboot +flowable,简单实现工作流基础功能的demo例子

一.简介 对于flowable是什么以及关于此框架的具体信息可以参看此项目的官方文档:https://www.flowable.org/docs/userguide/index.html Flowable is a light-weight business process engine written in Java.这是官网文档对此框架的完美解释:Flowable…

NetApp AFF C 系列全闪存存储解决方案

NetApp AFF C 系列: “C”代表“酷炫”(Cool) 采用最新的容量闪存技术,辅以若干一流的智能技术,您将获得一个经济实惠的闪存解决方案,它重新定义了安全性、可扩展性和可持续性。 为什么选择 AFF C 系列的容量闪存解决方案? 实现…

jmeter获取图片验证码-解密图片并识别

说明: 关于图片验证码的处理方式有三种方法:一是让开发屏蔽验证码,二是让开发后端指定一个万能验证码,三是使用OCR工具进行图片验证码的解密及识别,推荐使用前两种方法最省事; OCRServer工具识别图片验证码…

Netty核心源码分析(二),Netty的Server端接收请求过程源码分析

文章目录 系列文章目录一、连接请求接受过程源码分析1、事件的值2、processSelectedKeys获取事件(1)doReadMessages方法(2)pipeline的fireChannelRead方法(3)ServerBootstrapAcceptor的channelRead方法 3、…

关于数据挖掘和数据集成?

按照数据的生命周期,我们通常将大数据技术分为数据集成、数据存储、批流处理、数据查询与分析、数据调度与编排、数据开发、BI 7 个部分。 可以看到数据集成在数据生命周期最前面的位置,它负责将多个来自不同数据源的数据聚合存放在一个数据存储中&…

分布式任务调度框架Power-Job

分布式任务调度框架的由来及对比 在大型业务业务系统中,不可避免会出现一些需要定时执行需求的场景,例如定时同步数据,定时清洗数据,定时生成报表,大量机器一同执行某个任务,甚至有些需要分布式处理的任务…

中继器+js组件化GIS地图

虽然可以使用JavaScript注入的方式将GIS地图嵌入Axure,但每次使用地图都需要重复嵌入并修改代码,不太方便。那么,能不能实现组件化呢?我们可以使用中继器(repeater)将常用的地图参数提取出来,通…

力扣题库刷题笔记406-根据身高重建队列

1、题目如下: 2、个人Python代码实现 这里需要单独备注一下截图中第21行代码: 上图可以看到,已经对[5, 2]等元素进行了遍历循环,且[5, 2]左侧确实只存在[7, 0][6, 1]两个元素身高高于他,但是继续[5,0]循环完成后&#…

@Async异步线程:Spring 自带的异步解决方案

前言 在项目应用中,使用MQ异步调用来实现系统性能优化,完成服务间数据同步是常用的技术手段。如果是在同一台服务器内部,不涉及到分布式系统,单纯的想实现部分业务的异步执行,这里介绍一个更简单的异步方法调用。 对于…