星云测试Horn插装采用脚本配置方式自动对语法进行扫描和插装,在整个插装过程当中须要用到星云提供的插件工具。经过与CI集成,在CI编译前经过jenkins调用星云插装插件模块进行必要的数据填充,生成对应的项目插装脚本,便可以经过星云插装插件进行项目插装与编译。 java
星云测试在windows环境下提供的插装工具为javaForWindows工具包;将javaForWindows放到合适目录下并解压便可。(LINUX使用LINUX插件包)。(登陆星云网站www.teststars.cc 离线企业测试中心便可免费试用)windows
星云测试整个编译经过脚本ComplierPath.xml配置文件进行,在ComplierPath.xml中用户须要配置TTserver的服务器地址、用户名、项目名、版本名、以及代码路径等,若是须要过滤不须要插装的代码,也能够经过该配置进行过滤。经过jenkins对通用模板进行数据填充,生成本次插装编译项目所须要的对应脚本。bash
配置参数说明:服务器
<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>
复制代码
TT插装插件能够经过Jenkins命令进行启动,如:Windows经过cmd命令选择到插件所在的根目录下,运行autoCompiler.jar进行编译(记得编译得时候在javaForWindows目录下进行编译) 命令: \jre\bin\java.exe -jar autoCompile.jar -c D:\J2EE\javaForWindows 注:-c后面的参数为ComplierPath.xml文件的目录 命令生效后自动进行代码分析与插装并在cmd窗口中进行打印。 app
注意:<is_Parallel_compile_mode>0</is_Parallel_compile_mode>如果选择为1的启动方式: .\jre\bin\java.exe -jar autpCompile.jar -c 插件路径 ComplierPath.xml绝对路径 函数
插装成功后,经过登陆客户端选中咱们插装的项目进行版本静态数据的加载,加载成功后便可看到分析的生成的静态数据
复制代码
因为测试的时候须要运行星云插装事后的代码应用生成采集数据,因此须要对编译的源码路径进行相应修改,经过Jenkins脚本对目录进行更替,星云插装事后的代码会在脚本配置的代码路径的目录同层下生成src-instru目录,src-instru目录即为编译插装后的源码); 具体操做:先将源码目录下未插装的java目录重命名为pre_java,再将编译插装生成的src-instru目录命名为java。工具
因采用星云插装事后的代码,即在编译过程当中须要引入星云提供的2个依赖库,Maven项目能够经过修改pom.xml进行引入 经过jenkins自动修改项目的pom.xml文件来引入TT的依赖库: 方法加入到两个之间,加入的代码以下:测试
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 命令 网站
经过jenkins在编译项目中引入JavaParser-j2ee.jar和jeromq-0.3.0-SNAPSHOT.jar进行编译,注这里须要群J2EE和安卓项目,如安卓项目须要把2个依赖包最终打入到APK中,若是是J2EE项目,请在最后生成的war包或jar包中取出该依赖包,因J2EE项目最终会搭配agent使用,agent中会自带该依赖。 打包完成,为使函数覆盖率可视视图代码部分显示正常,须要手动修改源码路径:右键版本,点击修改源码路径,选择到pre_java目录便可。 ui