这实际上不是一个真正的“这个或那个”问题,因为您实际上可以通过 watir-webdriver 一起使用这两个问题。
首先:
如果我们谈论的是浏览器级别的测试,您几乎可以完全忽略用于运行服务器端的语言。 一旦页面呈现为 HTML+Javascript 并通过 HTTP 发送到浏览器,就没有剩余的 C#。所以没有必要使用 c# 作为你的测试自动化语言。(你可能仍然想要,但你不需要)
其次
,从您的需求中清除记录/播放的想法。从长远来看,它对 HTTP 协议级别以上的任何东西都不起作用(记录器在协议中作为负载测试场景的起点很好,但不适用于 UI 级别的功能测试)这是最有经验的测试人员已经知道了大约 15 年,并且是经验丰富的 QA 人员广泛共识的领域。由此产生的测试很脆弱并且难以维护。唯一喜欢记录/回放的人是工具供应商的销售人员,他们依赖于该级别的技术,他们使用它们来说服经理使用他们的工具,“任何人都可以进行测试自动化”恕我直言,Selenium IDE/Recorder 存在的全部原因是为了与这种心态竞争,我知道很少有 Selenium 用户使用它,或者是旧的 Selenium Grid。
那你用什么语言?
考虑到这一点,请使用最适合您的测试人员的方法,并与您正在使用的任何框架相吻合,例如 FITNess 或 Cucumber 等。我个人认为 Ruby 是测试人员编写脚本的绝佳语言,因为它易于编码和学习。因此,如果您的 QA 人员不是经验丰富的编码人员,那么这可能是比尝试教他们 C# 更好的方法。此外,Watir API 非常面向对象,对于掌握 HTML 和网页的 DOM(域对象模型)的任何人来说都易于理解。我还使用 cucumber 来做 BDD,这是在 Ruby 中完成的,因此与 Watir 非常吻合。OTOH,如果将要进行这种自动化的人知道另一种语言,那么您可能想要使用 Selenium RC 和那种语言。
编辑:决定使用哪种语言的最大因素通常归结为“您希望谁进行测试”为他们。OTOH,如果您希望您的开发人员能够修复他们因 UI 更改等而破坏的测试,那么您可能需要选择一种与您的开发团队正在使用的通用语言。随着敏捷团队使用嵌入式测试人员作为团队的一部分,而不是进行交接,这种事情可能会成为一个更大的问题。现在还有像 Cucumber 这样的 Java 和 JS 版本的工具,所以现在你也有新的选择。(自从我最初撰写此答案以来,这在 5 年内发生了很大变化)
进入 Webdriver
事情是 Watir 和 Selenium 比许多人意识到的更接近,特别是现在 Watir-Webdriver gem 已经到来,它使用 Selenium 的新 Webdriver 技术(据我了解,它也正在取代 Selenium 'Core')来驱动引擎盖下的浏览器,但允许测试人员使用出色的 Watir API 在 ruby 中编写代码。随着 Watir 和 Selenumn 都转向 Webdriver 来与浏览器交互,这似乎是这两个项目的未来。恕我直言,使用 Watir-Webdriver 可为您提供两全其美的效果,由于 Webdriver 和 Watir 的简单编码,因此具有广泛的浏览器支持。
我会尝试两者(Selenium RC 和 Watir)的教程,看看哪个 API 看起来更容易用于编写测试代码。如果您更喜欢 Watir,请确保您立即将它与 Watir-Webdriver 一起使用。