我的职责是为小型企业客户挑选并继续开发 PHP 网站。项目没有测试代码。我想快速为网站后端建立至少非常基本的回归测试。
- 我需要测试网页char到char的全部内容。必须看到失败测试的差异。
- 我需要能够设置 cookie 和 GET/POST 数据。
- 每隔几天,我就会从生产数据库更新本地数据库。然后我想对失败的测试有一个概述,并很快更新我的测试服,以便一切都再次通过。
关于Selenium(并且只有 Selenium,因为我不知道 WatiN)——它只能做你在浏览器中可以做的事情。它可以单击、输入字段、提交表单、截屏(这是一个非常好的)、设置 cookie(这个是肯定的)。您始终可以通过 URL 设置 GET 数据。但我不知道 Selenium 中有任何技术可以让您以除在浏览器中导航之外的任何其他方式设置 POST 数据。此外,由于测试在您的浏览器中,它们并不是特别快。例如,在我们的产品上,大约 250 步的单一彻底测试在我的计算机上大约需要 10 分钟才能完成。当然,您始终可以使用 Selenium Grid 在多台计算机之间进行划分。这只是更多的工作。
总结一下 - 我会说是的,Selenium 可以满足您的需求,因为有很多方法可以在其中编写一个好的测试,每个人都会找到他的风格。它适用于快速检查、功能确认,也适用于全面测试等。但如果你想做一些非常高级的东西,那么这将是一项长期的工作。Selenium 以多种不同的方式提供了如此多的功能,因此了解它们并知道如何使用它们绝对是一项全职工作。
试用 Selenium-IDE 20 分钟。它只是 Firefox 的一个插件,可以记录您的操作,然后重播它们。如果你喜欢你所看到的,那就去吧。如果没有,请雇用愿意的人。
我不确定我在这里是否为时已晚,但关于 WatiN,它仅基于 IE,因此如果您打算使用任何其他浏览器,最好使用 Selenium WebDriver(尽管 WatiN 有一些 Firefox 支持)。根据我的发现(我同时使用了 WatiN 和 Selenium),Selenium 可以实现更多低级交互(另请参阅 Selenium Grid),但实际上我认为这取决于您想要实现的目标和个人偏好。如果您有时间编写自己的包装器来与 WatiN/Selenium 交互,您会发现测试本身运行起来相当快。此外,自动化的美妙之处在于,一旦编写了这些测试,您就可以运行它们并在它们完成时离开。