我正在使用test complete为基于Web的应用程序创建测试套件。登录和主页的URL需要是可变的,因为我们有应用程序的开发和发布版本,因此需要为我们的测试解决这个问题。 (出于隐私原因,我在示例中的网址已经从实时网站更改)
写入测试步骤的http://100.00.0.00/dev/testweb/#/routehome。这是不好的,因为当我们在另一个URL上运行测试时。所以我设置了一个带有项目范围的变量来存储基本URL,然后每个关键字test都有一个页面URL的变量。然后,每个关键字测试都需要一个“运行代码片段”来连接这两个关键字,以获取被测试页面的完整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")
对我而言,这似乎是一种混乱的方式,但我无法找到更简洁的方法来进行此设置。有没有人有任何建议?
答案 0 :(得分:1)
我将使用经过测试的页面映射对象创建名称映射方案,该对象使用项目变量作为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从测试人员请求它等等。