为什么Selenium RC这么慢?

Pet*_*ete 10 selenium selenium-rc

有一段时间我一直在调查Selenium RC,以便对我的Web应用程序进行功能测试.我现在已经找到了一个非常有效的测试策略,我不想放弃Selenium RC(花了几周时间试图找出验证ASP.NET验证控件的好方法).

但是现在我的Selenium RC冒险从POC变成了我实际使用的东西,我遇到了一个问题.这太疯狂了.执行加载页面的单个测试,填写某些字段,然后单击按钮需要执行大小的秒数.当它执行时,我可以很容易地看到每个字段一次填写一个.在Firefox中使用Selenium IDE并不是那么慢.

我找到了这个页面,明确指出Selenium RC很慢http://selenium-grid.seleniumhq.org/how_it_works.html

但那是为什么呢?是因为浏览器正在轮询selenium服务器吗?如果是这样,是否可以修改此轮询间隔?还是有另一个原因.我不习惯远程呼叫需要花费大量时间来执行.

执行一些测试应该花费很长时间,这太可怕了.我可以比单个网页运行10个测试更快地执行我的整个演示文稿(MVP),业务和数据库层测试套件(500多个测试).

Aut*_*ter 7

功能/集成测试需要更长时间才能运行,特别是因为它们在浏览器中运行.这意味着它们必须加载MVC的所有3层,然后在页面上执行任何操作时执行相同的操作.因此,每个操作都有可能进入数据库.与单元测试相比,这本质上是一项长期运行的任务.

测试首先open在该页面上执行,然后等待加载所有内容.因此,如果这需要很长时间,那么如果您的用户访问该页面可能需要很长时间.例如,大量的图像,未经识别的JavaScript/CSS,下载时间不佳.

来自Selenium的那个页面说服务器是一个瓶颈,因为它暗示你正在同步运行测试,如果你转移到Selenium Grid,它可以并行运行它们以使测试套件更快完成.这并不意味着selenium服务器正在轮询以查看它应该做什么,而是Selenium Servers轮询Grid集线器以查看它是否仍处于活动状态并显示它们仍处于活动状态.

测试运行缓慢的另一个原因是Selenium的基本语言是与DOM交互的JavaScript.DOM会降低速度,特别是如果您的测试使用XPath作为定位器.XPath + JavaScript + IE + Selenium ==痛苦,我们Selenium开发人员可以做更多的事情来微调它.好吧,那就是Selenium 2,它是alpha版本,可以从http://selenium.googlecode.com/下载.我一直致力于.NET实现,目前看到了巨大的速度提升.我在博客上写了这篇文章,因为这些变化令我震惊.我看到最多8次测试在同一时间运行Selenium 1进行1次测试

  • 启动浏览器是一个很大的开销,并且是特定于RC的.在所有其他selenium实例中,浏览器必须打开才能开始测试. (2认同)

小智 7

您是在多窗口模式下使用IE和Selenium进行测试吗?这非常慢,您应该尝试使用-singlewindow启动seleniumserver