2015-10-16 57 views
0

我正在使用測試完成爲基於Web的應用程序創建測試套件。由於我們有應用程序的開發和發佈版本,因此登錄頁面和主頁的URL需要變化,因此我們的測試需要解決這個需求。 (爲了保護隱私,我在實例中更改了url)具有測試完成的變量URL設置方法11.11.1064.7

http://100.00.0.00/dev/testweb/#/routehome寫入測試步驟。這是不好的,因爲當我們在另一個URL上運行測試時。所以我設置了一個帶有項目範圍的變量來存儲基本URL,然後每個關鍵字測試都有一個頁面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") 

對我來說這似乎是這樣做的一個混亂的方式,但我一直沒能找到一個更清潔的方式來得到這個設置。有沒有人有什麼建議?

回答

1

我會創建一個名稱映射方案,其中包含使用項目變量作爲URL屬性值的測試頁面映射對象。在這種情況下,您可以創建測試,指定頁面的簡單映射名稱,而無需運行時計算。例如:

假設,您映射使用項目變量在同一臺主機服務器上的兩個網頁: enter image description here

變量兩個頁面和主機通過以下方式指定: enter image description here

在這種情況下,你可以通過普通的名稱命名他們的頁面工作:

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/*"; 
} 

您可以閱讀testedHost變量的值這個處理程序從TestComplete命令行中,從外部文件中,使用user form等從測試程序請求它。

相關問題