星雲測試插裝編譯流程與CI集成

星雲測試Horn插裝採用腳本配置方式自動對語法進行掃描和插裝,在整個插裝過程中需要用到星雲提供的插件工具。通過與CI集成,在CI編譯前通過jenkins調用星雲插裝插件模塊進行必要的數據填充,生成對應的項目插裝腳本,即可以通過星雲插裝插件進行項目插裝與編譯。
星雲測試插裝編譯流程與CI集成

通過星雲插件腳本自動創建工程和代碼插裝

1.解壓星雲提供的插件包

星雲測試在windows環境下提供的插裝工具爲javaForWindows工具包;將javaForWindows放到合適目錄下並解壓即可。(LINUX使用LINUX插件包)。(登錄星雲網站www.teststars.cc 離線企業測試中心即可免費試用)

2.修改腳本配置

星雲測試整個編譯通過腳本ComplierPath.xml配置文件進行,在ComplierPath.xml中用戶需要配置TTserver的服務器地址、用戶名、項目名、版本名、以及代碼路徑等,如果需要過濾不需要插裝的代碼,也可以通過該配置進行過濾。通過jenkins對通用模板進行數據填充,生成本次插裝編譯項目所需要的對應腳本。

星雲測試插裝編譯流程與CI集成

配置參數說明:

<server_ip>127.0.0.1</server_ip><!--服務端ip,按照實際配置-->
<user_name>user</user_name><!--編譯賬戶用戶名-->使用該用戶名前,建議該用戶名沒有其它登錄客戶端操作
<password>user</password><!--編譯賬戶用戶密碼-->
<is_append>0</is_append><!--是否追加編譯0不追加  1 追加-->一般默認
<is_Regression>0</is_Regression><!--是否選擇迴歸0不迴歸  1 迴歸-->一般默認
<is_AddCompile>0</is_AddCompile><!--是否增量編譯0否  1 是  增量編譯是文件級別的去重編譯,此時會忽略同模塊名級別去重-->一般默認
<is_classCompileOnly>0</is_classCompileOnly><!--是否追加class編譯0不追加  1 追加-->(注意:project_path 和 class_path 路徑不能爲空)一般默認
<compile_mode>1</compile_mode><!--編譯模式0 舊編譯模式(通過客戶端登錄方式) 
1新編譯方式-->一般默認
 <is_Parallel_compile_mode>0</is_Parallel_compile_mode><!--是否支持並行編譯0 否 1是-->一般默認
<tool>
<project_name>j2eeproj</project_name>  <!--項目名稱,追加編譯時候必須填寫,普通編譯可以置空,建議按實際項目填寫-->
<baseversion_name>asdasdada_RR</baseversion_name> <!--基礎拷貝版本名稱,以爲空默認查找當前項目下最新的版本作爲基礎版本-->一般爲空
<version_name>Ver2</version_name> <!--版本名稱,可以爲空,默認按照當前時間創建:
    例如:Ver_2019_02-02-18_0_0 ,該新建版本可以再客戶端菜單:文件/刷新工程導航樹 刷新出來--> 
<submodule>
    <proName>TTPro1</proName> <!--當前模塊名稱,如果配置爲追加編譯且不是增量編譯會按照同名模塊去重,建議起初就進行配置-->
    <Path>
        <project_path>J:\sushe\src</project_path>   <!--src項目路徑-->
<class_path>J:\sushe\build\classes</class_path>  <!--class文件目錄-->                               
    <encode>GBK</encode> <!--編碼格式Automatic_encoding 有系統自動識別或者配置實際編碼格式-->一般默認
<filterPath>D:\moxi\target\classes</filterPath> <!--過濾不插裝的路徑-->(注意:想要不插裝多個路徑,就寫多個filterPath)一般不填寫
</Path>
</submodule>
</tool>   

3.插件運行進行代碼分析與插裝

TT插裝插件可以通過Jenkins命令進行啓動,如:Windows通過cmd命令選擇到插件所在的根目錄下,運行autoCompiler.jar進行編譯(記得編譯得時候在javaForWindows目錄下進行編譯)
命令: \jre\bin\java.exe -jar autoCompile.jar -c D:\J2EE\javaForWindows
注:-c後面的參數爲ComplierPath.xml文件的目錄
命令生效後自動進行代碼分析與插裝並在cmd窗口中進行打印。
星雲測試插裝編譯流程與CI集成

注意:<is_Parallel_compile_mode>0</is_Parallel_compile_mode><!--是否支持並行編譯0 否 1是-->若是選擇爲1的啓動方式:
.\jre\bin\java.exe -jar autpCompile.jar -c 插件路徑 ComplierPath.xml絕對路徑
星雲測試插裝編譯流程與CI集成

4.項目靜態數據加載

插裝成功後,通過登錄客戶端選中我們插裝的項目進行版本靜態數據的加載,加載成功後即可看到分析的生成的靜態數據

星雲測試插裝編譯流程與CI集成

5.源碼路徑替換,採用星雲插裝代碼

由於測試的時候需要運行星雲插裝過後的代碼應用生成採集數據,所以需要對編譯的源碼路徑進行相應修改,通過Jenkins腳本對目錄進行更替,星雲插裝過後的代碼會在腳本配置的代碼路徑的目錄同層下生成src-instru目錄,src-instru目錄即爲編譯插裝後的源碼);
具體操作:先將源碼目錄下未插裝的java目錄重命名爲pre_java,再將編譯插裝生成的src-instru目錄命名爲java。

6.項目添加星雲依賴庫進行並編譯

Maven項目pom.xml修改加入依賴庫

因採用星雲插裝過後的代碼,即在編譯過程中需要引入星雲提供的2個依賴庫,Maven項目可以通過修改pom.xml進行引入
通過jenkins自動修改項目的pom.xml文件來引入TT的依賴庫:
方法加入到兩個<dependencies>之間,加入的代碼如下:

systemPath需要按JavaParser-j2ee.jar和jeromq-0.3.0-SNAPSHOT.jar的絕對路徑填寫
 <dependency>
<groupId>com.zoa</groupId>
<artifactId>JavaParser-MQ</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>/D:/J2EE/client/MQ/JavaParser-J2EE.jar</systemPath>
 </dependency>
<dependency>
    <groupId>com.zoa</groupId>
    <artifactId>jeromq</artifactId>
    <version>1.0</version>
    <scope>system</scope>
<systemPath>/D:/J2EE/client/MQ/jeromq-0.3.0-SNAPSHOT.jar</systemPath></dependency>

在pom文件修改完成後即可打包發佈
在被測程序目錄下執行mvn clean package 命令
星雲測試插裝編譯流程與CI集成

傳統J2EE項目或安卓項目

通過jenkins在編譯項目中引入JavaParser-j2ee.jar和jeromq-0.3.0-SNAPSHOT.jar進行編譯,注這裏需要羣J2EE和安卓項目,如安卓項目需要把2個依賴包最終打入到APK中,如果是J2EE項目,請在最後生成的war包或jar包中取出該依賴包,因J2EE項目最終會搭配agent使用,agent中會自帶該依賴。
打包完成,爲使函數覆蓋率可視視圖代碼部分顯示正常,需要手動修改源碼路徑:右鍵版本,點擊修改源碼路徑,選擇到pre_java目錄即可。
星雲測試插裝編譯流程與CI集成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章