2016-12-02 33 views
1

我創建簡單的編碼的UI測試,我做到以下幾點:編碼UI - 如何配置URL?

  1. 打開瀏覽器
  2. 轉到網址
  3. 點擊超鏈接(web應用程序域內的鏈接)。

UIMapping生成後,我看到一堆自動生成的映射代碼。在UIMapping文件(類)中,我看到了基本上是硬編碼的URL。

例子:

this.FilterProperties[HtmlDocument.PropertyNames.PageUrl] = "http://mytesturl:8000"; 
this.mUIItem50006598Hyperlink.FilterProperties[HtmlHyperlink.PropertyNames.Href] = "http://mytesturl:8000/link" 

我怎樣才能讓我的自動化UI測試配置的,這樣我可以運行鍼對不同的環境相同的測試(開發,測試,督促...等)?

+0

的可能的複製[如何運行多次使用從.csv文件(數據驅動)讀取數據的測試](http://stackoverflow.com/questions/23469100/how-to-run-a-test-many-times-with-data-read-from -csv-文件的數據的駕駛) – AdrianHHH

回答

1

正如阿德里安所言,這是一個經常重複的問題,沒有明確的答案。你可以在我的方法HERE上找到一些信息。

的短篇小說是,你將不能夠,如果你依靠CodedUI映射功能,除非你的測試方法,動態配置的環境:

  • 調用一個輔助方法來導航到一個基地URL,這反過來決定於某種數據驅動配置(XML/app.config文件,CSV,電子表格)。你可以在上面的鏈接中找到關於如何在我的問題上做到這一點的信息。
  • 調用您的映射器生成的方法。當創建它一定要假設你只從基礎網址導航,不打開瀏覽器等

所以您的代碼將是這樣的:

[TestMethod] 
public static void GenericTestMethod() { 
    //get browserWindow from your test setup method etc. 
    GoToEnvironmentBaseUrl(browserWindow); 
    MapperGeneratedCodedUiMethod(); 
    AssertStuff(); 
} 

public static void GoToEnvironmentBaseUrl(BrowserWindow browserWindow) { 
    browserWindow.NavigateToUrl(new Uri("http://www." 
      + ConfigurationManager.AppSettings.Get("EnvironmentURLMod") 
      + ".com")); 
}