我的目标是:
- 我们的客户可以生成新的网络测试。
- 我们的持续集成服务器进行测试环境部署;它应该针对它执行测试
- 该测试也可以在其他一些环境中运行。
(最终验收测试应由客户进行,以测试字体等,但这对于我们的测试环境来说是一个很好的验收前检查。客户可以专注于其他事情而不是现在。)
通常某些属性(如文本字段 id)已更改或某些东西,测试将在几周内中断。似乎记录的测试经常中断,因此最好轻松地记录一个新的测试,而不是尝试维护和修改旧的测试。
现在,我找到了一种全新的方法。也许录音不是正确的方法。怎么样,如果我们的客户可以用人类可读的自己的语言制作用例,机器可以理解并编译成网络记录(使用领域特定语言,DSL)。这不是科幻小说,它已经制作完成,请继续阅读。:-)
我曾尝试使用这些自动 Web 测试框架:
- Visual Studio Web 测试(客户无法执行)
- Selenium(仅适用于 Firefox,我们的客户有 IE)
- WatiN(.NET 版本的 Watir,记录器似乎有点 bug)
- HP Quick Test Pro(不容易进行新测试)
这些都没有提供我真正需要的东西......但 Selenium 是最接近的。
我们的客户说芬兰语,因此在软件项目的开始,在规范阶段,用户编写了一个用例,例如:
- 艾娃“OmaLomake”
- Syötä “Tuomas” kohtaan “nimi”
- 佩娜“苏拉瓦”
翻译:
- 打开“我的表格”
- 在“名称”字段中插入“Tuomas”
- 按“下一步”
现在......这是一个人类可读的用例,但也可以编译为自动网络验收测试。Open、Insert、to field 和 Press 是关键字,其他是值。
什么样的 DSL 工具对此有好处?
微软正在他们的 Oslo 项目中制作一个新的 DSL 制作工具,称为 MGrammar。这意味着您可以制作一种自定义语言,让非技术人员更容易使用机器。(与 Cobol 和 Visual Basic 相同(但失败了)的基本思想。)
我发现有人已经用 MGrammar 制作了这种 DSL,但它是为 Watin 而不是 Selenium: http: //www.codinginstinct.com/2008/11/creating-watin-dsl-using-mgrammar.html
所以持续集成服务器流程将是:
- 从源代码管理中获取新版本(像往常一样)。
- 构建、运行单元测试并分析代码(像往常一样)。
- 在版本控制中制作安装包和标签版本(像往常一样)。
- 将用例编译为 Web 测试
- 运行网络测试
- 接受/拒绝软件:-)
在持续集成服务器中运行 Web 测试通常意味着大量的配置工作。所以,在我尝试这个之前,我很好奇,你怎么看?您是否使用过相同的设置,您的经验是什么?(具体是什么环境?)
DSL 怎么样,它是否有足够的能力用于用例,还是会成为另一个无休止的开发任务?客户会生成测试吗?