【发布时间】:2011-06-09 01:26:10
【问题描述】:
在我们的 QA 团队中,我们会针对开发人员所做的每个提交运行一套自动化测试。由于每天都有相当多的此类提交,并且没有开发人员愿意等待超过几分钟才能获得反馈,因此我们仅限于 5 分钟的测试。在这 5 分钟内,我们希望运行尽可能多的测试。
我们发现硒测试最适合我们的需求:主要是因为它们可靠。如果 selenium 测试报告了一个 JS 错误,那么你有 95% 的把握这是一个真正的错误。 (这是我们从使用 HTMLUnit 的经验中学到的极其重要的属性)。但是,运行 selenium 测试又慢又重。 (我们维护了一个小型 cpu 场,因此我们可以异步运行许多 selenium 服务器和许多脚本)。
最近我们提出了一种新方法 - 仅在您真正需要它的地方使用 selenium:弹出窗口、ajax、一般的 JS,.. 在其他地方使用“文本浏览器”。例如,如果您想检查以下链接是否“有效”:
<a href='/somewhere'> link </a>
你真的不需要硒。您可以对页面执行 GET 请求,然后使用正则表达式/解析页面并使用 xpath/.. 底线 - 您不需要 JS 引擎。显然,这是一个更轻、更快的测试。
我们在这种方法上取得了很大的成功,我们遇到了以下链接:
<a href='/somewhere-1' onclick="foo()" > link 1 </a>
<a href='/somewhere-2' onclick="foo()" > link 2 </a>
... many more such links ...
因此,在这种情况下,您实际上不必运行按下每个链接的 selenium 脚本。只需使用 selenium 单击其中一个(因此您可以测试 JS 函数 foo() 的功能),然后使用文本浏览器验证其他链接的 hrefs。
我的问题是你认为我们应该在哪里划清界限?我很乐意听取您的意见 - 是否有“文本浏览器”工具(我们尚未使用 WebDriver)?
【问题讨论】: