我正在測試Jenkins以查看它是否適合我們的構建和測試框架。我發現詹金斯及其可用插件適合我們的大部分需求。除了我似乎無法找到如何執行某種特定任務的幫助。如何與詹金斯並行多次運行相同的工作?
我們正在爲嵌入式設備創建應用程序。我們有100個需要在這些設備上運行的測試。如果我們在構建完成後在一臺設備上運行所有測試,則需要幾個小時才能獲得結果。但是,如果我們在100個並行設備上運行測試,那麼我們可以在更短的時間內獲得結果。
所有的測試都有非常相似的起點。使用設備的IP地址來運行測試腳本,並使用用戶名/ pw調用測試腳本。該腳本將在設備上進行必要的測試,併爲每個測試項目報告回傳/失敗。
我覺得這樣的長/痛苦的方式是寫在詹金斯100個職位,每個將是一個不同的測試腳本直接(與上述參數)和並行使用可用的插件運行這些。然而,從長遠來看,保持所有這些工作將非常困難。
因此,更好的方法是創建一個可以帶參數的Job(我們稱之爲child_tester),例如:測試腳本名稱,設備的IP地址,用戶名/ pw等等。然後使用另一個作業(讓我們稱之爲mother_tester)用不同的IP地址調用child_tester作業100次並且並行運行它們。我需要一些方法來累積child_tester作業的每個單獨運行的所有測試結果,並將它們報告給mother_tester。
我的問題是有一個插件或在詹金斯完成此任何方式?我查看了名爲「Build Flow」,「Parallel Test Executor」和「Parameterized Trigger」的插件信息。但是,他們似乎不符合我的需求。
謝謝你的幫助。
當並行運行相同的作業名稱時,構建流程插件不起作用。例如,我的生成流看起來像這樣: 平行( {建立( 「FreestyleTest1」)}, {建立( 「FreestyleTest1」)} ) 然而,在這種情況下,輸出的樣子: 平行{ 附表工作FreestyleTest1 安排工作FreestyleTest1 構建FreestyleTest1#29開始 構建FreestyleTest1#29開始 FreestyleTest1#29完成 FreestyleTest1#29完成 } 作業只運行一次。如果我要將其中一項工作改爲另一項工作,那麼它們都會並行運行。 – Ash 2015-02-24 23:22:18
@垃圾,有趣。在構建流程0.16的Jenkins 1.580.2中,我可以使用不同參數計劃4次相同的子作業,並且子作業同時運行4次。 – 2015-02-25 00:08:33
謝謝你的例子和細節。我發現如果我爲子作業提供不同的參數/值,那麼實際上會執行多個子作業。它可能是一個插件錯誤。但是,工作仍不能平行進行。防爆輸出:平行{ 安排工作FreestyleTest1 安排工作FreestyleTest1 構建FreestyleTest1#36開始 FreestyleTest1#36完成 建立FreestyleTest1#37開始 FreestyleTest1#37完成 } .....詹金斯狀態板上顯示,37正在等待在36節結束時,即使節點有2個以上的執行器空閒。 – Ash 2015-02-25 00:58:56