AABBbaby

导航

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正式版下载

DevExpress技术交流群9:909157416      欢迎一起进群讨论

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中文教程图集

更多DevExpress线上公开课、中文教程资讯请上中文网获取

posted on 2024-04-07 10:03  AABBbaby  阅读(5)  评论(0编辑  收藏  举报