2012-04-28 223 views
2

我應該說我很遺憾和痛苦的一個小白開始。但我試圖改變這一點!我不知道任何編程語言,但通過做足夠的研究來完成我所需要完成的任何工作,都設法「實現目標」。硒IDE測試

反正,我一直在創造使用硒IDE Selenium測試,我有一點麻煩,這些測試通過硒電網運行。

我已經出口了測試作爲JUnit 4中(webdriver的)文件。我在Ubuntu無頭服務器上運行網格,在一臺運行IE9和Firefox的Windows 7計算機上運行我的遠程控制,以及運行IE8和Chrome的Windows Vista計算機。

我的目標是拿我已經從硒IDE導出爲JUnit 4中(webdriver的)文件並運行它們從電網並聯在我的兩個Windows機器的測試。我在我的Windows機器上編輯了我的主機文件,以「seleniumgrid」的名稱識別Ubuntu服務器。例如:

在Ubuntu服務器終端1: Ant啓動轂

Win7的端子1: 螞蟻-Dport = 5555 -Denvironment = 「IE9在Windows」 -Dhost = Win7的-DhubURL = HTTP:// seleniumgrid:4444推出 - 遠程控制

Win7的端子2: 螞蟻-Dport = 5555 -Denvironment = 「火狐在Windows」 -Dhost = Win7的-DhubURL = HTTP:// seleniumgrid:4444啓動遠程控制

Vista的termina1: 螞蟻-Dport = 5555 -Denvironment = 「IE8在Windows」 -Dhost = WinVista -DhubURL = HTTP:// seleniumgrid:4444推出 - 遠程控制

Vista的端子2: 螞蟻-Dport = 5555 -Denvironment = 「Chrome Windows版」 -Dhost = WinVista -DhubURL = HTTP:// seleniumgrid:4444推出 - 遠程控制

現在,從這裏,我試圖啓動JUnit4 (webdriver)文件,我已經從Selenium IDE中導出來運行此配置。該文件的名稱標題爲:Registration.java。

現在我需要做什麼來運行Registration.jar文件?我似乎無法找到回答這個問題,這使我相信,我的這一切是如何工作的一個根本性的誤解任何文件...

赦免,如果這個問題已經回答過了。談到這件事時,我的術語很差。

非常非常感謝您抽出寶貴時間,如果有一個閱讀本,更答案。

布蘭登

回答

2

沒有必要通過螞蟻發動樞紐和節點。您可以從CMD運行它們:

java -jar selenium-server-standalone-2.21.0.jar -role hub - 將運行樞紐
java -jar selenium-server-standalone-2.21.0.jar -role node -hub http://seleniumgrid:4444/grid/register - 將運行節點

節點

默認端口是5555,所以對於第二終端,你應該指定一個從默認的端口不同,例如5556:

java -jar selenium-server-standalone-2.21.0.jar -role node -port 5556 -hub http://seleniumgrid:4444/grid/register

你也應該爲每個節點指定瀏覽器參數,例如:

-browser browserName=firefox,maxInstances=5,platform=WINDOWS

在JUnit測試,你應該使用RemoteWebDriverDesiredCapabilities

DesiredCapabilities capability = DesiredCapabilities.firefox(); 
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capability); 

爲了平行執行,你應該另外編輯你的測試(對不起,d不要在jUnit中工作,所以在這裏除了你可以在下面找到的鏈接外,沒有什麼幫助。)

包括JUnit類文件,你的類文件,包括你的JUnit測試類,你的類文件依賴的庫您的Linux機器上的classpath:

export CLASSPATH=$JUNIT_HOME/junit.jar:/myproject/classes:/myproject/lib/something.jar 

調用Junit的命令Linux機器上:

java org.junit.runner.JUnitCore [test class name] 

或者您可以使用ant代替。

我會建議先在Linux上使用集線器,然後在Windows上使用一個瀏覽器啓動一個節點,而不進行任何並行化,因此您可以確定此部分正常工作。作爲下一步,按順序運行兩個節點的測試,然後嘗試並行運行它們。

有關完整的教程,閱讀這些材料:How do I run JUnit using AntActivating Junit tests from Command LineGrid2 tutorialParallel JUnit 4 and Selenium(三部分)

+0

謝謝您的回覆,ALEH!感謝您花時間。 我聽說JUnit在部署並行測試時遇到了一些麻煩,並且被告知TestNG實際上更適合這項任務。任何人都可以確認或否認這一點? – btdeviant 2012-04-30 22:47:55

+0

@btdeviant,是的,我同意了。我在StackOverflow和互聯網上的某處查看了TestNG解決方案,當時我調查了與NUnit並行運行測試,但沒有遇到好的jUnit測試。 – 2012-04-30 23:06:50

+0

@btdeviant據我記憶,舊版本的硒網格應該包含一些基於TestNG – 2012-04-30 23:11:45