2016-07-22 232 views
5

首先的自動化TestStack.White UI測試在Windows奴隸,我很抱歉,如果我浪費你的時間,因爲它看起來像一個簡單的步驟,我不能即使經過一些研究,以弄清楚。使用詹金斯

好吧,這是我正在嘗試實現的,我已經使用TestStack.White編寫了一些UI測試,我希望在不同用戶的Jenkins Slave上執行此操作,因爲應用程序的行爲基於角色在Active Directory中分配給他們。

因此,在谷歌上進行了一些查找之後,我發現以下與我嘗試實現的鏈接相關的鏈接。

看起來,我要對詹金斯從安裝TightVNC的,並且應該連接從詹金斯主到從和從執行測試。

這讓我想起我的第一個問題,我如何從詹金斯的工作中實現這個目標?

關於以不同用戶身份登錄,我明白我可以使用「autologon.exe」來實現此目的。所以只是想知道如何在Jenkins Master的Windows Slave上做到這一點。我的公司不允許SSH到Windows實例(從屬機器),我不能從Jenkins Master遠程執行SSH。

我明白,我可能沒有正確看待這個,所以任何幫助將不勝感激。

在此先感謝您的時間和建議。

+1

我認爲在服務器上無人值守運行UI測試的主要問題是您需要運行一個交互式會話。即需要有一個用戶在交互式會話中登錄,該用戶當前未被鎖定或以其他方式「無頭」,否則很多事情都無法正常工作。使用虛擬機通常是一種合適的方法,但增加了更多的複雜性。在我們自己的產品中,我們根本沒有進行UI測試來解決問題,而是以正確的順序合成我們自己的抽象輸入事件,以使代碼的其餘部分做到精簡,從而避免了會話問題。 – Joey

回答

1

感謝所有您的意見和答案,基本上這就是我所做的得到它的工作對我來說,

  1. 建立與詹金斯從VNC客戶端VNC連接,這是手工做不是通過詹金斯。
  2. 使用名爲「咖啡因」的應用程序來防止窗口鎖定,它模擬F15上的按鍵事件(每隔xx秒),因此在我的項目中不會中斷測試任務。
  3. 啓動與Jenkins Master和「Caffeine」應用程序的JNLP連接,作爲通過VNC連接進行Windows登錄的一部分。
  4. 關閉VNC連接(不註銷),這不是通過Jenkins手動完成的。
  5. 讓構建在從站上使用PSExec作爲不同的用戶運行。

到目前爲止,這似乎工作正常,我沒有儘早回覆,因爲我想在這裏發佈我的回覆之前監測幾天的工作。

1

我正準備做類似這樣的東西,但我建立一個通信層到我們的UI自動化應用程序,使我們的建設機械(我們公司推出我們自己構建機)可發送TCP請求來回。我打算將UI自動化和構建部署到共享中,然後啓動虛擬機。構建機器模板將有一個啓動腳本,從共享中啓動我們的兩個應用程序。一旦虛擬機啓動後,我將與UI自動化應用程序進行通信,告訴它開始,它會告訴我什麼時候完成,我可以拆除虛擬機。我將把所有的測試結果保存到一個份額用於報告目的。

我知道這並不直接回答你的問題,但這種方法是我從多個人在不同的自動化框架的工作聽說過。

如果我打算在Jenkins做這件事,我會考慮Jenkins插件系統。就我所知,插件系統使用Java,因此您應該能夠創建某種類型的通信層並與某種類型的VM進行接口。如果您沒有啓動和停止VM的選項,則需要在僞裝成用戶的同時查看遠程計算機上的啓動和停止進程。我知道這可以在C#中完成,但我從來沒有在Java中進行過研究。