Windows 自动化需要与 .net 应用程序交互

Windows Automation needs interaction with a .net application

我真的不知道如何更好地解释我 运行 遇到的这种情况,但我会尽力而为。

这就是我想要做的...

我目前有一个批处理文件,可以执行一些操作,例如从 FTP 下载文件、创建文件夹、修改一些文本文件等。手动和批处理需要我们 45 分钟脚本自动化更容易。

下一步我要做的是,启动我们的 .net Windows 应用程序,登录并在其中执行一些操作,然后注销。这实际上是一个回归测试用例,我在另一台机器上使用 VS Coded UI 实现了自动化。我 运行 遇到的问题是,有一个单独的支持团队需要完成 45 分钟的工作,我已经自动化完成,然后在登录应用程序后执行一些操作。该支持团队的机器不会安装 VS 或 Coded UI。

那么,我该怎么做呢?有什么想法吗?

您可以在计算机上未安装 Visual Studio/CodedUI 的情况下执行您编写的 CodedUI 测试。请记住,您可以 运行 通过 TFS 或 Microsoft 测试管理器中的控制器和代理进行测试。您可以手动将这些原则应用到 运行,即使这是一个奇怪的极端情况。如果我没记错的话,这需要两个步骤:

  1. 设计您的 CodedUI 测试以引用 CodedUI .dll 作为解决方案的一部分,而不是 GAC。我的意思是将所需的 .dll 复制并粘贴到解决方案文件夹中,并将现有引用替换为指向文件夹中 .dll 的引用。当您分发测试时,一定要包括这个 sol 文件夹。 (更新:在获得更多经验后,我发现使用 NuGet 包更容易。项目级引用绝对是噩梦)
  2. 在测试者机器上安装微软免费提供的"Test Agent"软件。这将安装您的测试人员在他们的 GAC 中可能需要的其他测试 .dll。你也可以用这些做第 1 步,但老实说,我认为这不是那么麻烦。此外,它还会安装必要的 mstest 可执行文件。

然后您的测试人员将不得不在控制台中使用 mstest.exe(更新:安装代理后,您 can/should 使用 vstest.console.exe 作为替代)到 运行 你的 CodedUI 测试。或者,您可以使用 powershell 或您的批处理文件在一个整洁的包中执行您的测试和其他测试。

如果这为您的问题提供了潜在的解决方案,请告诉我。