【问题标题】:Is there a way to automate a C# .Net Application without original source code有没有办法在没有原始源代码的情况下自动化 C# .Net 应用程序
【发布时间】:2020-10-05 04:18:23
【问题描述】:

有没有办法在没有原始源代码的情况下自动化 C# .Net 应用程序?

我希望能够为 C# .Net Windows 窗体应用程序编写 UI 测试。但我只有应用程序的 exe 文件。我没有原始源代码。我不知道是否需要原始来源。

我还想知道,Microsoft 如何测试他们自己的 Windows 应用程序。例如,我怀疑他们在测试 Microsoft Word 甚至 Windows 内置的计算器应用程序时是否有手动测试人员点击。我敢肯定他们对此进行了自动化测试。

【问题讨论】:

  • 如果您查看微软提供的一些开源解决方案,您会发现其中大量使用单元测试,请查看docs.microsoft.com/en-us/dotnet/core/testing/…
  • 您不需要源代码进行 UI 测试,您可以谷歌搜索可用的 UI 测试库并选择其中之一
  • 有大量的 UI 测试自动化工具。只需谷歌“WinForms UI 测试自动化”。
  • 您可以通过编写控制鼠标和键盘并模拟人类交互的“机器人”代码来测试桌面应用程序。这不一定容易,而且容易出错。

标签: c# automation ui-automation


【解决方案1】:

嗯,至少 MS 引入了 UIAutomation 框架,它面向用户进行自动化测试或屏幕阅读器等项目。更多信息可以在这里找到:https://docs.microsoft.com/en-us/dotnet/framework/ui-automation/ui-automation-overview

在自动化托管代码 UI 方面,该框架非常简洁,因为访问 UI 控件和调用用户输入非常容易。

【讨论】:

  • 那个简洁的框架不适用于仅 WPF 的 Win Forms
  • 那是错误的。经常与 Winform 一起使用!
  • 你确定?文档只说 WPF。但我个人从未在 winforms 上使用过它。
  • @Hefaistos68 那么您应该正确阅读:Microsoft UI Automation is the new accessibility framework for Microsoft Windows, available on all operating systems that support Windows Presentation Foundation (WPF). 说,它适用于所有支持 WPF 的平台。所以,你也可以在 Winforms 中使用它。
  • 这句话的解释有点开放,但在其他地方可以更深入地阅读该主题:“Microsoft UI 自动化支持为 WPF、Win32 和 Windows 窗体框架开发的应用程序中的标准控件”,所以是的,你是对的。
猜你喜欢
  • 2019-04-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-16
相关资源
最近更新 更多