用 .NET 开发的轻量级 UI 测试自动化

作者:袖梨 2022-07-02
James McCaffrey
下载本文的代码: TestRun0501.exe (131KB)
本页内容
待测试应用程序
测试自动化脚本
操作待测试应用程序
检查应用程序状态
讨论
手动用户界面测试是一种最基本的软件测试类型,大多数软件工程师首次采用的就是这种测试类型。与此矛盾的是,自动化用户界面测试可能是编写的测试类型中最具技术挑战的一种。Microsoft® .NET 环境为您提供了许多编写自动用户界面测试自动化的方式。一种常见而有用的方法是记录击键、鼠标移动和单击,然后在应用程序中回放以确保它以预期方式执行。(有关这种方法的详细信息,请参见 MSDN®Magazine 2002 年 3 月号中 John Robbins 的 Bugslayer 专栏。这一期 MSDN Magazine 的 Paul DiLascia 专栏也阐释了如何使用 .NET 将这种类型的输入发送到另一个应用程序中。)在本月的专栏中,我将探讨为 .NET 应用程序编写轻量级 UI 测试自动化的另一种方法。
最好的方式是以一个屏幕快照开始进行讨论。图 1 显示我有一个虚拟应用程序要进行测试。它是一个颜色合成器应用程序,允许用户在文本框控件中键入一种颜色,然后在 Combobox 中键入或选择一种颜色,单击按钮,Listbox 就会显示一条消息,表明两种颜色“混合”的结果。在图 1 中,根据应用程序,红色和蓝色会产生紫色。UI 测试自动化是一个控制台应用程序,它启动一个待测试窗体,模拟用户移动应用程序窗体,定义和调整应用程序窗体的大小,设置文本框和 Combobox 控件的值,并单击按钮控件。测试自动化检查测试应用程序的结果状态,验证 Listbox 控件包含正确的消息,并记录“pass”结果。图 1 中的屏幕快照是在测试自动化模拟用户单击关闭测试应用程序的 File | Exit 之前捕获的。
图 1 窗体 UI 测试自动化
在下面的章节中,我将简要介绍我所测试的虚拟应用程序,解释如何使用反射和 System.Windows.Forms.Application 类启动测试自动化程序中的应用程序窗体,介绍如何使用 System.Reflection 命名空间中的方法模拟用户操作和检查应用程序状态,并描述如何扩展和修改测试系统来满足自己的需要。我想,不管您在软件生产环境中扮演什么样的角色,具备快速编写轻量级 UI 测试自动化的能力都能使您的技能得到很大提高。另外,即使您正在使用一个已有的框架(如 Nunit),这些相同的技术也可以整合到您自己的单元测试管理中并相关。

相关文章

精彩推荐