2014-11-01 120 views
0

我們正在開發一個與服務器交互的新WPF應用程序。應用程序向服務器發送請求並獲得響應。在不同視圖中以不同方式顯示響應(即具有多個視圖的單個模型)。WPF應用程序的自動化測試

現在我們想要自動測試WPF應用程序。我有以下測試自動化需求:

  1. 使用用戶輸入的參數驗證發送到服務器的請求。
  2. 驗證從服務器收到的響應,數據顯示在多個視圖中。

請讓我知道如何使用任何測試自動化工具達到上述目的。

+0

你的問題似乎有點寬泛和不清楚。您是否在尋求工具建議? – J0e3gan 2014-11-01 21:07:24

+0

行業中遵循的最佳做法是什麼? – Raghu 2014-11-03 18:46:19

回答

0

您描述的此功能稱爲「錄製和播放」。正如您已經提到的那樣,它對於簡單的UI交互是非常有限的,並且會變得難以維護。

只要您的交互邏輯變得越來越複雜,就必須使用更多分層的體系結構來手動實現測試用例邏輯的主要部分。一種可能的架構可以有以下層(一些這裏有從書Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation採取的想法)

  • 最底層將實現訪問UI使用的UI測試的一個控件本身(例如您提到的API。)

  • 描述應用程序功能的應用程序驅動程序層。在這裏你可以有像LoginForm.LoginUser(userName,passWord)這樣的方法。在內部,這種方法可以處理完整的用戶輸入,按下所有必要的按鈕,甚至在需要時進行一些額外的驗證(例如,如果密碼已過期並且必須重新輸入)。該層中的方法將通過較低層訪問不同的UI控件。通常這個層是你的應用程序的抽象。

  • 用例/測試用例層。在這裏通過調用應用程序層來定義不同的測試步驟。

所以在你的具體情況,你可能有一個名字在你的應用程序驅動程序層ClientSoftware和這個類可以像ValidateUserInputSendRequestToServer方法。這些方法然後將執行必要的UI交互以執行期望的行爲。在你的測試用例本身中,你需要設置一個ClientSoftware的實例並調用所需的方法來實現你的測試用例。

+0

感謝您分享您的想法,有什麼好的工具可用? – Raghu 2014-11-02 02:12:00

+0

爲了訪問被測試的系統,我想你可以使用你已經提到的任何工具或許多開源替代品之一(例如[TestStack.White](http://teststack.azurewebsites.net/white/)) 。爲了管理測試用例本身,您可以使用任何可用的.NET測試框架(例如[nunit](http://www.nunit.org/))。 – pgenfer 2014-11-02 14:12:29