0

我正在尋找在我的工作中像Selenium的中央「樞紐」一樣設置的方法,允許任何人在公司內部進行訪問。例如,測試人員A編寫測試腳本,人員B可以運行而無需將測試腳本手動複製到他們的本地工作站)任何人都可以運行訪問Selenium測試腳本而無需在本地安裝/運行它?

到目前爲止,我只想過在將要執行的VM中安裝Selenium按照正常情況。但是如果我運行Selenium Grid,它將在VM(?)內運行虛擬機。我唯一關心的是虛擬機運行緩慢。

如果任何人都可以想出更好的解決方案或建議,請給我一些建議。先謝謝你。

回答

0

一個想法。您可以創建一個結合Jenkins/Selenium/Amazon的基礎設施。

以下是我從另一篇文章的解決方案。

你可以用網格來做到這一點。

首先,您需要創建一個帶有EC2 ubuntu 14.04 AMI而無需UI的Selenium hub,並將其作爲jenkins slave連接到您的Jenkins master。或者直接成爲主人。你想要什麼。只有命令行。單獨下載Selenium Server。 (小心下載版本,如果你下載Selenium3Beta,事情可能會改變)。在這裏你可以配置HUB。您還可以將Selenium Hub作爲服務添加並配置爲在服務器啓動時自動運行。打開Selenium默認端口(或您配置的端口)以便節點可以連接到它是很重要的。您可以在創建實例時在Amazon EC2控制檯上執行此操作。您只需要在您想要的IP所需的端口中爲TCP添加一個帶有入站規則的安全組。

然後,您可以創建一個Windows Server 2012實例服務器(例如,這就是我所做的),並執行相同的過程。下載Selenium和chromedriver的相同版本(在Selenium3之前,不需要下載Selenium版本的任何firefoxdriver)。生成一個txt文件並準備Selenium命令作爲NODE連接到HUB。並將其轉換爲* .bat以執行它。如果您想在開始時運行bat,則可以使用任務計劃程序創建服務或使用NSSM(https://nssm.cc/)。不要忘記將規則添加到這臺機器的安全組中!

接下來,創建Jenkins服務器。您可以使用Selenium Hub作爲Jenkins主或作爲奴隸。

最後一步是配置一個工作在Jenkins-Selenium機器上運行。這項工作需要鏈接到你的代碼倉庫(git,mercurial ...)使用jenkins的參數化構建插件,你可以告訴那個工作來取得你想要的修訂版本(每個開發者都可以通過新的修改和新的測試),並運行該版本中的Selenium測試,使用當前的breanch/revision和一個獨特的硒。您可以使用ANT或Maven在Jenkins中運行Selenium測試。

可能會很難理解,因爲這裏有太多的概念,但它很健壯,它工作正常!

如果你有疑問,告訴我!

0

如果Internet Explorer不是您必須運行自動化測試的瀏覽器之一,那麼我會建議您考慮docker selenium。

Selenium爲Selenium Hub和Node提供預先配置的碼頭圖像(有關更多信息,請參閱here)。爲了使用碼頭硒,您只需找到一臺機器(最好是unix機器),按照說明詳細說明here在其上安裝碼頭機,然後通過啓動集裝箱來啓動集線器和節點。在docker的情況下,您可以將VM(或)物理機器轉換爲VM場,但不必擔心緩慢等問題,因爲我相信docker已針對這些進行了優化,並將VM作爲進程運行。

訴諸亞馬遜雲運行您的硒節點是沒有問題的,但如果您的公司政策阻止來自互聯網的流量進入您的Intranet區域,那麼我不確定亞馬遜雲會有多大用處。

另外請記住,詹金斯不是絕對必需的東西,但它更適合在安裝過程中參與,因爲它可以讓任何人從Web UI運行測試。然而,這將要求您的所有測試都已簽入並在組織中的中央版本控制系統中提供。

PS:之所以將IE瀏覽器稱爲例外是因爲IE只能在Windows上運行,並且沒有用於Windows的docker映像(還)。所有的docker鏡像都是基於UNIX的鏡像。

相關問題