Jenkins离线环境使用实战说明(集成Jmeter、Ant、Git)

接博文上篇基础环境搭建的博文

系统基本配置

这里主要涉及的是项目中使用的其他基础服务(maven、git、jdk、ant等)路径,如果服务器上相关环境变量信息已经配置,这里也可以省略,如果配置了,jenkins在选择的时候会多一些可选项
Manage Jenkins ——> Clobal Tool Configuration
在这里插入图片描述

jenkins任务配置

http://ip:端口/jenkins ——>New Item
在这里插入图片描述

Maven任务

在这里插入图片描述

当前的job涵盖了打包+ssh拷贝到目标服务器+打包等内容,比较好的思路是将打包和部署两部分都单独设置job,打包成功以后触发部署job。由于目前部署的服务器比较少,相对环境比较简单,因此就采用当前这种简单的做法。


maven 任务配置demo
在这里插入图片描述

General

任务(job)总体的一些配置信息,这里只针对我项目使用的部分展开描述
在这里插入图片描述

  • Description 项目描述信息
  • Discard old builds 项目历史的记录保留的相关设置策略
  • This project is parameterized 任务的配置信息,需要插件parameterized-trigger才可以使用
    在这里插入图片描述
This project is parameterized

每一种类型的参数使用略有差异,目前介绍项目中使用了的几种:

  • Git Parameter 需要安装插件git-parameter,可以选择

设置页面
在这里插入图片描述


使用页面
在这里插入图片描述

  • Extensible Choice——>File Parameter 需要安装插件extensible-choice-parameter 使用的效果类似Choice Parameter,但是支持的形式更多,可以针对系统的一些配置来做选择。勾选EditAble的话支持手动修改选择结果

设置页面
在这里插入图片描述


使用页面
在这里插入图片描述

  • String Parameter 手工输入的String类型的变量

设置页面
在这里插入图片描述


使用页面
在这里插入图片描述

  • Choice Parameter 下来选择的预设String 类型变量,不支持自定义编辑

设置页面
在这里插入图片描述


使用页面
在这里插入图片描述

Source Code Management

任务(job)源码部分配置信息,支持svn、git、等等。这块都需要安装相关的插件才能使用功能。

  • Git 代码管理需要使用git插件,此处的例子git分支使用了Git Parameter取得的参数;

Additional Behaviours 里还有很多可选的操作可以使用,可以根据需要自行选择,demo里只选择了Wipe out repository & force clone

在这里插入图片描述

Build

maven打包的相关配置

  • Root POM pom文件的路径,是以当前项目workspace为默认路径
  • Goals and options 执行的maven指令

在这里插入图片描述

Post Steps

完成打包以后需要将程序包拷贝到相应的服务器上做部署,只有当build成功的时候才设置执行这部分脚本。

在这里插入图片描述

使用ssh进行文件拷贝已经部署的操作需要配套的实现免密登录,不然在脚本运行过程中出现需要输入密码的情况就会卡住,而且目前的ssh Publicshers 默认就需要实现ssh免密登录的配置才可以用.

其他类型任务

其他的项目类比maven项目,就是Build这一块内容有差异,可以不做执行maven指令,转而执行其他的操作,其余的配置均类似,这里就不做具体完整展开,仅针对特殊的部分做介绍。

ant+jenkins+jmeter 项目

使用ant+jenkins+jmeter来跑主要是为了省事,可以使用ant的相关组件来生成html的结果报告。简单的处理的话,使用命令行模式运行jmeter脚本也是没有问题。

Build ant部分配置

在这里插入图片描述

jemter-Post-bulid Action 生成html报告

在这里插入图片描述

ant+jenkins+jmeter使用过程中出现而问题以及解决方案

配置的过程中陆续的还是遇到一些问题,这里做简单的列举

Jmeter 运行报错ApacheJMeter.jar 中的class找不到

将$JMETER_HOME/bin/ApacheJMeter.jar 加入到CLASS_PATH里

Html样式失效问题处理

解决方案参考
在这里插入图片描述

ant脚本执行传空参问题

目前的demo有一点特殊,项目中jmx脚本存在多个,job中需要动态指定运行哪个脚本,如果不选则默认运行全部脚本,这里做了特殊处理。

<property name="jmxname" value="${jmxname}" />
<condition property="jmeter.jmxname" value="${jmxname}" else="*.jmx">
	    <!-- jmeter.jmxname设置了值而且值非空的情况下才返回true,此时不采用默认值 -->
		<and>
		    <!--如果属性jmxname不存在则返回false -->
			<isset property="jmxname" />
			<not>
			   <!--如果属性jmeter.jmxname非空在则返回true -->
			   <equals arg1="${jmxname}" arg2="" />
			</not>
		</and>
</condition>

任务之间的触发

  • uat-trigger-other-job 触发源工程,该工程未做任务关联其他工程的配置,但是uat-trigger-job工程通过关联它来触发,该工程无法传参给uat-trigger-job
  • uat-trigger-job 在当前任务上配置触发,通过uat-trigger-other-job来触发当前任务
    从下图可知, uat-trigger-other-job任务触发了uat-trigger-job任务,但是uat-trigger-other-job其参数并没有传递给uat-trigger-job任务
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • uat-trigger-job2 在当前任务上配置触发,通过该任务来触发下一个任务uat-triggered-job
  • uat-triggered-job 被触发工程,该工程未做任务关联其他工程的配置,但是uat-trigger-job2工程通过关联该工程触发它,同时传递参数给uat-triggered-job
    从下图可知, uat-trigger-job2任务触发了uat-triggered-job任务,但是uat-trigger-job2其参数传递给uat-triggered-job任务
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
当前任务触发其他任务配置demo(不可传参)

uat-trigger-other-job

在这里插入图片描述

uat-trigger-job

在这里插入图片描述

当前任务依赖其他任务触发运行配置demo(可传参)

uat-trigger-job2

在这里插入图片描述

uat-triggered-job

在这里插入图片描述

jenkins任务简单使用

主要针对任务的运行和任务的日志查看做简单介绍

运行任务

在这里插入图片描述

查看任务日志

http://ip:端口/jenkins/job/任务名称/记录index/console
在这里插入图片描述
注意 其他类型job查看详细日志的方式有所差异,当前的jenkins版本需要多走一层
http://ip:端口/jenkins/job/任务名称/default/记录index/console
在这里插入图片描述

查看jmeter html报告

jmeter的这个job就是一个特殊的非maven类型任务,这个html报告可以自行配置,如果网络通畅都可以配置邮件发送的相关信息
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考资料

发布了22 篇原创文章 · 获赞 1 · 访问量 3250

猜你喜欢

转载自blog.csdn.net/tian_111222333/article/details/102459812