有没有办法自动执行 Windows 窗体测试?

Is there any way to automate windows forms testing?

提问人:John 提问时间:8/25/2008 最后编辑:John 更新时间:8/23/2023 访问量:40263

问:

我熟悉用于业务层单元测试的 nunit,但是我现在希望自动测试 win forms gui 层。

我已经看到 watin 和 watin 记录器通过访问控件并自动化它们来自动执行 Web 应用程序上的测试。但是,我正在努力寻找 Windows 表单(用 c# 或 vb.net 编写)的 watin 等效项,最好是开源的。

是否存在或所有产品都基于录制鼠标和键盘按下?

更新:我看过这篇白色的博文,它似乎是我正在寻找的那种东西。这篇博文提出了一些问题,但由于白色仅在 0.6 版本中出现,这些问题可能会得到解决。如果其他人使用白色或任何其他人进行比较,请感兴趣。

C# .NET vb.net WinForms 自动测试

评论


答:

8赞 Dale Ragan 8/25/2008 #1

AutomatedQA 的 TestComplete 是一个很好的测试应用程序,用于自动化 GUI 测试。它不仅支持 Windows 窗体,还支持其他应用程序,因此您可以将其重用于其他应用程序。它不是开源的,这是我发现的最好的。我还没有看到与 WatiN 等效的开源。它确实有免费试用版,由您决定是否喜欢它。我选择它的主要原因是,与其他测试应用程序相比,它确实具有成本效益。

30赞 denis phillips 8/25/2008 #2

查看 http://www.codeplex.com/whitehttp://nunitforms.sourceforge.net/。我们已经成功地使用了 White 项目。

与上一个问题的答案相同

编辑

White 项目已经移动,现在作为 TestStack 的一部分位于 GitHub 上。

评论

0赞 Jim 6/30/2023
现已弃用,被 FlaUI 取代。
1赞 Sam Warwick 10/14/2008 #3

您可以查看 Microsoft UI 自动化框架。自 3.0 版起,这已包含在 .NET 中。这实际上是 White 框架使用的。

2赞 Bruce McLeod 12/26/2008 #4

据我所知,White 是 Microsoft UI 自动化框架之上的抽象层。我已经编写了一个类似的层,我们在项目内部使用,效果很好。所以怀特绝对值得一看

Microsoft 已将源代码发布到 UI 自动化,因此,如有必要,您应该能够调试整个堆栈。

真正酷的是,通过许可成本,您可以扩展并运行任意数量的机器以进行执行。

我们在 VSTS 中运行,并将结果链接到要求,但你可以使用 c# express 和 nUnit,只需很少或免费即可获得一流的工具和语言。

2赞 MarkJ 3/8/2009 #5

以下是 MSDN 杂志中有关自动测试代码的一些链接:

  • 使用 UIAutomation Bugslayer 2007 年 3 月
  • 使用 PowerShell 测试运行,2007 年 12 月
  • Tester,一个用于记录鼠标点击和击键的实用程序,然后播放它们和程序检查行为。非常适合非托管代码。使用窗口句柄,因此可能无法很好地用于托管代码。虫子杀手2002年3月。
8赞 Roemer 3/12/2017 #6

作为新的替代方案,我可以为您提供 FlaUI (https://github.com/Roemer/FlaUI)。它基本上是对白色的完全重写,具有更多功能和干净的代码库。

4赞 Dariusz Woźniak 3/31/2017 #7

名单

请在以下位置查看更新的列表:自动化测试列表(TDD/BDD/ATDD/SBE) .NET 工具和框架:用户界面测试

图书馆 评论
阿普蒂姆 支持测试通用 Windows 平台 (UWP) 和经典 Windows (Win32) 应用程序
编码的 UI 停止
FlaUI的 Windows 应用程序(Win32、WinForms、WPF、应用商店应用)的自动 UI 测试
NUnitForms的 停止
拉诺雷克斯 桌面、Web 和移动应用程序的 GUI 测试
审议 F# 和 C# 库,用于通过随机选择可用状态和有效转换来测试状态机。专为 UI 测试而设计。
Squish GUI 测试器 各种跨平台桌面、移动、嵌入式和 Web 应用程序
测试完成 “使用易于使用的 GUI 测试自动化工具,在不牺牲速度或敏捷性的情况下确保应用程序的质量。我们由 AI 驱动的对象识别引擎和脚本或无脚本的灵活性无与伦比,让您可以轻松测试每个桌面、Web 和移动应用程序。
TestStack.白色 停止
WinApp驱动程序 - Windows 应用程序驱动程序
- 在 Windows 应用程序上支持类似 Selenium 的 UI 测试自动化的服务 - 支持在 Windows 10 电脑上测试通用 Windows 平台 (UWP)、Windows 窗体 (WinForms)、Windows Presentation Foundation (WPF) 和经典 Windows (Win32) 应用程序

Microsoft 的建议

WinApp驱动程序

Microsoft 建议使用 WinAppDriver

Windows 应用程序驱动程序 (WinAppDriver) 是一项支持 Windows 应用程序上类似 Selenium 的 UI 测试自动化。这项服务 支持测试通用 Windows 平台 (UWP)、Windows 窗体 (WinForms)、Windows Presentation Foundation (WPF) 和经典 Windows Windows 10 电脑上的 (Win32) 应用。

编码的 UI (Visual Studio ≤ 2019)

以前,建议将编码的 UI(Visual Studio 内置功能和 UI 自动化的一部分)用于应用程序 UI 测试(现已弃用):

用于自动化 UI 驱动功能测试的编码 UI 测试是 荒废的。Visual Studio 2019 是编码的 UI 测试的最后一个版本 将可用。我们建议使用 Selenium 来测试 Web 应用程序 以及带有 WinAppDriver 的 Appium,用于测试桌面和 UWP 应用。 请考虑使用 Xamarin.UITest 测试 iOS 和 Android 应用 NUnit 测试框架。

通过其用户界面驱动应用程序的自动化测试 (UI) 称为编码的 UI 测试 (CUIT)。这些检查包括 UI 控件的功能测试。它们允许您验证 整个应用程序(包括其用户界面)正在运行 正确。编码的 UI 测试在以下情况下特别有用 用户界面中的验证或其他逻辑,例如在 Web 中 页。它们也经常用于自动化现有手册 测试。

更多信息请访问:https://learn.microsoft.com/en-us/visualstudio/test/use-ui-automation-to-test-your-code

评论

0赞 Christophe Chenel 2/23/2021
它已弃用
3赞 fractor 2/12/2021 #8

WinAppDriver 是一种类似 Selenium 的 UI 测试自动化服务,用于测试 Windows 应用程序,包括 Windows 窗体应用程序。它可以与测试自动化框架 Appium 一起使用。

0赞 Sumedh Soni 2/23/2021 #9

您还可以使用 Winium(https://github.com/2gis/Winium),它适用于除 Windows 10 之外的多个 Windows 平台,并且类似于 Selenium,具有支持远程控制应用程序的额外功能。