飞道的博客

持续集成如何进行Jenkins管理?

364人阅读  评论(0)

一、安装插件

Jenkins左侧菜单栏 —> “Manage Jenkins” —> 选择 “Manage Plugins” —> “可选插件” —> 插件名称
如:“HTML Publisher”

 二、准备工作

将 运行无误,能生成报告的项目代码 上传至 Gitee中。

三、使用Jenkins管理-手动构建

1. 打开 Jenkins 首页, 点击 “新建Item” 创建一个新任务。

2. 输入任务名,如: LoginAutoTest。选择 “Freestyle project”,点 “确定”,跳至 “配置” 页面。

3. “源码管理” 标签。 选择 “Git”。 在 Repository URL 后写入 项目代码在 Gitee的 URL。

4. “构建” 标签。

4. 1. 点击 “增加构建步骤”, 选择 “Execute Windows batch command” 选项(macOS选择 “Execute shell”

4. 2. 输入命令 python run_suite.py ( 与在 pycharm 的 Terminal 中执行,相同含义)

5. “构建后操作” 标签

5.1. 点击 “增加构建后操作步骤”,点击 “Pulish HTML reports” ,点击 “新增” 按钮。 

5.2. 在 “HTML directory to archive” 中 写入 报告生成的位置。 如:./report (与项目目录一致)

5.3. Index page[s] 后的值,与 run_suite.py 中代码,生成的测试报告名称保持一致。如:login.html。

6. 再次点击 “增加构建后操作步骤”, 选择 “Editable Email Notifification” 设置 邮件发送测试报告。

6.1. 在 “Project Recipient List” ,$DEFAULT_RECIPIENTS 后使用 英文 “,” 隔分,添加邮箱地址。

6.2. 下面 “Content-Type” 的值,选择 HTML(text/html)

6.3. 复制中 “邮件测试报告模板” 代码到 “Default Content ” 中

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title> </head> <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0"> <div> <h2>项目信息</h2> <ul> <li>项目名称:${PROJECT_NAME}</li> <li>登录详细测试报告:<a href="${PROJECT_URL}HTML_Report/">${PROJECT_URL}HTML_Report/</a></li> <li>触发原因:${CAUSE}</li> <li>项目Url:<a href="${PROJECT_URL}">${PROJECT_URL}</a></li> </ul> <hr/> <h2>构建日志</h2> <div>${JELLY_SCRIPT,template="html"}</div> <hr/> </div> </body> </html>

7. 点击右下角 “Advanced Settings” 按钮。将 “Trigger” 原有的内容 点 最外层 “红叉” 删除。

点击 “Add Trigger” 选择 Always 。

8. 点击 “应用” --> “保存”。

9. 点击 “Build Now” 开始手动构建。

四、使用Jenkins管理-自动构建

1. 点击 “配置” 查看,在 “构建触发器” 标签。 选择 “Build periodically(定期地)” 添加 定时构建!

2. “日程表” 中写入:* * * * *(空格隔分) —> 分别对应 “分 时 日 月 年”

修改:H 16 * * * 就是 每天的 16 点 执行。

3. 也可以在 “构建触发器” 标签 中选择 “Poll SCM”。 写入 :*/1 * * * * (空格隔分)

代表1分钟 检查一次 gitee 上的代码,查验是否有更新。

4. PyCharm 修改代码 Commit、Push,或者 直接在 Gitee修改,导致 Gitee上的代码有 变动。会触发Jenkins

会自动构建。

     扩展(定期构建,日程表)
该字段遵循 cron 的语法(有细微差别)。具体来说,每一行由 5 个字段组成,由 TAB 或空格分隔:

MINUTE HOUR DOM MONTH DOW
分钟 一小时内的分钟数 (0–59)
小时 一天中的小时 (0–23)
DOM 月份中的某天 (1–31)
月份 (1–12)
陶氏 星期几 (0–7),其中 0 和 7 是星期日。

要为一个字段指定多个值,可以使用以下运算符。按照优先顺序,

  • *指定所有有效值
  • M-N指定值的范围
  • M-N/X*/X在指定范围或整个有效范围内按 X 的间隔步进
  • A,B,...,Z枚举多个值

为了允许定期调度的任务在系统上产生均匀的负载,H应尽可能使用符号(用于“哈希”)。例如,使用0 0 * * *十几个日常工作会在午夜导致一个大的峰值。相比之下,usingH H * * *仍然会每天执行一次每个作业,但不是同时执行一次,更好地使用有限的资源。

H符号可以与范围一起使用。例如,H H(0-7) * * * 表示 12:00 AM(午夜)到 7:59 AM 之间的某个时间。您还可以使用带H、带或不带范围的步长间隔。

H符号可以被认为是一个范围内的随机值,但它实际上是作业名称的哈希,而不是随机函数,因此该值对于任何给定项目都保持稳定。

请注意,对于月份字段,由于月份长度不同,短周期(例如*/3H/3不会在大多数月份结束时始终如一)工作。例如,*/3将在长月的第 1、4、...31 天运行,然后在下个月的第二天再次运行。哈希值始终在 1-28 范围内选择,因此H/3在月底运行之间会产生 3 到 6 天的间隔。(较长的周期也会有不一致的长度,但效果可能相对不太明显。)

空行和以 开头的#行将作为注释被忽略。

此外,还支持@yearly@annually@monthly、 @weekly@daily@midnight@hourly作为方便的别名。这些使用哈希系统进行自动平衡。例如,@hourlyH * * * *并且可能表示一小时内的任何时间相同。 @midnight实际上是指 12:00 AM 到 2:59 AM 之间的某个时间。

例子:

# 每十五分钟(可能在 :07, :22, :37, :52):
H/15 * * * *
# 每小时前半段每十分钟一次(3 次,可能在 :04, :14, :24):
H(0-29)/10 * * * *
# 每两小时一次,每两个小时一次,从上午 9 点 45 分开始,到每个工作日下午 3 点 45 分结束,每小时 45 分钟:
45 9-16/2 * * 1-5
# 每个工作日上午 8 点到下午 4 点之间每两小时一次(可能在上午 9:38、上午 11:38、下午 1:38、下午 3:38):
HH(8-15)/2 * * 1-5
# 除 12 月外,每月 1 日和 15 日每天一次:
HH 1,15 1-11 *

时区规范

周期性任务通常在 Jenkins 主 JVM 所在时区(目前为Asia/Shanghai)的预定时间执行。可以通过在字段的第一行指定替代时区来选择更改此行为。时区规范以 开头TZ=,后跟时区的 ID。

具有时区规范的计划的完整示例:

    TZ=欧洲/伦敦
    # 这个作业需要在伦敦时间早上运行
    高 8 * * *
    # 管家没有五点钟,所以我们再次运行工作
    H(0-30) 17 * * *

转载:https://blog.csdn.net/wuwei13798642/article/details/125805137
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场