星云测试插装编译流程与CI集成

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

星云测试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>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目录下进行编译)
命令: jrebinjava.exe -jar autoCompile.jar -c D:J2EEjavaForWindows

**注:**-c后面的参数为ComplierPath.xml文件的目录
命令生效后自动进行代码分析与插装并在cmd窗口中进行打印。
![](https://s1.51cto.com/images/blog/201910/18/bb9cd4a99e7444d113c9ac906939579a.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

注意:0 若是选择为1的启动方式:
.jrebinjava.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的依赖库:
方法加入到两个之间,加入的代码如下:

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目录即可。

相关文章
|
2月前
|
敏捷开发 测试技术 持续交付
探索软件测试中的自动化与持续集成
在快速迭代的软件开发环境中,自动化测试和持续集成(CI)已成为确保产品质量和加速交付的关键策略。本文将深入探讨自动化测试的基本原理、实施步骤以及它如何与持续集成流程相结合,以提高软件开发的效率和可靠性。我们将通过实际案例分析,展示自动化测试和CI的最佳实践,以及它们如何帮助企业实现更快的市场响应时间和更高的客户满意度。
63 16
|
2月前
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成:提升效率与质量的关键
在快节奏的软件开发环境中,自动化测试和持续集成已经成为不可或缺的部分。本文将探讨自动化测试和持续集成的重要性,以及它们如何协同工作以提高软件开发的效率和质量。通过分析自动化测试的策略、工具选择以及持续集成的实践,我们将揭示这些技术如何帮助开发团队快速响应变化,减少错误,并加速产品上市时间。
|
2月前
|
机器学习/深度学习 人工智能 jenkins
软件测试中的自动化与持续集成实践
在快速迭代的软件开发过程中,自动化测试和持续集成(CI)是确保代码质量和加速产品上市的关键。本文探讨了自动化测试的重要性、常见的自动化测试工具以及如何将自动化测试整合到持续集成流程中,以提高软件测试的效率和可靠性。通过案例分析,展示了自动化测试和持续集成在实际项目中的应用效果,并提供了实施建议。
|
2月前
|
前端开发 JavaScript 测试技术
前端测试技术中,如何提高集成测试的效率?
前端测试技术中,如何提高集成测试的效率?
|
22天前
|
机器学习/深度学习 人工智能 jenkins
探索软件测试中的自动化与持续集成
【10月更文挑战第21天】 在软件开发的生命周期中,软件测试扮演着至关重要的角色。随着技术的进步和开发模式的转变,自动化测试和持续集成已经成为提高软件质量和效率的关键手段。本文将深入探讨自动化测试和持续集成的概念、实施策略以及它们如何相互配合以优化软件开发流程。我们将通过分析实际案例,展示这些技术如何在实际项目中发挥作用,以及面临的挑战和解决方案。此外,文章还将讨论未来趋势,包括人工智能在测试领域的应用前景。
73 17
|
1月前
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成
在现代软件开发过程中,自动化测试和持续集成已成为不可或缺的组成部分。本文将深入探讨自动化测试和持续集成的重要性、优势以及如何有效实施它们以提升软件质量和开发效率。通过具体案例分析,我们将展示这些技术如何在实际项目中发挥作用,并讨论其面临的挑战及应对策略。
54 3
|
2月前
|
jenkins 测试技术 持续交付
探索自动化测试在持续集成中的应用与挑战
本文深入探讨了自动化测试在现代软件开发流程,特别是持续集成(CI)环境中的关键作用。通过分析自动化测试的优势、实施策略以及面临的主要挑战,旨在为开发团队提供实用的指导和建议。文章不仅概述了自动化测试的基本原理和最佳实践,还详细讨论了如何克服实施过程中遇到的技术难题和管理障碍,以实现更高效、更可靠的软件交付。
|
1月前
|
存储 测试技术 持续交付
Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用
本文探讨了Docker与CI/CD的集成策略及其对软件开发效率和质量的提升作用。首先介绍了CI/CD的基本概念,接着阐述了Docker在环境一致性、快速部署、资源隔离和轻量化方面的优势。文章还详细讨论了构建、测试和部署阶段的具体集成方法,以及集成后带来的效率提升、可靠性增强、加速交付和易于管理等好处。最后,通过案例分析展示了集成的实际效果,强调了Docker与CI/CD结合的重要性和未来前景。
49 2
|
2月前
|
监控 jenkins 测试技术
探索软件测试中的自动化与持续集成####
本文旨在探讨软件测试中自动化测试与持续集成(CI)的融合实践,分析其对提升软件开发效率和质量的重要性。通过深入剖析自动化测试的优势、持续集成的核心概念以及两者结合的最佳实践案例,揭示这一技术趋势如何重塑现代软件开发流程。文章还将讨论实施过程中的挑战和应对策略,为读者提供一套实用的方法论指导。 ####
|
2月前
|
敏捷开发 Devops 测试技术
自动化测试中的持续集成与持续部署
在现代软件开发实践中,自动化测试是确保软件质量和快速迭代的关键。本文将探讨自动化测试如何与持续集成(CI)和持续部署(CD)流程相结合,以提高开发效率和软件质量。我们将分析CI/CD管道中自动化测试的最佳实践,以及如何克服实施过程中的挑战。
50 6