高级测试工程师必备技术:用Git版本控制自动化测试代码

news2025/1/12 22:57:53

初识Git版本控制

自动化测试代码反复执行,如果借用持续集成工具会提高测试效率,那么需要我们把自动化测试代码发布到正式环境中,这时候用Git版本控制工具高效、稳定、便捷。

分布式版本控制

Git可以把代码仓库完整地镜像下来,有完整的历史记录,它可以与远端代码库进行交互。

简史

Git诞生于2005年,速度快,极适合管理大项目。

Git是什么

其他版本控制系统如SVN,是随时间变化的差异性文件比较,在某时间段某些文件进行更新。

Git是快照流,存储项目随时间改变的快照,几乎大部分操作都只需要访问本地文件和资源。保证完整性,用哈希Hash,一般只添加数据,不删除。

Git三种状态:

已修改:在工作区修改文件,但没保存到数据库

已暂存: 在暂存区对已修改的文件做标记,使其包含在下次提交的快照中

已提交:在Git目录安全地保存数据到本地数据库

基本Git工作流程:

①工作区修改文件;

②暂存区将下次提交的更改选择性暂存,修改部分添加到暂存区;

③提交更新,找到暂存区的文件,将快照永久保存在Git目录。

命令行

所有人都有命令行工具,会命令行则应该会GUI。

安装Git

本次实践安装的最新版2.36.0,官网下载windows版本https://git-scm.com/download/win。

初次运行Git前的配置

  1. 设置用户信息,以下命令: git config --global user.name “” git config --global user.email “” 如果想给特定项目设置用户信息,则在该项目目录下运行无--global的命令。

  2. 设置文本编辑器,如未配置,Git会使用操作系统自带的编辑器。 设置notepad++为文本编辑器: git config --global core.editor “’d:\dev\notepad++\notepad++.exe” -multiInst -notabbar -nosession -noPlugin”

  3. 检查配置信息:

git config --list

可逐项检查,如:

git config username

获得帮助

git help +Verb,例如git help config。如果不用全面只需快速参考,使用命令git +Verb -h,例如git add -h。

Git基础

获取Git仓库

两种获得Git项目仓库的方式:

①对尚未进行版本控制的本地目录转换为Git仓库;

②从其他服务器克隆一个已存在的Git仓库。

(1)对已存在目录中初始化仓库

如果有一个尚未进行版本控制的项目目录,想要用Git控制它,那么需要进入该项目目录中。

在Windows上:

cd c/user/my_project

之后执行:

git init

该命令将创建名为.git的子目录,这个子目录含有你做初始化的Git仓库中所有的必须文件,这些文件是Git仓库的骨干。这时,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。

如图所示:

图1

图2

图3

如果在一个已存在文件的文件夹(非空文件夹)中进行版本控制,应该开始追踪这些文件并进行初始提交。

可以通过git add命令指定所需的文件进行追踪,然后执行git commit:

git add *.c

git add LICENSE

git commit -m ‘initial project version’

如图所示:

图4

这样已经得到了一个存在被追踪文件与初始提交的Git仓库。

(2)克隆现有的仓库

如果想获得一份已经存在了的Git仓库的拷贝,比如说,想为某个开源项目贡献自己的一份力,这时就要用到git clone命令。

如果对其他VCS系统(比如Subversion)很熟悉,请留心以下所使用的命令是“clone”而不是“checkout”。这是Git区别于其他版本控制系统的一个重要特性,Git克隆的是该Git仓库服务器上的几乎所有数据,而不是仅仅复制完成你的工作所需要文件。

当你执行git clone命令的时候,默认配置下远程Git仓库中的每一个文件的每个版本都将被拉取下来。实际上,如果服务器磁盘坏掉了,通常可以使用任何一个克隆下来的用户端来重建服务器上的仓库(虽然可能会丢失某些服务器端的hook设置,但是所有版本的数据仍在)。

克隆仓库的命令是git clone。比如,要克隆Git的自建项目HTMLTestRunner,可以用下面的命令:

git clone https://github.com/mingming1205/HTMLTestRunner

这会在当前目录下创建一个名为“HTMLTestRunner”的目录,并在这个目录下初始化一个.git文件夹,从远程仓库拉取下所有数据放入.git文件夹,然后从中读取最新版本的文件的拷贝。

如果打开这个新建的HTMLTestRunner文件夹,会发现所有项目文件已经在里面了,准备就绪等待后续的开发和使用。

如下图:

图5

图6

如果想在克隆远程仓库的时候,自定义本地仓库的名字,可以通过额外的参数指定新的目录名:

git clone https://github.com/mingming1205/HTMLTestRunner myhtmltestrunner

这会执行与上一条命令相同的操作,但是目标目录名变成了myhtmltestrunner。

如下图:

图7

图8

Git支持多种数据传输协议。以上的例子使用的是https://协议,不过也可以使用git://协议或者使用 SSH 传输协议,例如user@server:path/to/repo.git。

至于所有这些协议在服务器端是如何配置使用,以及各种方式之间的利弊请查看“在服务器上搭建 Git”的介绍。

记录每次更新到仓库

执行命令:

git commit -m “描述”

查看提交历史

执行命令:

git log

如果附带一系列总结的文字,执行命令:

git log --stat

如果限制日志查看数量,执行命令git log -p -2,当退出log时,在冒号“:”后面敲q即可。

以下表格引自官网:

感谢大家的阅读,希望你们能从中有所收获!

最后:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!其中包括了有基础知识、Linux必备、Mysql数据库、抓包工具、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试等。

这些测试资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

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

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

相关文章

Mybatis整合MP

Mybatis整合MP 案例准备: 创建测试表: -- 创建测试表 CREATE TABLE tb_user (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键ID,user_name varchar(20) NOT NULL COMMENT 用户名,password varchar(20) NOT NULL COMMENT 密码,name varchar(30) …

kafka性能指南

kafka性能指南 1.绪论 首先是epoll模型,epoll使其在框架上得以使用mmp和回写高性能。 epoll模型具体可以看linuxIO那一个笔记,这里简单讲一下 首先是epoll模型,模型要求有一组fd由单独线程监控,然后app去干别的事,当…

Arduino开发实例-MAX30100 脉搏血氧仪传感器驱动

MAX30100 脉搏血氧仪传感器驱动 1、MAX30100介绍 MAX30100 脉搏血氧仪和心率传感器是一款基于 I2C 的低功耗即插即用生物识别传感器。 MAX30100 是一款集成脉搏血氧饱和度和心率监测传感器解决方案。 它结合了两个 LED、一个光电探测器、优化的光学器件和低噪声模拟信号处理,…

【蓝桥杯Web】第十四届蓝桥杯(Web 应用开发)模拟赛 2 期 | 精品题解

🧑‍💼 个人简介:一个不甘平庸的平凡人🍬 🖥️ 蓝桥杯专栏:蓝桥杯题解/感悟 🖥️ TS知识总结:十万字TS知识点总结 👉 你的一键三连是我更新的最大动力❤️! &…

降本增效利器?Share Creators智能数字资产管理系统真香!

降本增效似乎是一个持续又永久的话题。尤其在今年, 显得格外的重要~ 疫情不知不觉已经伴随了我们三年,在各行各业都受到了疫情所带来巨大冲击的背景下,降本增效对很多企业来说不再是锦上添花,而可能是一条唯一的出路。 随着市场…

荧光素PEG活性酯,FITC-PEG-NHS,FITC-PEG-SCM,荧光素聚乙二醇琥珀酰亚胺乙酸酯

中文名称:荧光素聚乙二醇琥珀酰亚胺乙酸酯 英文名称:FITC-PEG-NHS,FITC-PEG-SCM 分子量: 1K,2K,3.4K,5K,10K(黄色、橙黄色或者橘黄色固体或者粉末) 端基取代率:≥90% 原料分散系数PDI:≤1.05 纯度:98%…

Vue简单示例——weex跨平台解决方案

简单介绍: Weex的出现主要解决了Web开发的应用频繁发布版本和多端研发两个问题,同时解决了前端语言性能差异和显示效果受限的问题。 什么是weex: Weex是使用流行的Web开发体验来开发高性能原生应用框架。使开发者可以用JS语言和前端开发经…

若依框架解读(微服务版)—— 3.验证码与登录

验证码 查看验证码的请求: 之前已经讲过http://localhost/dev-api/code会在前端重写为http://localhost:8080/code。 请求第一步会进入网关模块 网关相关知识:Gateway基于的WebFlux框架,与我们平时用的WebMVC是不太一样的。网关由Route&#…

PHP的Exception

# 简单解释 Exception是PHP的内置类,用来处理异常的基类 https://www.php.net/manual/zh/class.exception.php php class Exception implements Throwable { /** The error message */ protected $message; /** The error code */ protect…

MVC升级swagger No operations defined in spec!

不要嘲笑农民工种田怎么不香了,要反思为什么别人种田收入高。 以下是农民工即将转行挖野菜之前的种田心得。 1No operations defined in spec! 2Failed to load API definition. Failed to load API definition. 经过多次试验测试&#xff0…

光盘如何重装系统教程

​如果你想用光盘来重装自己的电脑系统,但是不知道怎么操作的话,下面让我们一起来看一下光盘重装系统的步骤吧。 工具/原料: 系统版本:win7 品牌型号:惠普 光盘重装系统: 1.首先我们需要先打开电脑上的光…

VUE 的生命周期

Vue 实例有一个完整的生命周期,也就是从创建之前→创建完成→挂载之前→挂载完成→更新渲染之前→渲染完成→销毁之前→销毁完成等一系列过程,我们称这是 Vue 的生命周期。通俗说就是 Vue 实例从创建到销毁的过程,就是生命周期。每一个组件或…

22.11.20补卡 javaSE多线程学习笔记

自用 并发编程 多个任务同时执行 并发原理: CPU分时间片交替执行, 宏观并行, 微观串行; 由OS调度 进程: OS中并发的一个任务 线程: 在一个进程中,并发的一个顺序执行流程 每当执行新的进程时, 之前的进程都会暂且暂停, 由于cpu的时间片非常短, 人感觉不出来 线程的三个要素: CP…

RemObjects SDK for Delphi

RemObjects SDK for Delphi RemObjects SDK for Delphi是一个高级远程处理框架,它允许您从局域网内或Internet上的客户端远程访问驻留在服务器上的对象。RemObjects SDK for Delphi将允许您构建客户端和服务器应用程序,使用高度优化的Smart Services实现…

Seata AT模式下的源码解析(三)

7. 网络请求 7.1 TransactionManager 事务管理器,在客户端主要用于发起事务请求、提交事务、回滚事务请求等,用于跟 TC 进行通信的类,其中获取当前接口的实现类是通过 TransactionManagerHolder 进行获取,然后通过 SPI 接口获取…

【没用的小知识又增加了--电机】

一些乱七八糟的笔记.. 怎么计算电流环带宽 https://www.csdn.net/tags/MtTaMgysMTgwMTQwLWJsb2cO0O0O.html 理解电机控制系统中的带宽问题 - 知乎 电机控制电路程序带宽和硬件带宽的关系,应该如何设计相关参数? - 知乎 怎么理解Clarke和park变换&am…

[附源码]java毕业设计西柚网购物系统

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

论文阅读【5】Attention Is All You Need

1.概述 1.1 论文相关 题目:注意你所有需要的(Attention Is All You Need)发表时间:2017出版:NIPS原文地址:经典模型了,网上一搜就能搜索到代码: 1.2 动机 因为循环神经网络通常是…

Poison Ink: Robust and Invisible Backdoor Attack 论文笔记

1. 论文信息 论文名称Poison Ink: Robust and Invisible Backdoor Attack作者Jie Zhang(中国科学技术大学)会议/出版社IEEE Transactions on Image Processingpdf📄在线pdf 2. introduction 文章提出了一种新的攻击方式称为“Poison Ink”…

CRF条件随机场

文章目录定义转移概率 & 发射概率损失函数单条路径的求解viterbi解码贪婪算法维特比算法参考解读定义 CRF:condition random field 解决序列预测问题。比如TTS的前端分词,实体命名识别等。 转移概率 & 发射概率 发射分数:将输入预测…