簡體   English   中英

Sikuli,詹金斯的硒測試:允許瀏覽器在前台啟動,就像我從開發機器運行它一樣?

[英]Sikuli, selenium testing on Jenkins: Allow the browser to be launched in the foreground, as it is when i run it from development machine?

問題在於,Sikuli的圖像識別功能僅在Sikuli測試的目標位於前景並且可以完全訪問鼠標時才起作用。 在其當前配置中,Jenkins項目永遠不會從Windows從屬節點的桌面上看到。

我現在的自動化測試套件的設置方式,僅使用selenium編寫了大約30個測試。 在最后的兩個測試中,selenium啟動了一個webdriver(目前是chromedriver但可以是firefox或IE)並導航到正確的頁面,Sikuli從那里做了它的事情。 兩者都使用java語言綁定。

目前Sikuli似乎安裝正確,但當要求點擊通過將桌面與目標圖像匹配而填充的screenRegions列表時,它會立即拋出NPE。

如何更改我的Windows 7 slave上的Jenkins設置以允許瀏覽器在前台啟動,就像我從Windows 7開發機器運行它一樣?

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

我有相同的設置(Sikuli測試人員/ Jenkins奴隸運行Windows 7)。 對我來說有用的是讓測試機器運行VNC服務器,通過VNC登錄測試器帳戶,並將Jenkins從站作為常規應用程序而不是服務啟動。 我用過UltraVNC服務器

據我所知,問題源於Windows的安全措施,這些措施旨在防止遠程用戶在沒有您的情況下控制您的計算機。

如果您將Jenkins作為服務運行,則不會為其分配真正的桌面。 腳本將運行,但(正如你所看到的)Sikuli實際上無法找到任何東西,因為它沒有任何東西可供查看。 (Selenium正在以編程方式檢查頁面內容,因此不介意頁面實際上沒有顯示在任何屏幕上。)

您也可以運行Jenkins並讓自己登錄,並跳過VNC服務器。 我想在沒有顯示器或鍵盤的情況下運行機器,但仍然可以控制。 如果這也是您的目標,則無法使用遠程桌面,因為它會在連接時分配新桌面,然后在斷開連接時將其銷毀。 (所以Jenkins會在你看的時候工作,當你離開的時候會失敗。非常令人沮喪!)

作為附帶好處,如果你這樣做,你可以通過VNC連接並觀看Jenkins運行測試。

  1. 使奴隸機遠程桌面自己。
  2. 運行jenkins salve作為該會話中的程序cmd / c啟動java -jar slave.jar -jnlpUrl http .... slave-agent.jnlp -secret ...(在你的jenkins master中找到它(當奴隸服務是下)
  3. 將它全部設置為在salve win startup中運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM