在接口测试中,Newman 可以通过结合系统自带的定时任务工具(如 Windows 的任务计划程序或 Linux 的 crontab)或 CI/CD 工具(如 Jenkins)来实现定时执行。以下是具体实现方法及推荐方案:

一、通过系统定时任务工具实现定时执行

1. Windows 系统(任务计划程序)

  • 步骤

    1. 编写批处理脚本(.bat 文件)

      • 将 Newman 运行命令写入文本文件,并保存为 .bat 后缀。例如:
        newman run D:\postman\collection.json -e D:\postman\environment.json -r html --reporter-html-export D:\report\result.html
        
      • 确保脚本中的路径和参数正确无误。
    2. 设置定时任务

      • 右键点击“此电脑”,选择“管理”,打开“计算机管理”页面。
      • 点击“任务计划程序”,选择“创建任务”。
      • 在“触发器”选项卡中,设置执行时间(如每天 8:00)。
      • 在“操作”选项卡中,选择之前编写的 .bat 文件。
      • 点击“确定”保存任务。
  • 优点

    • 无需额外安装工具,直接利用系统功能。
    • 适合简单的定时任务需求。
  • 缺点

    • 任务管理界面相对简陋,缺乏高级功能(如任务依赖、邮件通知等)。

2. Linux 系统(crontab)

  • 步骤

    1. 编写 Shell 脚本(.sh 文件)

      • 将 Newman 运行命令写入文本文件,并保存为 .sh 后缀。例如:
        #!/bin/bash
        newman run /path/to/collection.json -e /path/to/environment.json -r html --reporter-html-export /path/to/report.html
        
      • 给脚本添加执行权限:
        chmod +x /path/to/run_tests.sh
        
    2. 设置定时任务

      • 打开终端,输入 crontab -e 编辑当前用户的定时任务。
      • 添加一行来指定执行时间和脚本路径。例如,每天 8:00 执行:
        0 8 * * * /path/to/run_tests.sh
        
      • 保存并退出编辑器,crontab 会自动加载新的配置。
  • 优点

    • 灵活性强,支持复杂的定时规则。
    • 适合服务器环境下的自动化测试。
  • 缺点

    • 需要熟悉 Linux 命令和 crontab 语法。

二、通过 CI/CD 工具实现定时执行(推荐)

1. Jenkins

  • 步骤

    1. 安装 Newman 和 HTML 报告插件

      • 在 Jenkins 服务器上安装 Node.js 和 npm。
      • 通过 npm 安装 Newman 和 HTML 报告插件:
        npm install -g newman newman-reporter-html
        
    2. 配置 Jenkins 任务

      • 创建一个自由风格的项目。
      • 在“构建触发器”选项卡中,选择“定时构建”,并设置执行时间(如 H/5 * * * * 表示每 5 分钟执行一次)。
      • 在“构建”选项卡中,选择“Execute Windows batch command”或“Execute shell”,并输入 Newman 运行命令。例如:
        newman run D:\postman\collection.json -e D:\postman\environment.json -r html --reporter-html-export D:\report\result.html
        
        newman run /path/to/collection.json -e /path/to/environment.json -r html --reporter-html-export /path/to/report.html
        
    3. 运行任务

      • 保存配置后,Jenkins 会按照设定的时间自动执行任务。
      • 可以在 Jenkins 控制台查看任务执行结果和报告。
  • 优点

    • 功能强大,支持任务依赖、邮件通知、分布式构建等高级功能。
    • 适合企业级自动化测试需求。
  • 缺点

    • 需要安装和配置 Jenkins 服务器,学习成本较高。

三、推荐方案

  • 简单定时任务

    • 如果只是需要在本地或服务器上定时执行 Newman 测试,且需求不复杂,推荐使用系统自带的定时任务工具(Windows 任务计划程序或 Linux crontab)。
  • 企业级自动化测试

    • 如果需要在团队中共享测试结果、集成到 CI/CD 流程中,或需要更复杂的任务管理功能,推荐使用 Jenkins。Jenkins 提供了丰富的插件和功能,可以满足企业级自动化测试的需求。