代码静态扫描与覆盖率工具之火线

Posted xqtesting

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码静态扫描与覆盖率工具之火线相关的知识,希望对你有一定的参考价值。

点击链接加入QQ群 522720170(免费公开课、视频应有尽有):https://jq.qq.com/?_wv=1027&k=5C08ATe

 

本次以在jenkins里使用代码静态扫描与覆盖率工具之火线为例

 

 

1. 依次点击"Jenkins"->"系统管理"->"管理插件",在插件页面点击"可选插件"按钮,

技术分享图片

2. 在过滤栏输入"fireline",勾选查询出来的"Fireline Plugin"插件,点击直接安装。等待安装成功后,点击"返回首页",开始配置。

技术分享图片

3. 点击创建一个新任务,输入任务名称,选择“构建一个自由风格的软件项目”,点击确定。在“构建”栏点击“增加构建步骤”,在下拉列表中选择“Execute FireLine”选项。

技术分享图片

4. “构建”栏会出现火线相关的配置,报告路径会有一个默认的地址,不需要输入,默认报告会放在你的个人用户的“report”目录下,如图所示。配置完成,点击保存按钮。

技术分享图片

5. 安装一个新的插件“html Publisher plugin”,再次去往“系统管理”-> “管理插件” ->“可选插件”,搜索“HTML Publisher plugin”,点击直接安装,安装成功后返回。

技术分享图片

6. 回到项目配置页面,这次只需要配置“构建后操作”栏,点击“增加构建后操作步骤”下拉框,选择“Publish HTML reports”选项。

技术分享图片

7. 点击“增加”按钮。在“HTML directory to archive”栏输入火线报告的生成路径,即在“构建”栏中火线默认的结果报告路径,复制过来即可。在“Index page[s]”栏输入“testReport.html”,这是火线默认生成的HTML报告的名称。这两项配置完成后点击保存。

技术分享图片

8. 此时还没有完成,因为火线的HTML报告用了JS进行更好的效果展示,我们需要在Jenkins中配置运行执行JS脚本,否则火线报告在Jenkins中的展示会错乱。 前往“系统管理”->“脚本命令行”,在文本框中输入System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")这行代码,点击右下角的“运行”按钮。

技术分享图片

9. 最后一步,回到我们的项目,点击“立即构建”,构建完成后就可以点击“HTML Report”栏直接查看火线报告了。

技术分享图片


二、Jenkins插件参数配置说明

火线的Jenkins插件共有6个参数,分别为结果报告路径、结果报告文件名、规则配置信息、参数化构建、JVM参数配置和JDK版本设置。如下图所示:

技术分享图片

1、结果报告路径【必要】:火线扫描项目后产生结果报告存放的路径,默认目录为当前用户的临时文件夹的report目录下。本参数可使用Jenkins环境变量,例如:${WORKSPACE}

2、结果报告文件名【必要】:火线扫描项目后产生结果报告的文件名称,默认为testReport.html。本参数可使用Jenkins环境变量,例如:${BUILD_NUMBER}-report.html

3、规则配置信息:可直接在文本框中编辑xml规则配置文本。可点击右侧帮助文“?”图标,查看具体配置信息。如下图所示:

技术分享图片

4、参数化构建:此功能需要配合“build with parameter”插件组合使用。
在build with parameter 选项中选择添加boolean类型的参数,例如:fireline。然后在此选项中引用环境变量${fireline}即可。如下图所示:

(1)配置参数化构建的变量技术分享图片(2)引用环境变量技术分享图片(3)参数化构建,控制火线的扫描技术分享图片

5、JVM参数配置:可根据jenkins自身系统配置,更改合适的JVM运行参数,以达到更好的扫描性能。默认配置为:-Xms1g -Xmx1g -XX:MaxPermSize=512m

6、JDK版本设置:可配置使用不同版本的JDK版本。默认使用Jenkins系统环境的JDK版本。火线目前支持jdk1.7和jdk1.8版本。

技术分享图片


以上是关于代码静态扫描与覆盖率工具之火线的主要内容,如果未能解决你的问题,请参考以下文章

Jenkins中使用火线进行Android静态代码扫描

代码质量SonarQube原理与实践

击败Facebook Infer!360火线大起底

击败Facebook Infer!360火线大起底

测试工具-代码扫描Sonar

解决Sonar扫描Lombok注解的代码没有覆盖率