2017-08-30 32 views
0

我有一個Jenkins項目,在一臺從機上運行自動化測試。但是,當我將連接設置爲從屬節點作爲Windows服務時,並在該連接上運行項目時,構建本身將「成功」(有時),但我的測試將無法正常運行。當構建成功時,控制檯輸出看起來像一切都很好;我知道這不是它應該如何,因爲Selenium網絡瀏覽器在執行期間通過服務連接完成時不會在從屬機器上運行。有一次,我想這可能是因爲將slave-agent作爲Service安裝,將所有關聯的文件放在默認情況下從屬節點所在的同一目錄中,但是當我將該路徑更改爲Service的可執行文件並移動了所有的文件,它仍然會連接,並且該項目仍然不會按照它應該運行。當通過Windows服務連接從站時,Jenkins項目沒有正確運行?

只要我刪除服務,並從我的奴隸機手動啓動連接,一切都按預期進行。

有誰知道爲什麼會發生這種情況?或者,如果沒有,您是否知道在啓動時連接的替代方案?預先感謝您的建議/想法。

+0

您是否已正確設置權限。從屬任務使用本地帳戶運行,該帳戶可能無法訪問您嘗試使用的路徑或工具。作爲後臺服務,您可能還需要允許該服務與桌面進行交互。 –

+0

我不確定 - 我得看看更多。謝謝。 – scoffin

+0

@StevenScott,你知道這種情況(構建成功,報告是關於測試結果生成的)是否意味着測試正在無端運行?無論我是否將其作爲服務運行,控制檯輸出都是相同的;唯一的區別是我實際上並沒有看到Selenium運行在slave上。如果他們沒有頭腦,那實際上可能是一件好事,但我需要弄清楚是這種情況,還是詹金斯向我展示了看起來像一個成功的無頭跑步。 – scoffin

回答

0

只是提出我的意見給一個答案,所以你能接受它,你表明了該解決的問題,應該讓EASI呃讓別人跟隨。

您是否正確設置了權限?從屬任務使用本地帳戶運行,該帳戶可能無法訪問您嘗試使用的路徑或工具。作爲後臺服務,您可能還需要允許該服務與桌面進行交互。

服務將不會在計算機上顯示運行測試,除非您啓用該複選框,以使服務能夠與桌面交互:

interact with the desktop

0

對於任何可能有此問題的人,我想發佈我最終使用的解決方案(我不接受它作爲此特定問題的答案,因爲這是一個解決方法;但是,@StevenScott已在上面發表的評論中將這項工作作爲服務的答案)

我固定了我創建的服務並製作了一個計劃任務,它利用批處理腳本來連接JNLP文件。有一個命令Jenkins中的從節點頁面有一個命令行選項,但這在批處理文件中不適用於我;相反,我只是簡單地將它寫入光盤到一個已經包含slave-agent.jnlp副本的目錄中,然後從那裏運行它:slave agent batch script screenshot

爲此,您需要禁用彈出窗口當您運行slave-agent(詢問您是否要運行該程序)時出現。

任務的設置應包括以下內容:

  • 常規設置:「運行,只有當用戶登錄」
  • 觸發器:「在登錄」(指定用戶帳戶)
  • 操作:「啓動程序」(指定批處理腳本的位置)
相關問題