远程虚拟机自动化UI测试策略

15

我正在使用TeamCity进行CI构建,我想为在Windows XP和Windows 7虚拟机上运行自动化UI测试设置第二个构建。

我设想构建的工作流程如下:

  1. 编译、运行单元测试等
  2. 使用WiX准备MSI
  3. 将MSI复制到目标测试机器
  4. 远程执行MSI
  5. 将测试框架代码复制到远程机器
  6. 运行测试
  7. 构建完成

自动化UI测试使用NUnit编写,需要直接在测试虚拟机上运行(无法远程运行)。如果测试失败,它应该出现在TeamCity构建日志中,并且构建会失败。我不想在任何测试虚拟机上安装VS或TeamCity构建代理。

看起来,大部分工作都可以使用psexec.exe实现。是否有任何其他(最好是开源)工具我应该查看?

2个回答

7

深吸一口气

我们正在寻找一些能帮助我们进行自动化UI测试的工具。我们使用ranorex来测试UI,使用TeamCity/Msbuild来执行测试。

我们从未找到任何可以帮助我们的工具(我一直在密切关注,如果有将会监控此主题),但是以下是我们做的事情:

  1. CI服务器将设置文件和测试脚本复制到测试主机服务器。
  2. CI服务器然后启动测试主机服务器上的自定义应用程序,并提供要启动的虚拟机名称。
  3. 测试主机服务器使用 Virtual PC.exe -singlepc -pc vhdname.vhd -launch 启动虚拟机软件,并等待其关闭(在运行完测试后)。
  4. 虚拟机从网络位置获取设置文件和脚本并执行。
  5. 测试完成后,虚拟机将结果返回到网络位置并关闭自身。
  6. 控制权返回给自定义应用程序。
  7. 控制权返回给CI服务器,它根据结果确定测试是否通过(并更新UI以便开发人员知道结果)。
  8. 结果作为TeamCity中的构件收集并在Svn中标记。

我想这就是全部内容了。虽然这很复杂,但很有效。希望对你有所帮助。


2
Gallio团队的Jeff Brown谈到了一种叫做Archimedes的工具,他计划编写该工具以支持这种需求。听起来很有前途,但我认为目前还没有取得太多进展。
与此同时,在Gallio项目中有一个叫做VM Tool的东西,可能可以满足您的需求。它提供了停止、启动和快照虚拟机的命令,更重要的是,可以复制文件并执行命令。
我想您也考虑过PowerShell远程管理吧?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接