DevExpress WinForm拥有180组件和UI库能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序无论是Office风格的界面还是分析处理大批量的业务数据它都能轻松胜任UI自动化测试利用特定的工具/框架来模拟用户与界面的交互并帮助确保应用程序满足相关的最终用户需求。当与其他测试方法(API测试、单元测试等)结合使用时UI自动化可以提高应用程序的稳定性减少花在手工测试上的时间当然还可以提高用户满意度。在本文中我们将向您展示如何使用UI自动化在Visual Studio 2022中编写简单/高级UI测试。在开始之前我们先看看UI测试的优势UI测试以应用程序为目标允许您测试应用程序流(端到端测试)涵盖应用程序的所有元素包括UI和业务逻辑(而单元测试侧重于测试应用程序中的单个模块、类或组件)。UI测试有助于识别与导航、数据输入和跨不同屏幕的工作流相关的问题这些问题可能不会被其他测试捕获。UI测试为测试复杂场景和边缘情况提供了效率和可伸缩性(单元测试对于测试单个代码单元是必不可少的)。请注意UI测试可能需要更长的时间来执行因为它们与UI交互并在应用程序开发管道中稍后运行(单元测试通常更快并且在提交到存储库之前进行了检查)。DevExpress新旧版本帮助文档下载 可进QQ qun获取169725316UI测试自动化是如何工作的UI测试不能直接访问真正的应用对象没有这样的访问测试如何与UI控件交互Windows Forms平台允许您通过自动化元素与应用程序交互(Windows Forms平台构建了一个可由外部应用程序查询的自动化树)自动化树中的每个元素都包含有关UI元素的信息并可用于执行基本操作(例如单击、读取/更改文本、滚动、选择)所有这些都可以通过自动化模式获得。UI测试访问特定的自动化元素并根据需要与它们交互。Accessibility Insights 工具允许您检查由特定UI控件构建的自动化树并查看UI自动化控制模式。辅助技术也依赖于UI元素的自动化树和结构在​​​​​​​DevExpress WinForms v23.2版本中我们增强了大多数DevExpress WinForms UI控件的可访问性树以确保辅助技术可以获得必要的信息来符合WCAG中概述的可访问性指南。创建UI自动化测试1. 配置WinForms应用程序进行测试要测试的WinForms应用程序(“UIAutomationTestingExample”)包括以下数据表单LogInForm- 模拟对授权服务的调用该服务异步返回用户的登录结果(带有延迟)。CustomersForm– 包括用于在屏幕上显示客户信息的DevExpress数据网格。“Name”列显示来自数据源的客户名称“Is Modified”unbind列表示最终用户是否修改了客户信息。首先我们将在应用程序启动时启用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)并将其添加到解决方案中。我们将不得不引用UIAutomationClient和UIAutomationTypes程序集这些程序集包含自动化元素所需的类。