2013-06-24 19 views
7

問題是Sikuli的圖像識別功能僅在Sikuli測試的目標位於前景並且可以完全訪問鼠標時才起作用。在目前的配置中,Jenkins項目在Windows從屬節點的桌面上永遠不可見。Sikuli,Jenkins的硒測試:允許瀏覽器在前臺運行,就像我在開發機器上運行它一樣?

我現在的自動化測試套件的設置方式現在已經完成,大約30次測試只使用硒進行編寫。在最後的兩個測試中,硒啓動了一個webdriver(目前是chromedriver,但可以是Firefox或IE),並導航到正確的頁面,Sikuli從那裏做它的事情。兩者都使用java語言綁定。

目前Sikuli似乎已經正確安裝,但是當它被要求點擊一個屏幕區域列表,該區域是通過將桌面與目標圖像進行匹配來填充的時候,它會立即拋出一個NPE。

如何更改我的Windows 7從站上的Jenkins設置,以允許瀏覽器在前臺啓動,就像我從Windows 7開發機器運行它時那樣?

回答

7

所以你有一臺Sikuli工作的開發機器和一臺Jenkins運行Sikuli的測試機器,它不起作用。

我有這個相同的設置(與Sikuli測試器/詹金斯奴隸運行Windows 7)。對我來說有效的方法是讓測試機器運行VNC服務器,通過VNC以測試人員帳戶身份登錄,並將Jenkins從服務器啓動爲常規應用程序而不是服務。我用UltraVNC server

據我所知,問題源於Windows的安全措施,它旨在防止遠程用戶無法控制您的機器。

如果您將Jenkins作爲服務運行,它不會獲得分配給它的真實桌面。腳本會運行,但是(正如你所看到的)Sikuli實際上不能找到任何東西,因爲沒有什麼可以看的。 (硒編程檢查網頁內容,因此它不會介意的頁面不實際上任何屏幕上顯示。)

你也可以運行詹金斯離開自己登錄,並跳過VNC服務器。儘管如此,我想在沒有顯示器或鍵盤的情況下運行機器,並仍然擁有控制權。如果這也是您的目標,那麼您無法使用遠程桌面,因爲它會爲連接分配一個新桌面,然後在您斷開連接時將其破壞。 (所以Jenkins會在你觀看時工作,在你離開的時候會失敗,非常令人沮喪!)

作爲一個好處,如果你這樣做,你可以通過VNC連接並觀看Jenkins,因爲它運行測試。

+0

這是一個有趣的方法納撒尼爾,我沒有想過使用VNC這樣做的。它是一種駭人聽聞的解決方案,但我可以看到這種方式的優點,無論我可以在我的機器上運行什麼,一旦將它集成到此設置中,它都能保證工作。 – user2387855

1
  1. 使從機遠程桌面本身。
  2. 在該會話中運行jenkins salve作爲程序 cmd/c start java -jar slave.jar -jnlpUrl http .... slave-agent.jnlp -secret ...(在您的jenkins master中找到它從服務已關閉)
  3. 集這一切的藥膏取勝啓動時運行。
+0

使用mstsc rdp文件 – clay

相關問題