2010-04-23 113 views
4

我打算使用Selenium RC重播網站的一些測試。我想從Java測試框架開始這些測試,這樣我就可以得到很好的報告,測試失敗了多少次等。Selenium RC的Java測試框架

我應該使用哪種Java測試框架? JUnit是否是此目的的首選框架?

回答

5

我們將Selenium與JUnit結合使用。這種方法的優點是易於創建JUnit測試,因爲我們在Selenium IDE中記錄了Selenium測試,然後將它們簡單地導出到JUnit(儘管通常需要進行一些小的調整)。然後,您可以很容易地將它們整合到持續集成構建中,並設置一個工作來每小時運行它們或任何適合的程序。我喜歡JUnit的方法是我的團隊中的每個人都已經非常熟悉JUnit,所以不需要學習曲線。

我還建議檢查Selenium Grid它允許您並行執行您的測試,讓您在更短的時間內完成更多的工作,特別是如果您可以利用它們在多臺機器上執行它們。

+1

感謝您分享您的體驗。我認爲能夠直接從Selenium IDE導出到JUnit測試是非常有利的。但讓我們看看其他人的想法。 – Sebi 2010-04-23 20:03:48

1

我們已經使用JUnit來達到這個目的,並且它工作得很好。 Selenium測試只是像JUnit測試一樣對待並在硒服務器上運行。

儘管硒測試看起來更接近集成測試,因此如果它更適合您的需求,您應該評估一次testNG。 TestNG提供更多的配置控制。在我們的例子中,我們對JUnit的Web驅動程序和設置方法感到滿意,所以我們沒有轉移到TestNG。

+0

我走向一個功能測試,所以檢查,如果該網站的最重要的特點仍在工作。事實上,JUnit最常用於類測試,所以我不確定是否應該去JUnit。 – Sebi 2010-04-23 19:53:55

2

下面是我的一些經驗。

JUnit有「規則」,可以降低樣板代碼的數量。例如,一條規則可以在測試之前啓動一個servlet容器,然後停止它,創建並注入一個Selenium實例等等。這使測試更加優雅。

TestNG支持組(及其依賴項)。這對集成測試非常有用 - 例如,您可以在特定環境中關閉某些組。 JUnit 4.8引入了可能類似的「類別」。

Spring Test對「測試執行監聽器」有一個很好的方法,它可以「準備」你的測試實例。這有點類似於JUnit規則。 Spring Test也是測試框架 - 也就是說,你的測試在JUnit或TestNG上幾乎看起來是一樣的。還有一些「配置文件」與TestNG組相似。

Here's經過Selenium測試的JSF應用程序的示例,基於TestNG的示例。也看看我的Hifaces20 Testing包,也許你會發現一些有用的想法。

0

僅用於支持其中一個答案
雅虎將selenium + testng用於自動測試網頁。

Junit與Testng:
Testng可以擁有更多的控制功能,如分組測試用例,並行運行,重新嘗試失敗的測試用例,更靈活地註釋測試用例。

+0

我結束了使用JUnit。原因很簡單:我開始用JUnit設置整個事情,現在我用不完的時間來嘗試testng :-( – Sebi 2010-04-27 17:53:02

+0

JUnit很棒,無論如何,玩得開心。 – 2010-04-29 05:46:10