一、服務器端配置
1、在代碼部署服務器中安裝jacoco,用於手工/接口測試覆蓋率監聽收集
2a、正常情況下,可在服務器中代碼部署模塊下的default文件夾中,修改tomcat文件如下
其中,includes后為代碼包路徑;port為jacoco的監聽端口,用於監聽slave發來的dump請求;address為該代碼模塊的IP;
2b、像我們公司集成了部署工具,則需要直接在集成工具中添加jvm參數,否則在項目重新部署后tomcat文件會被覆蓋
二、jenkins機器配置
1、在jenkins上創建jacoco的job,添加代碼下載路徑及slave機器地址;
2、運行一次job,將代碼下載至slave機器,在代碼所在根目錄配置build.xml
3、在jenkins的job上添加
三、坑
1、項目的代碼量大概在5G左右,jenkins下載時默認超時時間為10分鍾,超時報錯timeout,需在job中源碼管理模塊下重新設置超時時間
2、由於我跑測試用例在測試環境,一開始拉代碼時拉的是master分支(對應線上環境)導致覆蓋率始終不匹配,后改為dev分支。
3、不知公司的部署平台是怎么編譯的,一開始在jenkins直接用mvn install編譯結果不匹配,於是試着將服務器端已經編譯的代碼直接拷貝過來后得到覆蓋率結果,因此放棄了jenkins的編譯,采用直接拷貝服務器上編譯的classes的方法:
此時可在服務器上項目部署所在的webroot上層文件中執行python起一個http進程:
nohup python -m SimpleHTTPServer 12306 &
在slave機器上用wget方式獲取classes: