Jenkins定时构建
时间: 2025-01-01 12:28:13 浏览: 54
### 配置 Jenkins 实现定时自动构建
#### 设置构建触发器
为了使 Jenkins 能够按照预定的时间表执行构建操作,在项目的配置页面中需找到并启用【构建触发器】下的【定时构建】选项[^3]。
#### 定义时间表达式
在启用了定时构建功能后,需要输入一个遵循特定语法规则的时间表达式来定义具体的调度计划。此表达式的格式类似于 Unix 的 cron 表达式[^2]:
- `* * * * *`:表示每分钟都运行一次。
- `H H(0-23) * * *`:每天凌晨一点钟左右随机时刻运行(推荐用于避免服务器负载高峰)。
- `0 9 * * 1-5`:工作日早上九点钟整点运行。
对于更复杂的场景,可以根据实际需求调整上述模板中的各个字段以满足精确到秒级的任务安排要求。
#### 应用与保存更改
当完成了以上设置之后,记得点击页面底部的【保存】按钮确保所有的修改生效。
通过这种方式,Jenkins 就能够依据设定好的规则周期性地触发指定作业的执行过程,从而达到自动化的目的。
```bash
# 这里提供了一个简单的例子展示如何编写crontab样式的字符串给jenkins理解
# 假设我们希望每周五下午5点启动构建,则应填写如下内容:
0 17 * * 5
```
相关问题
jenkins定时构建带参数
### 设置带有参数的定时构建
在 Jenkins 中配置带参数的定时构建涉及几个重要组件:安装必要的插件、创建参数化作业以及编写合适的调度表达式。
#### 安装所需插件
为了实现更灵活的任务管理,建议安装 `Parameterized Scheduler Plugin` 插件[^1]。此插件允许定义多个具有不同条件触发器的时间表条目,并支持传递参数给这些计划执行的任务。
#### 创建参数化的Jenkins Job
当建立一个新的自由风格项目或流水线时,在“General”部分启用“这是一个参数化构建”,并添加所需的参数类型(字符串、布尔值、文件等)。对于希望随时间变化而改变的具体变量,可以在此处指定默认值或其他选项。
#### 配置Build Triggers中的Schedule
进入项目的配置页面下的 "Build Triggers" 板块,勾选 “Build periodically”。这里输入的是 cron 表达式的变体来设定具体的运行时刻。如果要结合特定参数一起使用,则可以在 Cron 时间后面加上环境变量赋值语句的形式:
```
H H(0-23) * * 1 PARAM_NAME=value_for_monday
H H(0-23) * * 2 PARAM_NAME=value_for_tuesday
...
```
上述例子表示每周一到周日每天凌晨某个随机小时启动一次构建过程,并且每次都会带上不同的参数值。
```groovy
pipeline {
agent any
parameters {
string(name: 'PARAM_NAME', defaultValue: '', description: '')
}
triggers {
parameterizedCron('''
H H(0-23) * * 1 PARAM_NAME=monday_value
H H(0-23) * * 2 PARAM_NAME=tuesday_value
''')
}
stages {
stage('Example') {
steps {
echo "${params.PARAM_NAME}"
}
}
}
}
```
jenkins定时构建JMeter脚本
### Jenkins 中设置定时构建以运行 JMeter 性能测试脚本
为了在 Jenkins 中设置定时构建来运行 JMeter 测试脚本,可以按照以下方法完成配置:
#### 1. **安装必要的插件**
确保已安装 `JMeter Plugin` 和其他可能需要的插件(如 Email Extension 插件用于发送邮件)。这些插件可以通过 Jenkins 的插件管理器进行安装。
#### 2. **创建一个新的自由风格项目**
进入 Jenkins 主页,点击“新建任务”,输入任务名称,并选择“自由风格软件项目”。
#### 3. **配置源码管理**
如果测试脚本存放在版本控制系统中(如 Git 或 SVN),则在此处配置相应的仓库地址和凭证。
#### 4. **设置构建触发器**
在项目的配置页面找到“构建触发器”部分,勾选“定期构建”。使用 cron 表达式定义执行时间。例如,每天凌晨两点执行一次的任务可以用如下表达式表示:
```cron
0 2 * * *
```
此表达式的含义为每晚两点半启动构建过程[^1]。
#### 5. **编写构建步骤**
切换到“构建”区域,在这里添加具体的命令行操作或者调用 Ant 构建文件的方式。以下是两种常见的做法之一或两者结合使用的例子:
##### 方法 A: 使用 Shell 命令直接调用 JMeter
假设工作目录下存在名为 `test.jmx` 的 JMeter 脚本,则可以在“Execute shell”框内写入类似下面的内容:
```bash
rm -rf /path/to/logs/*
rm -rf /path/to/reports/*
/path/to/jmeter/bin/jmeter.sh \
-n \
-t /path/to/scripts/test.jmx \
-l /path/to/results/test.jtl \
-e \
-o /path/to/reports/
```
上述指令清除了旧的日志与报告文件夹中的内容以防干扰新结果,并指定了无界面模式下的参数选项以及最终生成HTML格式的结果位置[^3]。
另外需要注意的是,默认情况下 `.jtl` 文件是以 CSV 形式保存的,而某些高级功能依赖 XML 数据结构才能正常运作。因此有必要调整全局属性文件(`jmeter.properties`)里的相应字段值设成XML形式以便兼容更多特性支持[^4]:
```properties
jmeter.save.saveservice.output_format=xml
```
##### 方法 B: 利用 Ant 自动化流程处理
对于更复杂的场景来说,借助 Apache Ant 工具能够极大地简化重复劳动强度高的环节比如打包部署等动作序列安排起来更加方便快捷高效得多。首先得准备好一份标准样式的 build.xml 文档描述清楚各个目标之间的关系逻辑链路走向等等细节事项之后再将其关联至当前 Job 设置里头去即可达成目的效果啦!
简单示范版build.xml片段展示如下所示:
```xml
<project name="PerformanceTest" default="run-tests">
<!-- Define properties -->
<property name="jmeter.home" value="/opt/apache-jmeter"/>
<property name="results.dir" value="${basedir}/results"/>
<!-- Clean up old results -->
<target name="clean">
<delete dir="${results.dir}"/>
<mkdir dir="${results.dir}"/>
</target>
<!-- Run tests -->
<target name="run-tests" depends="clean">
<exec executable="${jmeter.home}/bin/jmeter.bat" failonerror="true">
<arg line="-n -t scripts/my_test_plan.jmx -l ${results.dir}/output.jtl"/>
</exec>
</target>
</project>
```
接着回到 Jenkins 页面上新增一项 “Invoke Ant” 类型的动作项指定对应的 target 名
阅读全文
相关推荐


















