DevExpress WinForms中文教程 - 如何通過UI測試自動化增強應用可靠性?(一)

DevExpress WinForm擁有180+組件和UI庫,能爲Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForm能完美構建流暢、美觀且易於使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕鬆勝任!

UI自動化測試利用特定的工具/框架來模擬用戶與界面的交互,並幫助確保應用程序滿足相關的最終用戶需求。當與其他測試方法(API測試、單元測試等)結合使用時,UI自動化可以提高應用程序的穩定性,減少花在手工測試上的時間,當然還可以提高用戶滿意度。在本文中,我們將向您展示如何使用UI自動化在Visual Studio 2022中編寫簡單/高級UI測試。

DevExpress WinForms中文教程圖集

 

在開始之前,我們先看看UI測試的優勢:

  • UI測試以應用程序爲目標,允許您測試應用程序流(端到端測試),涵蓋應用程序的所有元素,包括UI和業務邏輯(而單元測試側重於測試應用程序中的單個模塊、類或組件)。
  • UI測試有助於識別與導航、數據輸入和跨不同屏幕的工作流相關的問題,這些問題可能不會被其他測試捕獲。
  • UI測試爲測試複雜場景和邊緣情況提供了效率和可伸縮性(單元測試對於測試單個代碼單元是必不可少的)。請注意,UI測試可能需要更長的時間來執行,因爲它們與UI交互,並在應用程序開發管道中稍後運行(單元測試通常更快,並且在提交到存儲庫之前進行了檢查)。

獲取DevExpress v23.2.5正式版下載

UI測試自動化是如何工作的?

UI測試不能直接訪問真正的應用對象,沒有這樣的訪問,測試如何與UI控件交互?Windows Forms平臺允許您通過自動化元素與應用程序交互(Windows Forms平臺構建了一個可由外部應用程序查詢的自動化樹),自動化樹中的每個元素都包含有關UI元素的信息,並可用於執行基本操作(例如單擊、讀取/更改文本、滾動、選擇),所有這些都可以通過自動化模式獲得。UI測試訪問特定的自動化元素,並根據需要與它們交互。

Accessibility Insights 工具允許您檢查由特定UI控件構建的自動化樹,並查看UI自動化控制模式。

DevExpress WinForms中文教程圖集

輔助技術也依賴於UI元素的自動化樹和結構,在DevExpress WinForm v23.2版本中,我們增強了大多數DevExpress WinForms UI控件的可訪問性樹,以確保輔助技術可以獲得必要的信息,來符合WCAG中概述的可訪問性指南。

創建UI自動化測試

1. 配置WinForms應用程序進行測試

要測試的WinForms應用程序(“UIAutomationTestingExample”)包括以下數據表單:

  • LogInForm - 模擬對授權服務的調用,該服務異步返回用戶的登錄結果(帶有延遲)。
DevExpress WinForms中文教程圖集
  • CustomersForm – 包括用於在屏幕上顯示客戶信息的DevExpress數據網格。“Name”列顯示來自數據源的客戶名稱,“Is Modified”unbind列表示最終用戶是否修改了客戶信息。
DevExpress WinForms中文教程圖集

首先,我們將在應用程序啓動時啓用WindowsFormsSettings.UseUIAutomation設置,來強制DevExpress UI組件使用UI自動化模式並創建一個完整的UI自動化樹:

using System;
using System.Windows.Forms;
using DevExpress.Utils;
using DevExpress.XtraEditors;

namespace UIAutomationTestingExample {
internal static class Program {
///
/// The main entry point for the application.
///
[STAThread]
static void Main() {
WindowsFormsSettings.UseUIAutomation = DefaultBoolean.True;

Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

LogInForm loginForm = new LogInForm();
if (loginForm.ShowDialog() == DialogResult.OK) {
CustomersForm customersForm = new CustomersForm();
Application.Run(customersForm);
}
}
}
}

2. 創建NUnit測試項目

接下來,我們將創建一個包含NUnit測試的項目(TestRunner),並將其添加到解決方案中。

DevExpress WinForms中文教程圖集

我們將不得不引用UIAutomationClient和UIAutomationTypes程序集,這些程序集包含自動化元素所需的類。

DevExpress WinForms中文教程圖集
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章