我正在嘗試爲QA部門設置CI環境。他們使用SeleniumRC在IE和FF瀏覽器中運行UI測試來測試一些Web應用程序。我已成功將其配置爲按照here所述的Windows服務運行。但是,當我運行測試它掛起。我可以在進程列表中看到由Selenium服務產生的iexplore.exe進程,但沒有更多事情發生。沒有瀏覽器窗口出現,Windows事件日誌中沒有條目。我做了很多Google搜索,並且按照我的理解,問題在於與桌面互動。我嘗試使用「允許服務與桌面交互」複選框集以及具有本地管理員權限的常規用戶帳戶在SYSTEM帳戶下運行該服務。所以我的問題是,如果有可能呢?將UI SeleniumRC測試作爲CI過程的一部分運行
回答
我對運行任何應該與桌面應用程序交互的Windows服務存在懷疑。 Windows服務在他們自己的沙箱中運行;他們不應該與用戶的桌面或其應用程序進行交互。要做到這一點需要特別的努力來與服務進行通信,所以如果可能的話,我會認爲會有某種桌面客戶端運行,作爲瀏覽器和Windows服務之間的聯絡。
雖然我不能告訴你它不起作用,因爲如果人們在寫博客,這顯然是可能的。
順便說一句,爲什麼它需要作爲Windows服務運行? Selenium是如何建立自動化的,或者你可以在沒有Windows服務的情況下完成它?因爲我認爲這將是兩點之間的最短距離。
謝謝,羅伯特!他們需要儘可能地自動化,因此Selenium測試是整個構建過程的一部分(構建 - >部署 - >測試)。該服務可以幫助讓環境獨立於人類(例如,無需每次重新啓動服務器時手動登錄並啓動Selenium)。但是,我花了很多時間徒勞,所以我就這樣離開了。 – UserControl 2009-10-16 08:37:25
我的建議是擁有一臺運行Selenium RC的專用機器(或虛擬機)。根據我的經驗,最好讓Selenium以交互方式運行,而不是以無頭模式運行。
事實上,他們有幾個Selenium RC盒子(每個盒子都有幾個不同配置的虛擬機)。更多的服務器 - >更多的手動工作,我希望它可以自動化。 – UserControl 2009-10-16 08:39:44
在我們的組織中,我們有一個持續集成服務器(巡航控制)運行構建,包括Selenium RC測試。 CI服務器作爲Windows服務運行(在MS Windows 2003 Server上),Selenium測試只是測試套件的一部分。
這是一個非常簡單的設置,坦率地說我沒有理由放棄它。目前在我們的設置中,Selenium服務器(和客戶端)直接從測試中啓動(但我們曾經將Selenium作爲單獨的服務)。
在Java代碼中(實際上在超類中的所有網絡測試),我們做這樣的事情:
// to start the server
RemoteControlConfiguration config = new RemoteControlConfiguration();
config.set(...) // set the serverHost and port
...
SeleniumServer server = new SeleniumServer(config);
server.start();
// and then to start the client
Selenium selenium = new DefaultSelenium(serverHost, port, "*firefox", "http://www.google.com");
selenium.start();
selenium.open("http://www.google.com");
// now the browser should be visible for you (if you run it locally, not as a service)
所以我建議你嘗試以下(任何一種語言,你正在使用):
嘗試從獨立應用程序運行Selenium服務器和客戶端。瀏覽器應該顯示爲一個窗口。根據您的需要調整設置(瀏覽器類型等)。
嘗試將代碼合併到您的測試框架(xUnit或其他)中。手動運行它們。結果應該是一樣的。
然後,您可以嘗試從持續集成運行測試。將CI服務器作爲服務運行,並讓它構建您的項目。瀏覽器不可見,但測試運行不是必需的,不是嗎?
注: 如果你想偷看什麼硒是幹什麼的,我相信這將是UNIX機器上更容易。您可以指出測試使用您選擇的X-server DISPLAY
- 假的或連接到某個顯示器的真實服務器。
感謝您的回答!我們在這裏的配置(Win2003和CruiseControl)幾乎相同,只是它是.NET平臺(測試使用NUnit編譯爲c#代碼)。所有工作都可以在本地或遠程模式下正常工作,但只有在通過控制檯啓動Selenium時(瀏覽器顯示並且測試爲綠色)。但是,如果我們將它作爲一個Windows服務啓動它不起作用。只要我可以切換回這個任務,我會嘗試從代碼中啓動服務器的建議。 – UserControl 2009-10-16 10:09:33
我檢查了CruiseControl服務運行的用戶的權限。在這裏它是'分佈式COM用戶,高級用戶,遠程桌面用戶,TelnetClients,用戶'的成員。不太確定它們是否都需要。我幾乎可以肯定,沒有其他的用戶權限自定義。 – 2009-10-16 10:17:15
感謝您的幫助!問題在於Selenium RC已經過時。版本1.0.1作爲服務就好了! – UserControl 2009-10-16 13:48:01
- 1. 運行測試作爲Team Services構建過程的一部分時的問題
- 2. 作爲Maven構建過程的一部分運行量角器測試
- 3. 作爲Jenkins構建的一部分運行Spock測試
- 4. 運行python單元測試作爲竹編的一部分
- 5. 如何運行Sahi測試作爲Hudson構建的一部分?
- 6. 如果作爲測試套件的一部分運行,JUnit測試失敗
- 7. 編碼的UI測試作爲門控登記的一部分
- 8. 如何將腳本作爲Travis CI構建的一部分運行?
- 9. CMake - 運行測試作爲構建過程的一部分,並將stdout輸出捕獲到文件中
- 10. 作爲rpm安裝過程的一部分運行Python腳本
- 11. Selenium IDE:調用不同的測試以作爲命令的一部分進行一系列測試運行
- 12. 遠程運行編碼的UI測試
- 13. 將慢UI測試集成到CI部署管道中
- 14. 如何在VSTS 2015中執行/運行編碼UI測試作爲發佈管理的一部分?
- 15. Travis-CI可以運行Codeception測試嗎?
- 16. 運行WatiN測試作爲TFS構建的一部分的超時問題
- 17. 將QuickTests作爲LoadRunner測試運行
- 18. SBT測試運行CI服務器
- 19. 在gitlab上運行django測試ci
- 20. 竹CI - 如何運行測試腳本
- 21. 如何運行Travis-CI和Espresso測試
- 22. 如何使pylint成爲setup.py測試過程的一部分?
- 23. 作爲Maven測試運行
- 24. Eclipse:如何運行插件測試作爲本地構建的一部分
- 25. 運行GUI應用程序作爲BuildMaster部署的一部分
- 26. 如何獲得單元測試作爲TFS2008構建的一部分運行?
- 27. 作爲構建過程的一部分運行命令行工具
- 28. 調試NuGet作爲VS解決方案的一部分運行
- 29. 運行python單元測試作爲程序的一個選項
- 30. 在Travis ci上運行C++測試的麻煩。 Cmake配置。如何在Travis ci上運行測試套件?
解決! QA的人剛剛將Selenium RC更新到1.0.1(0.9.0),它的工作方式非常神奇! – UserControl 2009-10-16 13:46:07