系统基本配置
这里主要涉及的是项目中使用的其他基础服务(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部分配置
- uat-build.xml 相关模板资源链接
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报告可以自行配置,如果网络通畅都可以配置邮件发送的相关信息