【问题标题】:How to automate installer testing如何自动化安装程序测试
【发布时间】:2009-07-08 19:19:30
【问题描述】:

我想知道是否有人有任何最佳实践来自动测试具有可能不同硬件/软件配置文件的各种机器上的安装程序,并通过为安装程序指定各种选项。我的想法是我可以编写“类似单元测试”的代码来设置机器,运行安装程序,然后测试某些事情是否正确。测试可能类似于:

Test:
    Boot Machine without IIS
    Run Installer
    Assert Installer Had Errors

Test:
    Boot Machine with IIS
    Run Installer
    Assert Installer Ran

Test_Fixture:
    SetUp:
        Boot Machine with IIS

    Test:
        Run Installer without IIS install
        Assert Website Not Installed

    Test:
        Run Installer with IIS install
        Assert Website Installed

我知道我可以创建很多虚拟机,但是等待虚拟机启动以进行每个功能测试听起来比我想要的要多得多。我真正想要的是一种虚拟化安装程序环境的方法。有什么建议么?

【问题讨论】:

    标签: unit-testing installation automated-tests virtualization


    【解决方案1】:

    我们创建了一组虚拟机,发现它非常易于管理。我们通宵运行 13 个不同的 Windows 安装程序的测试。我们创建的虚拟机非常简单,因此可以并行运行多个测试。

    【讨论】:

    • 如何在 VM 上测试安装,以及如何在测试后将每个 VM 恢复到稳定状态?
    • 我们的设置是一台计算机驱动一系列 VMWare 映像。这台计算机使用 VMWare 的 VIX API 来启动、停止和恢复映像。使用 VIX API 运行映像后,您可以向 VMWare 映像发送命令行参数以开始安装。我们的安装必须能够在没有用户界面的情况下运行,因此我们可以在命令行上传递所有参数。然后我们抽查文件并运行基本测试。如果出现问题,我们会执行记录安装。完成测试后,我们只需还原图像。在发布之前,我们仍然有一个人类外观测试它们的合身性和完成度。
    • 您能找到一种方法在启用了 UAC 的机器上执行此操作吗?我想继续使用 UAC,因为这应该仍然是测试场景的一部分。
    • 遗憾的是,我们在执行此操作时无法找到保持 UAC 启用的方法。
    • 我能够在被测目标 VM 上启用 UAC 的情况下执行此操作。您需要强制对 VM 进行交互式登录会话(我选择编写 LogonExpert 脚本,这对我来说是最可靠的方式),然后使用 BrekIT 来控制 UAC 对话框(我使用了他的 VBScript 界面)。哦 - 您还必须在目标 VM 上安装 BrekIt,但是静默安装只需几秒钟。
    【解决方案2】:

    如果您可以从命令行运行安装程序,那么很容易有一个脚本来自动调用它。

    然后您可以使用网络应用测试工具来查看它是否安装成功,例如 http://seleniumhq.org/ 为此,您将需要一种独特的方式来测试新安装 - 就像当前版本的页面一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      • 2010-12-07
      相关资源
      最近更新 更多