【问题标题】:Running automated UI tests as part of CI作为 CI 的一部分运行自动化 UI 测试
【发布时间】:2013-07-30 19:18:08
【问题描述】:

我正在为大型 WPF 应用程序开发自动化测试套件。我为 Microsoft Windows 自动化 API(以前称为 UI 自动化框架)创建了一个包装库,并使用它来实现各种健全性测试。我的团队希望通过在每次签入时运行这些测试来进行持续集成。我们正在使用 TFS(我相信是 2012 年)和 MSTest。

这些测试的问题在于它们需要 UI 启动并运行才能实际运行测试。我想这个想法是将构建的二进制文件复制到远程 VM 并使用远程代理运行测试,但我不完全确定从哪里开始。

以前有没有人这样做过,并且有任何代码/构建工作流 XAML 示例来实现这样的目标?

【问题讨论】:

  • 您可以使用实验室管理功能吗? (例如,你有 VS 2012 高级版还是终极版)
  • 是的,我们使用 VS 2012 Ultimate。

标签: tfs continuous-integration ui-automation coded-ui-tests automationelement


【解决方案1】:

您需要在测试机器上设置一个标准环境,这将在它们上安装一个测试代理。然后,测试代理会在您的 UI 上为您运行测试。

这应该可以帮助您入门: http://msdn.microsoft.com/en-us/library/ee390842.aspx

【讨论】:

  • 我今天试过了。不幸的是,我们的 TFS 服务器是 2010,而我们使用的是 VS 2012。自然这通常不是问题,但是,您无法通过 VS 2012 与 2010 测试控制器集成,也无法将 2012 测试控制器与 TFS 集成2010. 我将尝试使用外部 CI 解决方案,例如 TeamCity。
【解决方案2】:

对于我的 CI 服务器,我使用 JetBrains 的 TeamCity。有了它,您可以很容易地设置多个构建代理来连接到 TeamCity 服务器。

特别是关于使用 UI 自动化进行测试时,您需要在您提到的所有构建代理上都有一个交互式桌面会话。为此,我将它们全部设置为自动登录,并且我有一个运行 C:\BuildAgent\bin\agent.bat start 的启动脚本,因此 TeamCity 代理在交互式会话中启动。

TeamCity 很好地与 TFS 挂钩,应该能够轻松运行您的测试。我使用 NUnit 作为我的测试运行器,但我无法想象这会非常困难to get running。最重要的是,三个构建代理和多达 20 个构建配置是免费的。

希望这会有所帮助。

【讨论】:

  • 普通虚拟机(不是构建代理虚拟机)怎么样。喜欢测试控制器和测试代理设置吗?
  • 抱歉,我不确定我是否理解这个问题。您是在问 VM 是否可以作为构建代理?好的。这就是我的设置。
  • 我设法弄明白了,我们的构建代理将更改推送到新创建的虚拟机中,我正在思考您提到的交互式桌面问题。我通过使用简单的控制器和代理场景解决了这个问题。所以最终我们的构建代理不会执行自动化的 ui 测试。新创建的 VM 将执行测试。
  • 您通常如何部署这样的环境?我们的构建代理作为服务运行,公司 IT/安全并不允许机器自动登录。您如何/在哪里以交互方式运行这些代理并让每个人都开心?
  • 我们有自己的虚拟机场,在我们的网络中进行管理,所以我就在那里进行了设置。它们在我们自己的开发域中,而不是主域。我知道您可以将服务设置为交互式,但不幸的是,我从来没有让 UI 自动化以这种方式与应用程序交互。
猜你喜欢
  • 2020-09-22
  • 1970-01-01
  • 1970-01-01
  • 2017-06-04
  • 1970-01-01
  • 2011-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多