UFT One 和版本控制系统

相关项: GUI 测试、API 测试和函数库

直接从 UFT One 使用版本控制系统,例如 SVN 或 Git。

受支持的版本

有关受支持的 SVN 和 Git 版本,请参阅支持矩阵

如果您的源文件保存在 ALM 项目或受版本控制的 ALM 项目中,请参阅 ALM 中的版本控制

返回页首

UFT One 设置为使用 Git 或 SVN

UFT One 内使用 Git 或 SVN 之前,必须在本地配置 Git 或 SVN:

  1. 在运行 UFT One 的计算机上安装 Git 或 SVN 客户端。

  2. 在计算机上设置 Git 或 SVN 工作区。有关详细信息,请参阅 Git 或 SVN 文档。

  3. UFT One 中,创建测试并将其保存在配置为使用 Git 或 SVN 的文件夹中。

  4. 使用标准 GIT 和 SVN 命令将源文件添加到 Git 或 SVN 中的存储库。

  5. 出现提示时,输入用户凭据:

    SVN 首次从 UFT One 添加、更新或提交到 SVN 存储库时,系统会提示您输入用户凭据。
    Git 首次推送到远程存储库时,系统会提示您输入用户凭据。

    要清除用户凭据,请选择“工具”>“清除所有凭据 (Git/SVN)”。系统会提示您在下一次更新或提交时输入它们。根据您使用的 Git 版本,可能还需要从 Windows 帐户中删除已存储的用户凭据:

    转到“控制面板”->“用户帐户”->“凭据管理器”->“Windows 凭据”,然后删除“普通凭据”下的所有 Git 凭据。

    备注: 仅当源文件受版本控制且先前已保存凭据时,“清除所有凭据 (Git/SVN)”选项才可用。

设置工作区并添加源文件后,相关图标将添加到解决方案浏览器中的测试节点。从此时起,您可以直接从解决方案浏览器中使用 SVN 和 Git 命令。

备注: 对于大型解决方案和速度缓慢的网络,SVN 和 Git 图标可能需要一些时间才会显示。

在这种情况下,您需要等到图标刷新后才能执行提交或更新操作。

返回页首

更新对源文件进行的更改

直接从解决方案浏览器更新更改。

只有独立的源文件 (即不依赖于父文件的文件,如对测试执行的操作) 可以直接从 UFT One 进行更新。

例如,如果要从测试中的一个操作或测试中的本地对象存储库更新更改,则必须提交测试。

要更新源文件,请执行以下操作:

SVN 右键单击该文件的名称 (或父文件的名称),然后选择“更新”
Git

确保包含该文件的文件夹与 Git 存储库同步。

右键单击该文件的名称,然后选择“Git 拉取”

备注: 要清除用户凭据,请参阅将 UFT One 设置为使用 Git 或 SVN 中的相关信息。

返回页首

提交对源文件进行的更改

直接从解决方案浏览器提交更改。

只有独立的源文件 (即不依赖于父文件的文件,如对测试执行的操作) 可以直接从 UFT One 进行提交。例如,如果要从测试中的一个操作或测试中的本地对象存储库提交更改,则必须提交测试。

要提交更改,请在 UFT One 中创建该文件后执行以下操作:

SVN

在解决方案浏览器中右键单击源文件 (或父文件) 的名称,然后选择“提交”

Git
  1. 确保包含该文件的文件夹与 Git 存储库同步。
  2. 在解决方案浏览器中,右键单击该文件并选择“Git 提交”。这会将源文件添加到本地存储库 (如有必要) 并提交更改。

    只能将测试和外部资源文件 (如函数库、对象存储库或恢复场景) 提交到存储库。

    备注: 另存为 .qfl.txt 文件的函数库支持 UTF-8 编码。这使您可以在 GIT 中比较、合并和管理它们。

    另存为 .vbs 文件或保存在较早的 UFT One 版本中的函数库只能在 GIT 中作为二进制资源进行管理。

  3. (可选,提交到远程存储库时) 在解决方案浏览器中,右键单击该文件并选择“Git 推送”

    “Git 推送”仅将本地存储库更新到远程存储库。它不会添加新的提交。

  4. 在打开的对话框中,输入您的个性化提交消息。如果将该字段保留为空,则会使用默认消息“UFT 提交”

备注: 如果外部源文件与测试 (如外部操作或函数库) 关联,则在提交测试时不会保存和提交外部文件。必须单独保存外部文件。

返回页首

将源文件与存储库版本进行比较

指定比较工具,以便可以在 UFT One 中执行差异比较。

要在 UFT One 中执行源文件的差异比较,请执行以下操作:

  1. 在“选项”对话框的“版本控制系统”窗格 (“工具”>“选项”>“常规”选项卡 >“版本控制系统”节点) 中,为每种类型的文件指定比较工具,例如 UFT One 资产比较工具。

  2. 在解决方案浏览器中,右键单击该文件的名称,然后选择“与上一修订版本比较”或“Git Diff”

    备注: 菜单中可用的命令取决于您使用的版本控制系统。

    将打开选定的比较工具,允许您执行差异比较。

返回页首

还原源文件

在解决方案浏览器中右键单击该文件的名称,然后选择“还原”UFT One 将重新加载保存在存储库本地副本中的上一版本,并删除您进行的更改。

返回页首

解决文件版本之间的冲突

当源文件版本之间存在冲突时,UFT One 将显示列出冲突的对话框,并允许您选择要保存哪个版本的文件。此外,还可以合并两个版本的文件 (如有必要)。

要解决冲突,请执行以下操作:

  1. 在打开的冲突列表对话框中,选择具有存储库冲突的文件。

  2. 在对话框底部,选择以下选项之一:

    使用我的更改 保存对文件所做的更改,并覆盖保存在存储库中的版本。
    使用他人更改 获取存储库中的版本并覆盖所做的更改。
    合并

    将两个版本合并在一起。

    必须在“选项”对话框的“版本控制系统”窗格 (“工具”> “选项”> “常规”选项卡> “版本系统”窗格) 中定义用于合并的特定工具。

    要合并 C# 文件等代码文件,请使用以下语法在“版本控制系统”窗格中指定合并工具:

    "Merge tool installation path" /base:%base /theirs:%their /mine:%mine /merged:%merged

    目前,不支持使用 BeyondCompare 进行合并。

    备注: 如果您没有合并工具,则“合并”选项不可用。但是,对于对象存储库文件,您可以按照手动合并对象存储库文件的版本冲突 - SVN手动合并对象存储库文件的版本冲突 - Git 中的步骤手动合并冲突。

  3. 提交更新的版本。

返回页首

手动合并对象存储库文件的版本冲突 - SVN

如果要检查并手动合并两个不同工作文件夹中的两个对象存储库文件之间的冲突,请按照以下说明进行操作:

配置设置

选择以下方法之一:

方法 如何配置设置
命令行工具

在命令行工具中输入以下语法:

"<UFT One 安装文件夹>\bin\QTPDiffApplication.exe" P1: "%base" P2: "%mine" FILE_TYPE: OR_FILE MERGED: "%merged folder"

其中 P1 为基本版本的文件路径,P2 为您的版本的文件路径,MERGED 为最终合并版本的文件路径。我们建议您将 MERGED 参数设置为与 P1 相同的值。

注: 确保在每个参数后插入空格。

SVN 设置

配置差异查看器和合并工具

备注: 您只需在第一次时配置设置即可。如果外部工具的路径发生更改,则需要删除原始设置并重新配置。

  1. 右键单击并选择“TortoiseSVN”->“设置”>“差异查看器”
  2. 在“设置”对话框的右侧窗格中,单击“高级”,然后在“高级差异设置”对话框中单击“添加...”

  3. 在“添加特定于扩展的差异程序”对话框中,设置以下参数。

    文件名、扩展名或 MIME 类型: 输入对象存储库文件的文件扩展名,即 .tsr 或 .bdb。

    外部程序: 单击右侧的按钮以选择比较工具 QTPDiffApplication,并将 P1: %base P2: %mine FILE_TYPE: OR_FILE MERGED: %Merged 添加到工具路径的末尾。

    确保在每个参数后插入空格。

  4. 在对话框中单击“确定”,然后在右侧窗格中单击“应用”
  5. 为“合并工具”添加相同的设置。

解决冲突

  1. 要合并两个文件,请执行以下操作:

    • 命令行工具: 运行上表中的语法。
    • SVN 设置: 配置设置后,右键单击存在冲突的对象存储库文件,然后选择“TortoiseSVN”->“编辑冲突”

    将打开“资产比较工具”对话框,其中左侧显示基本版本 (远程),右侧显示您的版本 (本地)。

  2. 检查每个冲突,然后单击左侧的“从远程文件获取对象”按钮 以使用基本版本,或单击“从本地文件获取对象”按钮 以使用您的版本。
  3. 解决完冲突后,关闭对话框。

返回页首

手动合并对象存储库文件的版本冲突 - Git

如果要检查并手动合并两个不同分支中的两个对象存储库文件之间的冲突,请按照以下说明进行操作:

配置设置

选择以下方法之一:

方法 如何配置设置
Git 设置

配置差异查看器和合并工具

备注: 您只需在第一次时配置设置即可。如果外部工具的路径发生更改,则需要删除原始设置并重新配置。

  1. 右键单击并选择“TortoiseGit”->“设置”>“差异查看器”
  2. 在“设置”对话框的右侧窗格中,单击“高级”,然后在“高级差异设置”对话框中单击“添加...”

  3. 在“添加特定于扩展的差异程序”对话框中,设置以下参数。

    扩展名: 输入对象存储库文件的文件扩展名,即 .tsr 或 .bdb。

    外部程序: 单击右侧的按钮以选择比较工具 QTPDiffApplication,并将 P1: %base P2: %mine FILE_TYPE: OR_FILE MERGED: %Merged 添加到工具路径的末尾。

    确保在每个参数后插入空格。

  4. 在对话框中单击“确定”,然后在右侧窗格中单击“应用”
  5. 为“合并工具”添加相同的设置。
.gitconfig 文件

将以下语法添加到 .gitconfig 文件中:

[diff]
tool = QTPDiffApplication.exe
[difftool "QTPDiffApplication.exe"]
cmd = "<UFT One 安装文件夹>\bin\QTPDiffApplication.exe" P1: %base P2: %mine FILE_TYPE: OR_FILE MERGED: %merged
[merge]
tool = QTPDiffApplication.exe
[mergetool "QTPDiffApplication.exe"]
cmd = "<UFT One 安装文件夹>\bin\QTPDiffApplication.exe" P1: %base P2: %mine FILE_TYPE: OR_FILE MERGED: %merged

解决冲突

  1. 配置设置后,右键单击存在冲突的对象存储库文件,然后选择“TortoiseGit”->“与上一版本的差异”

    将打开“资产比较工具”对话框,其中左侧显示基本版本 (远程),右侧显示您的版本 (本地)。

  2. 检查每个冲突,然后单击左侧的“从远程文件获取对象”按钮 以使用基本版本,或单击“从本地文件获取对象”按钮 以使用您的版本。
  3. 解决完冲突后,关闭对话框。

返回页首

Git 分支

UFT One 支持使用以下命令的 Git 分支

创建分支

使用当前打开的测试新建 Git 分支:

  1. 在解决方案浏览器中,右键单击测试并选择“Git 创建分支”

  2. 输入新的分支名称,然后选择基本分支,例如 master

  3. (可选) 选择以自动切换到新分支。

    如果选择此选项,UFT One 会从新分支重新打开测试。如果未选择此选项,UFT One 会从您已在其中启动测试的同一分支再次打开测试。

切换分支

切换到不同 Git 分支中的同一测试:

  1. 在解决方案浏览器中,右键单击测试并选择“Git 切换分支”
  2. 选择要切换到的分支,以及是否要使用本地更改覆盖工作树。

UFT One 将从选定分支重新打开测试。

合并分支

将其他分支中的数据合并到当前在 UFT One 中打开的分支中。

在解决方案浏览器中,右键单击测试并选择“Git 合并分支”

数据将合并到选定分支中。UFT One 将重新打开在合并之前已在其中启动测试的同一分支中的测试。

返回页首