星云测试插装编译流程与CI集成
星云测试Horn插装采用脚本配置方式自动对语法进行扫描和插装,在整个插装过程中需要用到星云提供的插件工具。通过与CI集成,在CI编译前通过jenkins调用星云插装插件模块进行必要的数据填充,生成对应的项目插装脚本,即可以通过星云插装插件进行项目插装与编译。

通过星云插件脚本自动创建工程和代码插装
1.解压星云提供的插件包
星云测试在windows环境下提供的插装工具为javaForWindows工具包;将javaForWindows放到合适目录下并解压即可。(LINUX使用LINUX插件包)。(登录星云网站www.teststars.cc 离线企业测试中心即可免费试用)
2.修改脚本配置
星云测试整个编译通过脚本ComplierPath.xml配置文件进行,在ComplierPath.xml中用户需要配置TTserver的服务器地址、用户名、项目名、版本名、以及代码路径等,如果需要过滤不需要插装的代码,也可以通过该配置进行过滤。通过jenkins对通用模板进行数据填充,生成本次插装编译项目所需要的对应脚本。

配置参数说明:
  <server_ip>127.0.0.1</server_ip><!--服务端ip,按照实际配置-->
        <user_name>user</user_name><!--编译账户用户名-->使用该用户名前,建议该用户名没有其它登录客户端操作
        <password>user</password><!--编译账户用户密码-->
        <is_append></is_append><!--是否追加编译0不追加   追加-->一般默认
 <is_Regression></is_Regression><!--是否选择回归0不回归   回归-->一般默认
 <is_AddCompile></is_AddCompile><!--是否增量编译0否   是  增量编译是文件级别的去重编译,此时会忽略同模块名级别去重-->一般默认
 <is_classCompileOnly></is_classCompileOnly><!--是否追加class编译0不追加   追加-->(注意:project_path 和 class_path 路径不能为空)一般默认
        <compile_mode></compile_mode><!--编译模式0 旧编译模式(通过客户端登录方式)
 1新编译方式-->一般默认
    <is_Parallel_compile_mode></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--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窗口中进行打印。

注意:<is_Parallel_compile_mode>0</is_Parallel_compile_mode><!--是否支持并行编译0 否 1是-->若是选择为1的启动方式:
.\jre\bin\java.exe -jar autpCompile.jar -c 插件路径 ComplierPath.xml绝对路径

4.项目静态数据加载
插装成功后,通过登录客户端选中我们插装的项目进行版本静态数据的加载,加载成功后即可看到分析的生成的静态数据

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 命令

传统J2EE项目或安卓项目
通过jenkins在编译项目中引入JavaParser-j2ee.jar和jeromq-0.3.0-SNAPSHOT.jar进行编译,注这里需要群J2EE和安卓项目,如安卓项目需要把2个依赖包最终打入到APK中,如果是J2EE项目,请在最后生成的war包或jar包中取出该依赖包,因J2EE项目最终会搭配agent使用,agent中会自带该依赖。
打包完成,为使函数覆盖率可视视图代码部分显示正常,需要手动修改源码路径:右键版本,点击修改源码路径,选择到pre_java目录即可。

星云测试插装编译流程与CI集成的更多相关文章
- 【星云测试】开发者测试-采用精准测试工具对Spring Boot应用进行测试
		简介:本文主要介绍把现今主流的springboot框架项目和精准测试工具进行结合和应用,通过精准测试的数据穿透.数据采集.测试用例与代码的双向追溯.数据分析等一系列精准测试的特有功能,达到对项目质量的 ... 
- 【星云测试】开发者测试(3)-采用精准测试工具对springcloud微服务应用进行穿透测试
		1.微服务简介 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及部署,并通过各自暴露的API接 ... 
- 【星云测试】开发者测试(4)-采用精准测试工具对dubbo微服务应用进行测试
		简介:本文主要目的是把现今主流的Dubbo框架项目和精准测试进行对接,通过精准测试的数据穿透.数据采集.测试用例与代码的双向追溯.数据分析等一系列精准测试的特有功能达到对项目质量的保证. 本次环境搭建 ... 
- 【星云测试】Devops微服务架构下具有代码级穿透能力的精准测试
		微服务是Devops场景下热门的开发框架,在大型项目中被广泛采用.它把一个大型的单个应用程序和服务拆分为数十个的支持微服务,独立部署.互相隔离,通过扩展组件来处理功能瓶颈问题,比传统的应用程序更能有效 ... 
- 【星云测试】Wings-让单元测试智能全自动生成
		Wings-让单元测试智能全自动生成 前言 单元测试是保证软件质量非常有效的手段,无论是从测试理论早期介入测试的理念来看或是从单元测试不受UI影响可以高速批量验证的特性,所以业界所倡导的测试驱动开发, ... 
- 【星云测试】开发者测试(2)-采用精准测试工具对J2EE Guns开发框架进行测试
		配置测试Guns Guns简介 Guns是一个近几年来基于SpringBoot的开源便利且较新的JavaEE项目开发框架,它整合了springmvc + shiro + mybatis-plus + ... 
- Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目
		在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集 ... 
- CI集成 mesos 资源分配的思考, 待续
		读了mesos的论文(https://people.eecs.berkeley.edu/~alig/papers/mesos.pdf ),感觉应用在 CI 上的资源管理很赞,能够解决 jenkins在 ... 
- Kali Linux渗透测试实战  1.3 渗透测试的一般化流程
		1.3 渗透测试的一般化流程 凡事预则立,不预则废,做任何事情都要有一个预先的计划.渗透测试作为测试学科的一个分支,早已形成了完整的方法论.在正式开始本书的实践教学章节之前,我也想谈一谈使用Kali ... 
随机推荐
- 【笔试题】Java笔试题知识点
			Java高概率笔试题知识点 Java语法基础部分 [解析]java命令程序执行字节码文件是,不能跟文件的后缀名! 1.包的名字都应该是由小写单词组成,它们全都是小写字母,即便中间的单词亦是如此 2.类 ... 
- Java行业未来发展
			互联网时代的飞速发展,为机械,自动化,等传统行业敲响了警钟,曾经火爆一时的行业逐渐没落,曾经网上有个段子,一个人在20多年前,看BP机卖的如火如荼,自己一想,那么多人都在用,总会有坏的时候吧,然后去技 ... 
- 【THE LAST TIME】彻底吃透 JavaScript 执行机制
			前言 The last time, I have learned [THE LAST TIME]一直是我想写的一个系列,旨在厚积薄发,重温前端. 也是给自己的查缺补漏和技术分享. 欢迎大家多多评论指点 ... 
- 《菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师》
			<菜鸟程序员成长之路:从技术小白到阿里巴巴Java工程师> 国庆节快乐!一年一度长度排第二的假期终于来了. 难得有十一长假,作者也想要休息几天啦. 不管你是选择出门玩,还是在公司加班,在学 ... 
- java-整型数值 用 16进制转换、2进制转换-Integer.toHexString
			负数为什么要用补码表示 可以将符号位和其它位统一处理 减法也可按加法来处理 另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃 正数:原码.反码.补码相同. 负数:反码符号位不变 ... 
- Spring boot 梳理 - WebMvcConfigurer接口 使用案例
			转:https://yq.aliyun.com/articles/617307 SpringBoot 确实为我们做了很多事情, 但有时候我们想要自己定义一些Handler,Interceptor,Vi ... 
- Hadoop点滴-外围概念
			有句话说的好“大数据胜于好算法” 硬盘存储容量在不断提升的同时,访问速度(硬盘数据读取速度)却没有同步增长:1990年,访问全盘需要5分钟,20年后,需要2.5小时 不同的业务大数据,存储在一套HDF ... 
- mysql5.7初始密码及设置问题
			为了加强安全性,MySQL5.7为root用户随机生成了一个密码,如果安装的是RPM包,则默认是在/var/log/mysqld.log中. 可通过# grep "password" ... 
- hadoop入门之海量Web日志分析 用Hadoop提取KPI统计指标
			转载自:http://blog.fens.me/hadoop-mapreduce-log-kpi/ 今天学习了这一篇博客,写得十分好,照着这篇博客敲了一遍. 发现几个问题, 一是这篇博客中采用的had ... 
- zui框架配置日期控件只显示年月
			zui框架配置日期控件datetimepicker只显示年月 <!DOCTYPE html> <head> <script src="~/Scripts/jqu ... 
