我不敢相信我是第一个经历这个思考过程的人,所以我想知道是否有人可以帮助我解决这个问题。
现状:开发者写一个网站,运维部署它。部署后,开发人员会对其进行烟雾测试,以确保部署顺利进行。
对我来说这感觉不对,它本质上意味着需要两个人来部署一个应用程序;在我们的案例中,这两个人位于地球的相反两侧,时区开始发挥作用,造成严重破坏。但事实仍然是,开发人员知道最少的测试集是什么,并且可能会随着时间而改变(尤其是对于我们应用程序的 Web 服务部分)。操作,尽管对他们有充分的尊重(他们自己会这么说),但他们是需要一组指令才能遵循的按钮推动者。
手动解决方案是我们记录测试用例和操作,每次部署时都遵循该文档。这听起来很痛苦,而且他们可能会将不同的版本部署到不同的环境(特别是 UAT 和生产环境),并且可能需要为每个环境提供不同的指令集。
最重要的是,我们近期的一个计划是拥有一个自动化的日常部署环境,因此我们必须指导计算机如何部署我们的应用程序的给定版本。我非常想添加有关如何对应用程序进行烟雾测试的说明。
现在开发人员更擅长为计算机记录指令而不是为人类记录指令,因此显而易见的解决方案似乎是使用 nUnit 的组合(我知道这些本身不是单元测试,但它是为目的而构建的测试runner) 和 Watin 或 Selenium API 来运行明显的浏览器步骤并调用 Web 服务并向操作人员解释如何运行这些单元测试。我能做到;我大部分已经做到了。
但是,如果我能让这个过程变得更简单,那不是很好吗?
此时,运维人员和计算机必须知道哪一组测试与应用程序的哪个版本相关,并告诉 nUnit 运行程序它应该指向哪个基本 URL(例如,www.example.com = v3. 2 或 test.example.com = v3.3)。
如果测试运行程序本身有办法给它一个基本 URL 并让它下载一个 zip 文件,解压缩它并在运行它在那里找到的任何测试装置之前自动编辑一个配置文件,那不是更好吗?
有没有可以做到这一点的开源应用程序?有需要吗?有没有使用 nUnit 以外的东西的解决方案,也许是 Fitnesse?
作为记录,我首先关注的是基于 .NET 的工具,因为大多数开发人员主要是 .NET 开发人员,但我们并没有与之结婚。如果存在使用其他语言编写测试的此类工具,我们会很高兴地适应,只要有适用于 Windows 的测试运行程序。