代码之家  ›  专栏  ›  技术社区  ›  Peter Bernier

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

  •  14
  • Peter Bernier  · 技术社区  · 16 年前

    有没有人找到了一种运行Selenium RC/Selenium网格测试的方法,它是用C#并行编写的?

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

    最近,我花了一些时间研究Selenium网格项目,其目的本质上是允许这些测试并行运行。不幸的是,我使用的TestDriven.net插件似乎是连续运行测试的(例如,一个接一个)。我假设NUnit会以类似的方式执行测试,尽管我还没有实际测试过。

    我正在考虑的另一个选择是将我的测试套件分成不同的库,这样可以让我同时从每个库运行测试,但是如果可能的话,我想避免这样做,因为我不相信这是拆分测试套件的有效原因。

    3 回复  |  直到 16 年前
        1
  •  5
  •   Mark    16 年前

    我正在做这件事 Gallio 最新的可以驱动mbUnit并行测试。你可以把他们逼到一个 Selenium Grid

    我用的是 latest nightly from 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() .

        2
  •  1
  •   pablo pablo    16 年前

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

    我们每天都用它在不同的发行版和组合下测试我们的软件。举个例子:我们有一个包含210个测试的重测试(长测试)的测试套件。它们中的每一个都设置一个服务器,并在命令行中运行一个客户机,运行多个操作(最多210个场景)。

    好吧,我们使用同一个套件在不同的Linux组合和windows变体上运行测试,还将一些组合起来,比如windows服务器和Linux客户端、windows xp、vista、域控制器、域外等等。我们使用相同的二进制文件,然后在几个框中启动“代理”。

    所以,如果你有任何关于如何设置它的问题(恐怕还不简单),不要犹豫。

    我很久以前在DDJ写过一篇关于它的文章: http://www.ddj.com/architect/193104810

        3
  •  0
  •   Jeff Martin    16 年前

    我不知道没有答案算不算答案,但我想说你已经研究了所有的事情,你真的想出了两个可能的解决方案。。。

    • 测试套件并行运行测试
    • 拆分测试套件

    我对其他任何事情都茫然不知所措。