当前位置: 首页 > 知识库问答 >
问题:

多版本应用程序自动化-TOSCA

朱毅
2023-03-14

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

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

是否有任何有效的方法可以避免测试用例和工作的重复性?

共有2个答案

谢俊力
2023-03-14

如果您没有运行MartinThe回答中提到的11.2,您可以尝试以下操作。。。

因此,我管理我的测试脚本,以便它们可以在多个测试环境中运行-Dev、SIT、UAT等。我用一个名为“准备测试数据”的文件夹启动每个脚本,该文件夹中通常只有多个Set Buffer步骤。此文件夹是推动环境差异的关键。

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

接下来,在“准备测试数据”块中,我设置了切换缓冲区。这里的计划是让脚本中的所有测试步骤都只使用简单的基本缓冲区,如“Username”、“Instrument Ref#”等。因此,Prepare test Data块使用测试数据预加载这些缓冲区,但它会根据运行脚本的环境进行切换。我将以缓冲区“用户名”为例。。。

在第一个Set Buffer块中,我创建了三个缓冲区,如下所示:

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

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

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

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

因此,在本例中,如果TestEnvironment设置为SIT,那么Username将设置为Username SIT的值,即“TestUser1”。此切换在测试运行期间实时发生。

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

下面,我的所有测试步骤都可以使用基本缓冲区,如“Username”,而不是“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”块。我希望你明白这个想法。

景令秋
2023-03-14

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

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

在Tricentis Tosca创建和管理分支机构

 类似资料:
  • 问题内容: 每次编译Go应用时,是否可以自动增加次要版本号? 我想在程序中设置一个版本号,并带有一个自动递增部分: 我设置的版本号是0.5,而132则是每次编译二进制文件时都会自动增加的值。 Go中有可能吗? 问题答案: Go链接器(go工具链接)具有一个选项,用于设置未初始化的字符串变量的值: 值。请注意,在Go 1.5之前,此选项采用两个单独的参数。现在,需要在第一个=符号上拆分一个参数。 作

  • 自动版本化 因为Subversion客户端不是完整的DeltaV客户端,Subversion服务器也不是完整的DeltaV服务器,但仍有值得高兴的交互特性:叫做自动版本化。 自动版本化是DeltaV标准中的可选特性,一个典型的DeltaV服务器会拒绝一个对版本控制之下文件的PUT操作,为了修改一个版本控制下的文件,服务器只会接受一系列正确的版本请求:例如MKACTIVITY、CHECKOUT、PU

  • 我想在Android上使用Appium来自动化下面的场景 首先在Chrome中打开一个网页。网页包含注册表单 填写表单,然后单击提交按钮 提交按钮通过uri打开我的本机应用程序(与我们通过点击链接市场打开Google Play的行为相同://...) 最后与应用程序交互 我可以为第1到3步实现自动化,但在第4步就失败了。 这对Appium有可能吗?有没有其他测试框架可以自动化这样的场景?

  • 我最近开始研究iOS本机应用程序自动化- MAC OS 10.10.2iOS模拟器-iPhone 5s,iOS8.1 Appium 1.3.4 应用在应用商店中-我正在使用此应用商店应用的.App文件 Appium.app中的iOS设置-应用路径-为.app文件提供路径强制设备-模拟器设备 代码- 我还尝试只在代码中提供应用程序路径,但没有在appium.app中提供,我尝试使用和不使用应用程序的

  • 我正在寻找支持自动化Windows应用程序,如记事本使用Qmetum自动化框架与BDD步骤。我尝试与Appium驱动程序,但没有工作。 Step1:打开记事本Step2:输入“一些文本”[在这里输入链接描述][1] 成功日志:Windows应用程序驱动程序在以下位置侦听请求:http://127.0.0.1:4723/ 按ENTER键退出。 ============================

  • 我正尝试使用WinApp驱动程序在Visual Studio 2017中自动化扩展(WPF)的UI,但在使用inspect.exe(Windows SDK)捕获元素时找不到自动化id 最初,当通过inspect.exe检查时,找不到自动化ID。因此,我在XAML文件的automation属性中设置了automation id,并将新的VSIX安装回Visual Studio中,但在捕获元素时,上述