有没有人找到一种并行运行C#Selenium RC测试的方法?
有没有人找到一种方法来运行以Cin并行编写的Selenium RC / Selenium Grid测试?
我目前有一个使用Selenium RC的Cdriver编写的相当大的测试套件。运行整个测试套件需要一个多小时的时间才能完成。我通常不必运行整个套件,因此到目前为止,这并不是一个问题,但是我希望能够更定期地进行操作(例如,作为自动构建的一部分)
我最近花了一些时间来研究Selenium Grid项目,该项目的主要目的是允许这些测试并行运行。不幸的是,我正在使用的TestDriven.net插件似乎是串行运行测试的(即一个接一个)。我假设NUnit会以类似的方式执行测试,尽管我实际上并未对此进行测试。
我注意到NUnit 2.5 Beta开始谈论与pNUnit并行运行测试,但是我对这个项目还不够熟悉,无法确定这是否行得通。
我正在考虑的另一种选择是将测试套件分离到不同的库中,这将允许我同时从每个库运行测试,但是如果可能的话,我想避免这种情况,因为我不确定这是拆分的正当理由测试套件。
解决方案
我不知道是否有任何答案都不能算作答案,但我想说我们已经研究了所有内容,并且确实提出了两种可能的解决方案...
- Test Suite并行运行测试
- 拆分测试套件
我对其他任何事情都不知所措。
大约三年前,我写了PNUnit作为NUnit的扩展,很高兴看到它最终被集成到NUnit中。
我们每天使用它在不同发行版和组合下测试我们的软件。举个例子:我们有一个包含210个测试的大型测试(长测试)的测试套件。他们每个人都设置服务器并在命令行中运行运行多个操作的客户端(最多210个方案)。
好吧,我们使用同一套件在不同的Linux组合和Windows变体上运行测试,并且还组合了诸如Windows服务器与Linux客户端,Windows XP,Vista,然后是域控制器,域外等等的测试。我们使用相同的二进制文件,然后在几个框中启动"代理"。
我们使用相同的平台进行以下操作:平衡负载测试负载->我的意思是,更快地分块运行。同时运行几种组合,我认为更有趣:定义多客户端方案:两个客户端等待服务器启动,然后启动操作,彼此同步等等。我们还使用PNUnit进行负载测试(针对单个服务器的数百个盒子)。
因此,如果我们对如何设置有任何疑问(恐怕这还不简单),请不要犹豫。
我也很早以前就在DDJ上写过一篇文章:http://www.ddj.com/architect/193104810
希望能帮助到你
我正在做这件事,发现Gallio最新可以并行驱动mbUnit测试。我们可以将它们驱动到一个Selenium Grid集线器,该集线器可以监听多个远程控制服务器。
我正在使用Gallio的最新每晚数据来获取ParallelizableAttribute和DegreeOfParallelismAttribute。
我注意到的事情是,我不能依赖于并行测试中的TestSet和TestTeardown隔离。我们需要测试看起来像这样:
[Test] public void Foo(){ var s = new DefaultSelenium("http://grid", 4444, "*firefox", "http://server-under-test"); s.Start(); s.Open("mypage.aspx"); // Continue s.Stop(); }
使用[SetUp]属性启动Selenium会话导致测试无法从s.Start()获取远程会话。