变量 URL 设置方法,测试完成 11.11.1064.7

Variable URL setup method with Test Complete 11.11.1064.7

我正在使用测试完成为基于 Web 的应用程序创建测试套件。登录和主页的 URL 需要可变,因为我们有应用程序的开发和发布版本,所以我们的测试需要解决这个问题。 (示例中的 url 出于隐私原因,我已从现场更改)

http://100.00.0.00/dev/testweb/#/routehome 即写入测试步骤。这不好,因为当我们 运行 在另一个 URL 上进行测试时。所以我设置了一个项目范围的变量来存储基础 url ,然后每个关键字测试都有一个页面 URL 的变量。然后,每个关键字测试都需要一个 "Run Code Snippet" 来连接两者以获得被测页面的完整 URL。 所以我建造了

Project.Variables.BaseURL = http://100.00.0.00/dev/testweb/
KeywordTests.LoginToTEST.Variables.PageURL = #routehome
KeywordTests.LoginToTEST.Variables.TestURL = Project.Variables.BaseURL + KeywordTests.LoginToTEST.Variables.PageURL

每个关键字测试都需要 运行 :

Execute("KeywordTests.LoginToTEST.Variables.TestURL = Project.Variables.BaseURL+KeywordTests.LoginToTEST.Variables.PageURL")

对我来说,这似乎是一种混乱的方式,但我一直无法找到一种更简洁的方式来进行此设置。有人有什么建议吗?

我将使用经过测试的页面映射对象创建名称映射方案,该对象使用项目变量作为 URL 属性 的值。在这种情况下,您可以创建测试,为页面指定简单的映射名称,而无需任何运行时计算。例如:

假设您已使用项目变量将两个页面映射到同一主机服务器上:

页面和主机的变量按以下方式指定:

在这种情况下,您可以使用常用名称命名页面来处理页面:

function test()
{
  var google = Aliases.browser.pageGoogle;
  var gmail = Aliases.browser.pageGMail;

  if (google.Exists)
    Log.Message("The Google page is opened: " + Project.Variables.varGooglePage);

  if (gmail.Exists)
    Log.Message("The GMail page is opened: " + Project.Variables.varGMailPage);
}

为避免在更改主机时修改所有变量的值,您可以仅更改 testedHost 变量的值并使用 OnStartTest event处理程序相应地更新其他变量的值:

function GeneralEvents_OnStartTest(Sender)
{
  Project.Variables.varGooglePage = "https://www." + Project.Variables.testedHost + "*";
  Project.Variables.varGMailPage = "https://mail." + Project.Variables.testedHost + "/mail/u/0/*";
}

您可以从 TestComplete 命令行读取此处理程序中 testedHost 变量的值,从外部文件,使用 user form 从测试器请求它并等等。