selenium webdirver之ruby-关于grid的一些说明

引用一段高人的话,我开始也误解了。。。。

=========================================

第一,怎么能同时跑多个 测试,就是所谓的并发。否则来100个case,一个一个的跑,几个小时才能跑完。那也太慢了吧。
第二,我需要在不同的环境/浏览器下运行同样的测试。看看我的程序会不会由于浏览器不同而有问题,最常见的就是需要同时在IE和Firefox 下面都测试。
 
研 究selenium的时候,肯定也看到过听说过 selenium grid 这个东西,肯定也看过介绍。从他的介绍上来看。刚好满足 上面的两个问题。然后很多人以为这下发了。只要把selnium grid 应用进来,那就好了。 然后就开始去研究怎么能够把grid配置起来,从而来满足上面两个需求。
 
然后我经常碰到别人问我两个问题。怎么配置grid,让grid来调用我的脚本,然后实现多环境下面的测试。。另外一个是 怎么配置grid,让grid来调用我一些脚本,让他们并行运行来加快速度。
 
这里要说一下。这两个都是误区。。因为无论grid怎么配置,都不会自动来调用你的脚本,完成所谓的并行或者多环境测试。
 
下面一点很重要:Grid 只是提供运行脚本的环境,无法决定脚本以什么样的形式去跑(并行的方式,或者多环境的方式)。脚本以什么样的形式跑,由脚本本身和脚本的runner (一般用junit或者TestNG)的配置所决定.
 
然后我们分别来说说并行和多环境的是怎么实现的。
 
第 一,并行。并行很简单。。脚本就是普通的脚本。然后如果你的runner支持并行运行的话。你就配置成并行。那运行起来就是并行的。。目前junit本身 不支持并行,一般都是用TestNG. 只要让TestNG 并行的运行测试,无论你的测试环境是由一个grid拖几个rc组成,还是 单一一个rc组成。。实际上 运行起来 测试就是并行的,唯一的区别是。如果用了grid的话,grid会把并发数量平均分配到不同的rc上去,然后每个rc会启动一个浏览器运行测试。而没有用 grid情况就是同一个rc直接跑多个,就是一个rc直接打开多个浏览器窗口运行多个测试。
 
第 二,多环境。 说多环境,这里也要澄清一下。 不是说给一个普通的测试脚本,丢给grid就可以自动实现多环境同时测试了。那是完全错误的。。这里需要几点。1. 一个普通脚本能测试一个某一种环境。所以如果你要测试多个环境就需要多个脚本。而这些脚本的区别仅在于setup的时候定义 DefaultSelenium("localhost",4444,"*firefox",Url); 这里。 因此两个测试方法也可以到同一个文件里面。写两个不同的方法,不同的定义DefaultSelenium部分,但调用同样的测试步骤。(就是 selenium.open...开始到selenium.stop...). 这样一个文件下就算包含测试两个不同环境的测试方法了。
2. 让这两个测试方法,并行运行。。那又是testng的事情了。配置testng的suite。不细说。可以查看testng的文档。
3. grid配置的测试的rc环境,里面需要有刚才两个测试方法所需要的环境。
 
好了,这样,就实现了多环境,同时测试。。 

你可能感兴趣的:(职场,selenium,休闲)