DevExpress WinForms中文教程 - 如何通过UI测试自动化增强应用可靠性?(一)

DevExpress WinForm拥有180+组件和UI库,能为Windows Forms 平台创建具有影响力的业务解决方案。DevExpress WinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜任!

UI自动化测试利用特定的工具/框架来模拟用户与界面的交互,并帮助确保应用程序满足相关的最终用户需求。当与其他测试方法(API测试、单元测试等)结合使用时,UI自动化可以提高应用程序的稳定性,减少花在手工测试上的时间,当然还可以提高用户满意度。在本文中,我们将向您展示如何使用UI自动化在Visual Studio 2022中编写简单/高级UI测试。

在开始之前,我们先看看UI测试的优势:

  • UI测试以应用程序为目标,允许您测试应用程序流(端到端测试),涵盖应用程序的所有元素,包括UI和业务逻辑(而单元测试侧重于测试应用程序中的单个模块、类或组件)。
  • UI测试有助于识别与导航、数据输入和跨不同屏幕的工作流相关的问题,这些问题可能不会被其他测试捕获。
  • UI测试为测试复杂场景和边缘情况提供了效率和可伸缩性(单元测试对于测试单个代码单元是必不可少的)。请注意,UI测试可能需要更长的时间来执行,因为它们与UI交互,并在应用程序开发管道中稍后运行(单元测试通常更快,并且在提交到存储库之前进行了检查)。

获取DevExpress v23.2.5正式版下载(Q技术交流:909157416)

UI测试自动化是如何工作的?

UI测试不能直接访问真正的应用对象,没有这样的访问,测试如何与UI控件交互?Windows Forms平台允许您通过自动化元素与应用程序交互(Windows Forms平台构建了一个可由外部应用程序查询的自动化树),自动化树中的每个元素都包含有关UI元素的信息,并可用于执行基本操作(例如单击、读取/更改文本、滚动、选择),所有这些都可以通过自动化模式获得。UI测试访问特定的自动化元素,并根据需要与它们交互。

Accessibility Insights 工具允许您检查由特定UI控件构建的自动化树,并查看UI自动化控制模式。

辅助技术也依赖于UI元素的自动化树和结构,在DevExpress WinForm v23.2版本中,我们增强了大多数DevExpress WinForms UI控件的可访问性树,以确保辅助技术可以获得必要的信息,来符合WCAG中概述的可访问性指南。

创建UI自动化测试
1. 配置WinForms应用程序进行测试

要测试的WinForms应用程序("UIAutomationTestingExample")包括以下数据表单:

  • LogInForm - 模拟对授权服务的调用,该服务异步返回用户的登录结果(带有延迟)。
  • CustomersForm -- 包括用于在屏幕上显示客户信息的DevExpress数据网格。"Name"列显示来自数据源的客户名称,"Is Modified"unbind列表示最终用户是否修改了客户信息。

首先,我们将在应用程序启动时启用WindowsFormsSettings.UseUIAutomation设置,来强制DevExpress UI组件使用UI自动化模式并创建一个完整的UI自动化树:

cs 复制代码
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程序集,这些程序集包含自动化元素所需的类。

相关推荐
I'mSQL6 小时前
sw打开stp文件报错 警告!可用的窗口资源极低
自动化
自动化控制仿真经验汇总6 小时前
3.7 kW 无线电能传输系统-EXP-汽车-无线充电
自动化·汽车
GeeLark7 小时前
#请输入你的标签内容
大数据·人工智能·自动化
mocoding9 小时前
使用Flutter设置UI三方库card_settings_ui重构鸿蒙版天气预报我的页面
flutter·ui·harmonyos
初九之潜龙勿用10 小时前
C# 操作Word模拟解析HTML标记之背景色
开发语言·c#·word·.net·office
雨季66610 小时前
Flutter 三端应用实战:OpenHarmony 简易点击计数器与循环颜色反馈器开发指南
开发语言·flutter·ui·ecmascript·dart
方芯半导体10 小时前
EtherCAT “通信 + 控制“ 的全国产化控制方案,ESC芯片(FCE1323)与国产MCU芯片功能板解析
xml·网络·单片机·嵌入式硬件·网络协议·机器人·自动化
时光追逐者10 小时前
使用 MWGA 帮助 7 万行 Winforms 程序快速迁移到 WEB 前端
前端·c#·.net
老骥伏枥~11 小时前
【C# 入门】程序结构与 Main 方法
开发语言·c#