2008-09-18 72 views
14

有沒有人找到一種方式來運行用C#編寫的Selenium RC/Selenium Grid測試?有沒有人找到並行運行C#Selenium RC測試的方法?

我目前有一個使用Selenium RC的C#驅動程序編寫的相當大的測試套件。運行整個測試套件需要一個多小時才能完成。我通常不需要運行整個套件,所以它一直都不是問題,但是我希望能夠更經常地做更多的事情(例如,作爲自動化版本的一部分)

我最近在Selenium Grid項目上花費了一些時間,其目的主要是允許這些測試並行運行。不幸的是,我使用的TestDriven.net插件似乎是連續運行測試(即一個接一個地)。我假設NUnit會以類似的方式執行測試,雖然我沒有真正測試過。

我注意到NUnit 2.5測試版正在開始討論與pNUnit並行運行測試,但是我並沒有真正熟悉自己對項目的瞭解,以確定它是否可行。

我正在考慮的另一個選擇是將我的測試套件分成不同的庫,這將允許我同時從每個庫運行測試,但是如果可能,我想避免這種情況,因爲我不相信這是有效的分裂測試套件的原因。

回答

0

我不知道如果沒有答案算作一個答案,但我說你已經研究一切,你真的想出了2個可能的解決方案...

  • 測試套件運行在平行試驗
  • 分割測試套件了

我在爲別人任何東西的損失。

1

幾乎三年前,我寫了PNUnit作爲NUnit的擴展,我很高興看到它最終被集成到NUnit中。

我們每天使用它來測試我們的軟件在不同的發行版和組合中。舉個例子:我們有一個包含大約210個測試的重測試(長測試)。他們每個人都建立了一臺服務器,並在運行多個操作的命令行中運行一個客戶端(最多210個場景)。

那麼,我們使用相同的套件在不同的Linux組合和窗口變體上運行測試,並且還將Windows服務器與Linux客戶端,Windows XP,Vista,然後域控制器,域外組合在一起,以及等等。我們使用相同的二進制文件,然後在幾個框中啓動「代理程序」。

我們使用相同的平臺來:平衡負載測試負載 - >我的意思是,以更快的速度運行。同時運行多個組合,我認爲更有趣:定義多客戶端場景:兩個客戶端等待服務器啓動,然後啓動操作,相互同步等等。我們還使用PNUnit進行負載測試(針對單個服務器的數百個盒子)。

所以,如果您對如何設置它有任何疑問(這不簡單,我很害怕),請不要猶豫,問。

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

希望它可以幫助

5

我工作的這事,並已發現在平行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

相關問題