需要让 WatiN 为我们工作,或者需要找到不同的工具

软件测试 瓦廷
2022-02-06 14:05:54

tl;dr 版本: WatiN 测试记录器看起来已经死了,我不确定WatiN本身的状态。我需要让它们发挥作用或找到满足我们要求的替代方案。建议?

更长的版本:

我们的测试人员为我们的内部业务线 Web 应用程序提供一长串手动回归测试。我正在尝试帮助自动化这些测试,以便它们可以按需运行或在每个自动化构建结束时运行。

我们是 Web 应用程序的 .NET 商店,内部 Web 应用程序仅支持 IE。我不能改变这两个事实。

鉴于上述情况,我们对测试框架的要求似乎是:

  1. 需要在 IE 中记录和运行测试
  2. 记录测试时不需要涉及编码(我和其他 .NET 开发人员可以并且将需要做一些最少的编码来创建测试套件、处理任何动态数据等)
  3. 需要处理一些 Javascript、AJAX 等。

强烈的偏好包括:

  1. 运行测试的代码可以用 .NET 编写,测试可以集成到 Visual Studio 和/或 MSBuild 项目中。Java 是一个遥远的第二选择,其他任何东西都是非常不利的。我知道其他语言,并且我相信其他开发人员也知道,但是当我们稍后雇用开发人员时,减少语言要求将是一件好事。
  2. 工作的开源工具很棒。商业工具当然不是不可能的,但我们确实需要限制成本,而且工具肯定需要物有所值。我不知道确切的界线在哪里,但有人告诉我,例如,Rational 套件可能太贵而无法获得批准。
  3. 一个使用该工具和良好文档的活跃社区会很好。不断开发和改进的工具也是一件好事。

最初,在我看来,当与WatiN 测试记录器结合使用时, WatiN可以很好地满足我们的要求。那是在我尝试它们之前。我只尝试了测试记录器的 2.0 测试版,但似乎仍然存在一些问题(即使纠正了无法在 64 位 Win7 上运行库存安装的问题)。

我记得watiN.org(目前已关闭,尽管问题似乎正在调查中)至少暗示有多种测试记录解决方案,尽管WatiN 测试记录器被认为是最好的,但我一直无法找到它们。有吗?

最后,如果我不能让这些工具为我们工作,有什么好的替代方案可以满足我所说的要求?

4个回答

这里的关键问题是,“为什么要使用记录和回放技术,而不是使用页面对象对测试进行编码?” 我可以想到两个原因:

  1. 您的团队缺乏在不使用 Record and Playback 的情况下使用 C# 编写测试代码的技术技能。
  2. 您只是没有意识到还有其他方法可以创建更强大且更容易维护的自动化 UI 测试(并且在一些初步努力之后更快)。但是,您的测试人员可以编写高质量的代码,而无需完全依赖记录和回放。

如果您的团队属于第 1 类,那么您最好的选择可能是使用 Firefox 在 Selenium 中记录所有内容,然后使用 IE 开发人员,一些常识,也许开发人员的一些帮助来填补那些不起作用的部分火狐。然后你可以将自动化设置为在 IE 中运行(恐怕我不知道怎么做,但我以前做过),并在正确的浏览器上实际运行你的自动化。执行此操作时请注意,像这样的录制和播放测试本质上是脆弱且难以维护的,并明智地选择您将要测试的 UI 区域。

如果您的团队属于第 2 类,那么您有一个更好的选择,这是 Dmitry 在他的回答中给出的。此解决方案 - 编码的页面对象 - 可与 Selenium RC 或 WatiN 一起使用。不认为自己是开发人员的测试人员往往更喜欢 Selenium,部分原因可能是因为能够使用 Record 和 Playback 来获得有关如何开发的提示,而开发人员往往喜欢 WatiN 的丰富库。Selenium 可能在测试人员社区中得到了更强大的支持。

这是使用 WatiN 进行页面对象设计的讨论您还应该阅读有关附加浏览器FindBy 属性的帖子Dmitry 有很好的 Selenium 链接。

我已经转向 Selenium 和 WebDriver 进行单元测试。我没有尝试在 FireFox IDE 中记录任何内容,因为我习惯于在 JUnit 中编写测试。

http://seleniumhq.org

首先,请查看以下精彩的博客文章:

保持测试干燥

这篇文章提到了页面对象模式,它有助于让你的代码变得干净。我在 WatiN 上进行自动化操作,并使用这种模式,而不是逐步记录和复制粘贴用户登录屏幕上的点击。

IE 开发人员——这就是我所需要的。

当然,只有当您的应用程序支持 IE 和/或 Firefox 时,WatiN 才是好的。

如果你想要一个支持所有现代浏览器的框架——请考虑 Selenium。

如果自动化需要围绕自动化而 IE 一个选项是 Visual Studio Ultimate,它确实具有录制和回放功能以及一些编码选项,因此尽管测试人员最终习惯了该界面,但最终还是有相同的环境可以用 C# 或甚至使用 CodedUI 模块来创建可重用的功能/模块。

你没有提到成本,除非你有正确的 MSDN 订阅,否则 VS Ultimate 并不便宜,所以我把它作为我正在使用的选项放在那里。

过去我也使用 Visual Studio(不是 Ultimate)使用 Selenium 编写测试,最近我已经转换到 Selenium 2 webdriver,它非常漂亮。