2014-10-17 36 views
2

目前這是我想實現的:我使用Jenkins來持續構建我的項目,我也想在構建完成後做分佈式測試,即。在多個節點/從站之間調度煙霧測試,以便測試可以在多個平臺上同時執行,每個節點將不斷接受來自主服務器的新調度測試套件,直到所有測試套件完成。Jenkins CI-分佈式測試在構建完成後

我想:

  • 在構建步驟上詹金斯
  • 調用Maven的設置主/從配置來運行JUnit測試

但是詹金斯將只選擇一個從執行所有測試。 我也試過DistTest插件,但是我發現插件有麻煩設置庫的相對路徑,有沒有人有這個插件的經驗?

到目前爲止,我想出最好的辦法是:

  • 在從創建可用的每一個從全新詹金斯的工作,並指定(硬編碼)測試套件
  • 使用多椎插件觸發所有立刻開始工作

該解決方案解決了這個問題,但是一旦奴隸增加到很大數量,這個問題就會變得非常困難。我明白Jenkins的主要優勢在於持續集成而不是分佈式測試,爲了與詹金斯實現這一點,我應該瞭解關於工具或方向的任何建議,我們將不勝感激。

回答

0

我讀過你想要實現的次數,以及我瞭解/假設的是,你有一組測試套件,你可以在從設備/主設備上完成構建之後,通過從設備執行。現在我假設測試類型和相關的測試套件將保持不變(比如對一種或多種類型的slave(linux,MAc,Win,Solaris等)進行煙霧測試,然後您還有其他測試套件,如無頭等等) ..

難道這些不會是組合,你可以創造就業機會,並從主作業內調度它們順序執行的數量有限,有build flow plugintemplate workflow plugin或一些infomration約distributed builds in jenkins

或者如果我需要更好地控制執行,我可以創建一個ant腳本,通過遠程命令(如sshexec ant task)在多個服務器上執行目標,然後在螞蟻腳本中編排流程 可以將Ant腳本概括爲接受可能與您所指的動態值類似的參數。

我很好奇,知道這是爲了你自己。 !

+0

對您的鏈接+1。 -0.5在標記_maven_和_jenkins_的線程中提及_ant_和_better control_和_remote command_。 ;-) – 2014-10-17 21:55:03

+0

哈哈..大聲笑..我愛Maven很多,很抱歉沒有提到...是的,我與你在一起@geri .. maven是一個更容易使用的工具,你可以創建目標不同的配置文件平臺,並使用它們來配置你的測試套件..我只是分享我在我當前的應用程序環境 – 2014-10-17 21:58:52

+0

mh ...現在如何upvote一半?我要用超快的點擊來嘗試... – 2014-10-17 22:16:53

0

您的JUnit煙霧測試是否獨立於Maven項目?

如果是:

詹金斯分配你的構建然後自動。

這就是我們如何爲十幾個模塊進行集成測試。

如果您的測試不是單獨的項目,考慮適當調整它們。


@CXYang:下午2:00(CEST)評論10月21這裏由於註釋字段長度限制:

「測試集」一樣「測試套件」在你的問題?

我們的應用程序的每個第一級項目都有一個名爲test的文件夾。這些文件夾中的每一個都包含一個Multi-module POM,其中包含(大量)測試,如<模塊>。

因此,最終我們只有15個Jenkins作業執行所有測試,並且這15個測試(+其子測試)通過標籤跨節點分佈。我們不會在不同的平臺上測試,但我認爲原則上並不重要 - 節點是節點。

在您的測試中是否有共同的分母,以便您可以將它們分配到/收集到有限數量的適當的多模塊POM中?

關於有多少不同的平臺(不平臺等於OS?)和測試套件/集,我們在您的網站說話?

+1

感謝您的回答。如果我理解正確,你的意思是將每個作業分配給一個單獨的測試集,並使用標籤自動分發這些集。如果我有大量的測試設備會怎麼樣?爲每組創建和配置新作業將會有點繁瑣。 – 2014-10-20 15:28:43