【问题标题】:Is there any way to automate windows forms testing?有什么方法可以自动化 Windows 窗体测试吗?
【发布时间】:2010-09-06 17:20:57
【问题描述】:

我熟悉用于业务层单元测试的 nunit,但是我现在正在寻找自动化 win 表单 gui 层的测试。

我见过watin 和 watin 记录器,用于通过访问控件和自动化它们来自动化 Web 应用程序的测试。但是,我正在努力为 Windows 窗体(用 c# 或 vb.net 编写)找到一个等效的 watin,最好是开源的。

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

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

【问题讨论】:

    标签: c# .net vb.net winforms automated-tests


    【解决方案1】:

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

    上一个问题的答案相同

    编辑

    White 项目已搬迁,现在位于 GitHub 作为 TestStack 的一部分。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        作为一个新的选择,我可以给你 FlaUI (https://github.com/Roemer/FlaUI)。它基本上是对白色的完全重写,具有更多功能和干净的代码库。

        【讨论】:

          【解决方案4】:

          据我所知,White 是微软UI Automation 框架之上的一个抽象层。我写了一个类似的层,我们在项目内部使用它并且效果很好。所以白绝对值得一看

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

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

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

          【讨论】:

            【解决方案5】:

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

            • 使用 UIAutomation Bugslayer 2007 年 3 月
            • 使用 PowerShell Test Run 2007 年 12 月
            • Tester,一个用于记录鼠标点击和击键,然后播放它们和程序检查行为的实用程序。非常适合非托管代码。使用 Windows 句柄,因此可能不适用于托管代码。 Bugslayer 2002 年 3 月。

            【讨论】:

              【解决方案6】:

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

              【讨论】:

                【解决方案7】:

                名单

                请查看更新列表:List of Automated Testing (TDD/BDD/ATDD/SBE) Tools and Frameworks for .NET: User Interface Testing

                微软的推荐

                WinAppDriver

                微软推荐使用WinAppDriver

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

                编码 UI(Visual Studio ≤ 2019)

                以前,Coded UI,Visual Studio 内置功能和 UI 自动化的一部分,被推荐用于应用程序 UI 测试(现在已弃用):

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

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

                阅读更多:https://docs.microsoft.com/en-us/visualstudio/test/use-ui-automation-to-test-your-code

                【讨论】:

                • 已弃用
                • @ChristopheChenel:感谢您的注意,我更新了答案。
                【解决方案8】:

                您可以查看 Microsoft UI Automation 框架。从 3.0 版开始,这已包含在 .NET 中。无论如何,这实际上是 White 框架使用的。

                【讨论】:

                  【解决方案9】:

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

                  【讨论】:

                    猜你喜欢
                    • 2019-05-25
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-05-17
                    • 2011-01-12
                    • 2015-06-25
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-12-10
                    相关资源
                    最近更新 更多