有没有人找到并行运行C#Selenium RC测试的方法?

问题描述:

有没有人找到一种方式来运行用C#编写的Selenium RC/Selenium Grid测试?有没有人找到并行运行C#Selenium RC测试的方法?

我目前有一个使用Selenium RC的C#驱动程序编写的相当大的测试套件。运行整个测试套件需要一个多小时才能完成。我通常不需要运行整个套件,所以它一直都不是问题,但是我希望能够更经常地做更多的事情(例如,作为自动化版本的一部分)

我最近在Selenium Grid项目上花费了一些时间,其目的主要是允许这些测试并行运行。不幸的是,我使用的TestDriven.net插件似乎是连续运行测试(即一个接一个地)。我假设NUnit会以类似的方式执行测试,虽然我没有真正测试过。

我注意到NUnit 2.5测试版正在开始讨论与pNUnit并行运行测试,但是我并没有真正熟悉自己对项目的了解,以确定它是否可行。

我正在考虑的另一个选择是将我的测试套件分成不同的库,这将允许我同时从每个库运行测试,但是如果可能,我想避免这种情况,因为我不相信这是有效的分裂测试套件的原因。

我不知道如果没有答案算作一个答案,但我说你已经研究一切,你真的想出了2个可能的解决方案...

  • 测试套件运行在平行试验
  • 分割测试套件了

我在为别人任何东西的损失。

几乎三年前,我写了PNUnit作为NUnit的扩展,我很高兴看到它最终被集成到NUnit中。

我们每天使用它来测试我们的软件在不同的发行版和组合中。举个例子:我们有一个包含大约210个测试的重测试(长测试)。他们每个人都建立了一台服务器,并在运行多个操作的命令行中运行一个客户端(最多210个场景)。

那么,我们使用相同的套件在不同的Linux组合和窗口变体上运行测试,并且还将Windows服务器与Linux客户端,Windows XP,Vista,然后域控制器,域外组合在一起,以及等等。我们使用相同的二进制文件,然后在几个框中启动“代理程序”。

我们使用相同的平台来:平衡负载测试负载 - >我的意思是,以更快的速度运行。同时运行多个组合,我认为更有趣:定义多客户端场景:两个客户端等待服务器启动,然后启动操作,相互同步等等。我们还使用PNUnit进行负载测试(针对单个服务器的数百个盒子)。

所以,如果您对如何设置它有任何疑问(这不简单,我很害怕),请不要犹豫,问。

而且我在DDJ写了一篇文章早就看:http://www.ddj.com/architect/193104810

希望它可以帮助

我工作的这事,并已发现在平行Gallio最新可驱动MbUnit的测试。您可以通过一个Selenium Grid集线器驱动它们,集线器可以监听多个远程控制服务器。

我正在使用latest nightly from Gallio来获得ParallelizableAttributeDegreeOfParallelismAttribute

我注意到的东西是我不能依靠TestSetTestTeardown被隔离的并行测试。你需要测试看起来是这样的:

[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]属性,启动硒会议是导致测试不从s.Start()得到远程会话。

+0

感谢您的回复。我暂时离开了这个项目,但当我回到它时,我会给你的解决方案一个镜头! – 2009-03-05 13:47:26