2013-06-05 57 views
1

編碼的UI測試中,我有兩個主要問題,既取決於DPI設置:不同的DPI設置

  1. 我如何可以測試編碼的UI測試不同的DPI設置?
  2. 我怎麼能檢查所有我的形式,對話在我的項目,如果所有 控件可見(即不截斷)

我們的項目是針對96 DPI寫的。在Windows中,有三個設置可用於DPI:

  • 較小 - 100%= 96 DPI
  • 中度 - 125%= 120 DPI
  • 更大 - 150%= 144 DPI

編碼UI測試是否適合這樣複雜的任務?或者你會建議我什麼?

如果您需要更多信息,我會很樂意回答。 我不認爲需要任何代碼,因爲它只是一個正常的winforms應用程序,我正在尋找覆蓋任何winform應用程序的方法。

+0

tumbleweed inc? :( –

回答

0

如果所有控件在不同的DPI設置中都可見(窗體,對話框),那麼我認爲沒有任何問題。 您需要在所有窗體,按鈕和對話框(任何控件)上記錄斷言來驗證「存在」,而只有一個DPI表示100%,然後在所有其他DPI設置上重複執行測試。 請試一試,讓我們也知道結果。

-Prasant

1

編碼的UI是用於測試應用程序的功能。不用於測試外觀。所以通常Coded UI將不適合檢查文本中使用的屏幕顏色或字體或換行符。然而,編碼的UI確實提供了CaptureImage()方法,以便在測試的任何一點,你可以在形式編寫代碼:

Image img = UITestControl.Desktop.CaptureImage(); 
Image img = this.UIMap.UIYourApplicationsWindow.CaptureImage(); 
Image img = this.UIMap.UIYourApplicationsWindow.UISubWindow.UISubSub.CaptureImage(); 
... followed by: 
img.Save(... filename ...); 
TextContext.AddResultFile(... filename ...) 

我已經使用了CaptureImage()方法,但還沒有嘗試是否做了截屏,或者是否使用底層的圖像文件。

還有一個MSDN博客可能會有幫助。見http://blogs.msdn.com/b/gautamg/archive/2010/04/08/how-to-do-image-comparison-in-coded-ui-test.aspx

+0

謝謝你,我喜歡CaptureImage的提示。而且你知道運行編碼的UI測試之前,設置不同的DPI設置的一種方式? –

+0

哪裏如何將設置DPI爲程序或Windows的普通用戶。也許你需要記錄一個使用Windows控制面板進行更改的編碼UI方法 - 但我可以想到這個問題!我認爲當顯示屬性發生變化時,Windows會進行某種圖形重置。 – AdrianHHH

0

在這裏,我發現並調整了一小段代碼片段。它是用C#編寫的。

在這段代碼中,我們將兩個Image對象轉換爲Base64 String。通過比較Base64 string在一起,我們會知道圖像是否相同。該守則如下。

public static bool ImageCompareString(Image firstImage, Image secondImage) 
{ 
    var ms = new MemoryStream(); 
    firstImage.Save(ms, ImageFormat.Png); 
    String firstBitmap = Convert.ToBase64String(ms.ToArray()); 
    ms.Position = 0; 
    secondImage.Save(ms, ImageFormat.Png); 
    String secondBitmap = Convert.ToBase64String(ms.ToArray()); 
    if (firstBitmap.Equals(secondBitmap)) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 
+0

請添加一個解釋,這個職位如何回答關於測試各種DPI設置的原始問題。只是發佈一些不明顯回答問題的代碼是沒有用的。 – AdrianHHH

相關問題