不同提交之間新增接口對(duì)比

前些日子接口測(cè)試需要對(duì)不同分支屿讽,不同時(shí)間的代碼進(jìn)行新增/刪除接口的統(tǒng)計(jì),大致有2個(gè)思路

  1. 利用git和shell查找每次提交修改的文件酪劫,篩選出含有接口的文件豆瘫,保存不用版本的此文件到本地珊蟀,進(jìn)行文本對(duì)比菊值,此種方法準(zhǔn)確率有限外驱,實(shí)現(xiàn)快育灸。
  2. 通過(guò)對(duì)工程編譯后文件利用Java提取接口及參數(shù)定義,進(jìn)而對(duì)比新增或修改接口昵宇,統(tǒng)計(jì)相對(duì)準(zhǔn)確磅崭,但每次統(tǒng)計(jì)需要打好jar包。
    同時(shí)因?yàn)楣痉矫嬉苍谕晟频诙N方式瓦哎,不做重復(fù)工作砸喻,僅解決這幾天急需功能,花費(fèi)一天半時(shí)間使用方法一做了統(tǒng)計(jì)蒋譬,在此記錄下學(xué)習(xí)到的一些知識(shí)割岛,寫的粗糙,海涵犯助。

一癣漆、命令相關(guān):
獲取X天之前提交的CommitID

 git log --since=${Date}" days ago" | grep commit | tail -n 1

比較當(dāng)前HEAD和X天前的提交以"Service.java"結(jié)尾的文件名,并輸出到list.txtweb文件

git diff --name-only $lastcommit master | grep -E "Service.java" -->list.txt

此命令可滿足不同分支之間的對(duì)比剂买,lastcommit指的是CommitID惠爽,構(gòu)建時(shí)通過(guò)參數(shù)傳遞給命令行。比如分支和主干對(duì)比瞬哼,有一定的可用的婚肆。

 lastcommit=$(git log --since=${Date}" days ago" | grep commit | tail -n 1)
 lastcommit1=${lastcommit#* }
git diff --name-only HEAD ${lastcommit1}| grep -E "Service.java" -->list.txt

遍歷list文件每一行,利用git checkout命令切換到不同的提交版本坐慰,提取差異文件的新舊版本

for line in `cat list.txt`
do
 i=$(($i+1))
 git checkout master
 git branch
 echo $line
#切割字符串提取類名作為文件名较性,方便對(duì)比
 newline=${line##*/} 
 result=${newline%.*}
 echo $result
# 獲取文件的路徑
 cat $line | grep -A1 "@SwiftInterface" -->${result}New.txt

 git checkout ${lastcommit1}
 git branch
 cat $line | grep -A1 "@SwiftInterface" -->${result}Old.txt

通過(guò)sort排序及去重uniq -d 獲取兩個(gè)文件的交集,進(jìn)而對(duì)比

# 獲取新舊版本文件交集
 cat ${result}New.txt ${result}Old.txt | sort | uniq -d >${result}JiaoJi.txt
 echo "       " >>APIFile.txt
# 獲取新文件和交集文件的差集讨越,即新增或修改的文件
 cat ${result}New.txt ${result}JiaoJi.txt | sort | uniq -u >${result}AddAPIFile.txt
# 判斷差異文件是否為空两残,若為空則不追加
 file=${result}AddAPIFile.txt
    if [ ! -s $file ];then
    echo $file is a blank file
    else
    echo $file is not a blank file
    echo ${i}". 接口對(duì)應(yīng)文件的路徑"${newline01} >>AddAPIFile.txt
    cat ${result}New.txt ${result}JiaoJi.txt | sort | uniq -u >>AddAPIFile.txt
    fi

# 獲取舊文件和交集文件的差集,即刪除的文件
 cat ${result}Old.txt ${result}JiaoJi.txt | sort | uniq -u >${result}DelFile.txt
# 判斷差異文件是否為空把跨,若為空則不追加
 file1=${result}DelFile.txt
    if [ ! -s $file1 ];then
    echo $file1 is a blank file
    else
    echo $file1 is not a blank file
    echo ${i}". 接口對(duì)應(yīng)文件的路徑"${newline01} >>DelAPIFile.txt
    cat ${result}Old.txt ${result}JiaoJi.txt | sort | uniq -u >>DelAPIFile.txt
    fi
done

二人弓、集成Jenkins,參數(shù)化構(gòu)建着逐,以及郵件觸發(fā)結(jié)果
前提:Jenkins安裝好郵件插件崔赌,并進(jìn)行配置以及參數(shù)化插件安裝
https://www.cnblogs.com/imyalost/p/8781759.html

  1. 將寫好的shell腳本添加到Jenkins任務(wù)中


    image.png
  2. 選擇參數(shù)化構(gòu)建,并寫入必填參數(shù)


    image.png
  3. Job中郵件相關(guān)配置


    image.png

    Attachment為Shell腳本最終生成文件的相對(duì)路徑耸别,引用參數(shù)的方式為${參數(shù)名}健芭。
    其他項(xiàng)均為默認(rèn)值


    image.png

    此處的觸發(fā)方式,選擇的是Always
  4. 開始參數(shù)化構(gòu)建秀姐,輸入相關(guān)參數(shù)


    image.png

    構(gòu)建完成后慈迈,郵件會(huì)收到對(duì)比結(jié)果。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末省有,一起剝皮案震驚了整個(gè)濱河市痒留,隨后出現(xiàn)的幾起案子谴麦,更是在濱河造成了極大的恐慌,老刑警劉巖伸头,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件匾效,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡恤磷,警方通過(guò)查閱死者的電腦和手機(jī)面哼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)扫步,“玉大人魔策,你說(shuō)我怎么就攤上這事『犹ィ” “怎么了代乃?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)仿粹。 經(jīng)常有香客問(wèn)我搁吓,道長(zhǎng),這世上最難降的妖魔是什么吭历? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任堕仔,我火速辦了婚禮,結(jié)果婚禮上晌区,老公的妹妹穿的比我還像新娘摩骨。我一直安慰自己,他們只是感情好朗若,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布恼五。 她就那樣靜靜地躺著,像睡著了一般哭懈。 火紅的嫁衣襯著肌膚如雪灾馒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天遣总,我揣著相機(jī)與錄音睬罗,去河邊找鬼。 笑死旭斥,一個(gè)胖子當(dāng)著我的面吹牛容达,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播垂券,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼花盐,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起算芯,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤啄栓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后也祠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡近速,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年诈嘿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片削葱。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡奖亚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出析砸,到底是詐尸還是另有隱情昔字,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布首繁,位于F島的核電站作郭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏弦疮。R本人自食惡果不足惜夹攒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胁塞。 院中可真熱鬧咏尝,春花似錦、人聲如沸啸罢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)扰才。三九已至允懂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衩匣,已是汗流浹背累驮。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舵揭,地道東北人谤专。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像午绳,于是被迫代替她去往敵國(guó)和親置侍。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容