0

有没有办法管理具有相同测试用例的多个版本的 TOSCA 模块。请考虑以下场景:

有 3 个版本的应用程序正在生产中。对于每个版本,扫描自动化的模块都有小到中等级别的更改。我们必须使用 TOSCA 维护和执行每个版本的测试用例。我们知道我们可以创建测试用例和模块的多个副本来管理它,但这会创建自动化测试步骤和模块的多个工作副本。

有没有什么有效的方法可以避免测试用例和工作的重复?

4

2 回答 2

2

Tricentis Tosca 11.2 引入了分支和合并以支持测试被测系统的不同版本。

此功能类似于您将用于应用程序的版本控制。这样,您可以为应用程序的每个版本创建一个分支。

在 Tricentis Tosca 中创建和管理分支

于 2018-07-19T14:04:42.277 回答
0

如果您没有按照 MartinThe 的回答中提到的那样运行 11.2,您可以试试这个...

因此,我管理我的测试脚本,以便它们可以在多个测试环境中运行 - Dev、SIT、UAT 等。我从一个名为“Prepare Test Data”的文件夹开始每个脚本,并且在该文件夹中通常只有多个 Set Buffer 步骤. 这个文件夹是驱动环境之间差异的关键。

首先,我使用一个名为“TestEnvironment”的测试配置参数。因为这是一个测试配置参数,它可以直接附加到测试用例或测试用例文件夹,并且它级联到包含在其中的任何测试用例......所以,我在蓝色部分将 TCP 设置为“SIT”,因为我使用我的 SIT 环境开发我所有的自动化脚本来玩。执行时,我还在我的执行列表(绿色部分)上使用 TCP“TestEnvironment”,因为在那里找到的 TCP 覆盖了蓝色部分的 TCP。因此,虽然我的测试脚本设置为“SIT”,但我的执行列表可以设置为“DEV”或“UAT”,并且在通过执行列表执行时,它们会以设置的 TCP 运行。

接下来,在“准备测试数据”块中,我设置了我的切换缓冲区。此处的计划是让脚本中的所有测试步骤仅使用简单的基本缓冲区,如“用户名”、“仪器 Ref#”等。因此,准备测试数据块使用测试数据预加载这些缓冲区,但是它的切换取决于我在哪个环境中运行脚本。我将使用缓冲区“用户名”作为示例...

在第一个 Set Buffer 块中,我创建了三个这样的缓冲区:

Username-DEV = "Fred"
Username-SIT = "TestUser1"
Username-UAT = "TestDude"

{(*高级注释)有时我的脚本更高级,我从测试用例设计测试表中提取数据......在这种情况下,上面看起来更像这样: Username-SIT = "{XL[Test Data.Users .Clerk User.SIT]}",其中数据表将包含所有不同的用户,通常存储在 TCD 类中......我可以在不同的主题中讨论......}

在下一个设置缓冲区步骤中,我将缓冲区切换到测试步骤将使用的最终值,如下所示:

Username = "{B[Username-{CP[TestEnvironment]}]}"

因此,在此示例中,如果 TestEnvironment 设置为 SIT,则 Username 将设置为 Username-SIT 的值,即 "TestUser1" 。这种切换在测试运行期间实时发生。

(*高级说明:)您必须使用单独的 Set Buffer 步骤,因为 Tosca 似乎顺序同时执行单个“步骤”的所有部分。我的意思是,在第一个 Set Buffer 步骤完成之前,“Username-SIT”的缓冲区将不存在,因此如果您在同一步骤中组合 Username 缓冲区的分配,它将崩溃。(或使用旧的,可能是错误的值)

在此之下,我的所有测试步骤都可以使用基本缓冲区,例如“用户名”而不是“用户名-SIT”,因为它们都已“切换”。

使用这种技术,并专门回答您的问题,我还将使用 Tosca IF 块来分隔正在使用的模块。例如,在我的测试环境中,我在 SIT 和 UAT 之间的登录屏幕之一是如此不同,以至于我不能对两者使用相同的模块。所以,一个简单的 IF 块就可以切换它。

IF
   Condition
      TBox Evaluation tool
         Expression = "{CP[TestEnvironment]} == "SIT"
   Then
      SIT-version of module
         Username = "{B[Username]}"
   Else
      UAT-version of module
         Username - "{B[Username]}"    <-- can use same buffer because its' already switched

当然,如果您需要两个以上的环境/版本,您可以堆叠“IF-ELSE-IF”块。我希望你能明白。

于 2018-09-05T14:02:30.883 回答