實(shí)現(xiàn)方法
※安裝插件 Join+Plugin
※quick任務(wù)設(shè)置
※其他設(shè)置同方案一
注意
如果匯總?cè)蝿?wù)merge的報(bào)告還需要在quick任務(wù)中展現(xiàn),則需要把報(bào)告?zhèn)鞯絨uick任務(wù)的工作目錄下。
場(chǎng)景三
應(yīng)用場(chǎng)景
前面兩個(gè)方案,有如下一些缺點(diǎn):
※任務(wù)過(guò)多:包括quick任務(wù)+N個(gè)測(cè)試任務(wù),不便于管理。
※用例數(shù)變化時(shí)需人工調(diào)整任務(wù) : 人工設(shè)置每個(gè)任務(wù)運(yùn)行的哪些用例,那么在用例數(shù)發(fā)生了變化時(shí),需要人工調(diào)整,很費(fèi)時(shí)費(fèi)力。
※任務(wù)并發(fā)度不可調(diào) : 任務(wù)的并發(fā)度等于建立的子測(cè)試任務(wù)的數(shù)目,調(diào)整并發(fā)度,需要建立/刪除任務(wù),且要改quick任務(wù)的設(shè)置,很麻煩。
※任務(wù)時(shí)間差別大,形成短板 : 整個(gè)測(cè)試完成的時(shí)間實(shí)際上是等于執(zhí)行時(shí)間長(zhǎng)的測(cè)試子任務(wù)的時(shí)間,時(shí)間不夠優(yōu)化。
??上面的缺點(diǎn),提出以下方案(quick任務(wù)+1個(gè)測(cè)試任務(wù)+動(dòng)態(tài)挑選用例),如下圖所示
實(shí)現(xiàn)方法
※各個(gè)機(jī)器之間能相互發(fā)送拷貝文件(例如通過(guò)建立信任關(guān)系),用于報(bào)告收集
※編譯任務(wù)設(shè)置 設(shè)置報(bào)告
設(shè)置測(cè)試并發(fā)度
通過(guò)腳本訪(fǎng)問(wèn)URL觸發(fā) ${Test_Parallel} 次測(cè)試任務(wù): HUDSON_URL/job/test/buildWithParameters?token=TOKEN_NAME&Upstream_path=work@host:~/path
※測(cè)試任務(wù)設(shè)置
設(shè)置構(gòu)建參數(shù)(Upstream_path,測(cè)試完后發(fā)送報(bào)告到該路徑匯總),方法同上。
命令行觸發(fā)構(gòu)建
多次構(gòu)建并行執(zhí)行
每次構(gòu)建執(zhí)行先從用例庫(kù)獲取1個(gè)或部分用例,執(zhí)行完后再次獲取。
構(gòu)建后將報(bào)告重命名為${BUILD_NUM}.xml,然后根據(jù)Upstream_path發(fā)送報(bào)告到編譯任務(wù)所在機(jī)器 * 采用統(tǒng)一的方式管理所有的用例,根據(jù)請(qǐng)求返回1個(gè)或多個(gè)未執(zhí)行的用例
※根據(jù)機(jī)器屬性和任務(wù)執(zhí)行要求,設(shè)置機(jī)器Grid和任務(wù)Grid
優(yōu)勢(shì)
更省時(shí)間、提高機(jī)器利用率、負(fù)載均衡、并發(fā)度可控、任務(wù)數(shù)少