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


    一、安装插件

    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 ” 中

    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 * * *
  • 相关阅读:
    NSSCTF
    leetcode 28. 实现 strStr() (KMP算法实现)
    Hadoop(二): YARN(资源管理器 RM)、HBase高可用集群搭建
    守护进程的实现
    JS-37-jQuery06-ajax
    vue项目,如何关闭eslint检测?多种解决办法
    计算机怎样同时运行多个程序的?进程相关概念介绍
    40-Java方法重载、return关键字的单独使用
    Java 时间范围
    数学公式与随机数
  • 原文地址:https://blog.csdn.net/wuwei13798642/article/details/125805137