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

相关推荐
Scout-leaf2 天前
WPF新手村教程(三)—— 路由事件
c#·wpf
用户298698530142 天前
程序员效率工具:Spire.Doc如何助你一键搞定Word表格排版
后端·c#·.net
mudtools4 天前
搭建一套.net下能落地的飞书考勤系统
后端·c#·.net
玩泥巴的4 天前
搭建一套.net下能落地的飞书考勤系统
c#·.net·二次开发·飞书
唐宋元明清21884 天前
.NET 本地Db数据库-技术方案选型
windows·c#
lindexi4 天前
dotnet DirectX 通过可等待交换链降低输入渲染延迟
c#·directx·d2d·direct2d·vortice
修炼前端秘籍的小帅4 天前
Stitch——Google热门的免费AI UI设计工具
前端·人工智能·ui
王码码20354 天前
Flutter for OpenHarmony:socket_io_client 实时通信的事实标准(Node.js 后端的最佳拍档) 深度解析与鸿蒙适配指南
android·flutter·ui·华为·node.js·harmonyos
qq_454245034 天前
基于组件与行为的树状节点系统
数据结构·c#
bugcome_com4 天前
C# 类的基础与进阶概念详解
c#