ubuntu

如何在Ubuntu中集成Postman与Jenkins

小樊
44
2025-10-07 17:39:38
栏目: 智能运维

在Ubuntu中集成Postman与Jenkins的完整步骤

1. 环境准备

1.1 安装Jenkins

在Ubuntu服务器上安装Jenkins(持续集成工具),用于自动化执行Postman测试:

# 添加Jenkins存储库密钥和源
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add -
sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'

# 更新包列表并安装Jenkins
sudo apt update
sudo apt install jenkins

# 启动Jenkins并设置开机自启
sudo systemctl start jenkins
sudo systemctl enable jenkins

访问http://<服务器IP>:8080完成Jenkins初始化配置(按提示输入管理员密码)。

1.2 安装Newman(Postman命令行工具)

Newman是Postman的命令行接口,需通过Node.js安装:

# 安装Node.js和npm(Node包管理器)
sudo apt install nodejs npm -y

# 全局安装Newman
sudo npm install -g newman

# 验证安装
newman -v

确保输出Newman版本号(如5.3.0),表示安装成功。

1.3 安装Jenkins必要插件

登录Jenkins管理界面,进入Manage JenkinsManage Plugins,安装以下插件:

2. Postman测试配置

2.1 创建测试集合

在Postman客户端中:

  1. 点击左上角NewCollection,输入集合名称(如API_Tests);
  2. 点击+ Add Request,配置API请求(URL、Method、Headers、Body等);
  3. 切换至Tests标签页,编写测试脚本(如验证状态码、响应数据):
    // 示例:验证状态码为200
    pm.test("Status code is 200", function () {
        pm.response.to.have.status(200);
    });
    // 示例:验证响应体包含"success"
    pm.test("Response contains 'success'", function () {
        const responseJson = pm.response.json();
        pm.expect(responseJson.message).to.eql("success");
    });
    
  4. 点击Save保存集合。

2.2 导出测试集合与环境变量

  1. 选中集合,点击右侧三个点→Export,选择Collection Format: v2.1,导出为collection.json
  2. 进入Manage Environments,创建环境(如Test_Env),添加变量(如base_url: https://api.example.com),导出为environment.json
  3. 将两个文件存放在Jenkins工作空间的安全目录(如/var/lib/jenkins/workspace/api_tests/),避免中文路径

3. Jenkins任务配置

3.1 创建Pipeline任务

  1. 进入Jenkins首页,点击New Item,输入任务名称(如Postman_API_Tests),选择Pipeline,点击OK
  2. Pipeline配置页,选择Pipeline script from SCM(从代码仓库拉取脚本),SCM选择Git,输入仓库URL(如https://github.com/your-username/api-tests.git),分支选择main

3.2 编写Jenkinsfile(Pipeline脚本)

在代码仓库根目录创建Jenkinsfile,内容如下(整合Newman执行与报告生成):

pipeline {
    agent any
    
    stages {
        stage('Checkout') {
            steps {
                git branch: 'main', url: 'https://github.com/your-username/api-tests.git'
            }
        }
        
        stage('Run Postman Tests') {
            steps {
                sh '''
                    # 运行Postman测试,生成JUnit和HTML报告
                    newman run "collection.json" \
                    -e "environment.json" \
                    -d "testdata.csv" \  # 可选:数据驱动测试
                    -r cli,junit,htmlextra \
                    --reporter-junit-export "reports/junit.xml" \
                    --reporter-htmlextra-export "reports/report.html"
                '''
            }
        }
    }
    
    post {
        always {
            // 发布JUnit测试报告
            junit 'reports/junit.xml'
            
            // 发布HTML报告(需安装HTML Publisher插件)
            publishHTML(target: [
                allowEmptyArchive: false,
                alwaysLinkToLastBuild: true,
                keepAll: true,
                reportDir: 'reports',
                reportFiles: 'report.html',
                reportName: 'Postman Test Report'
            ])
            
            // 邮件通知(需安装Email Extension插件)
            emailext (
                subject: "Postman API Tests Result: ${currentBuild.result}",
                body: """<p>Check the test report here: ${BUILD_URL}HTML_Report/</p>""",
                to: 'dev-team@example.com'
            )
        }
        
        success {
            echo 'All Postman tests passed!'
        }
        
        failure {
            echo 'Some Postman tests failed!'
        }
    }
}

说明

4. 触发与验证

4.1 手动触发

保存Jenkins任务配置,点击Build Now,Jenkins将自动:

  1. 从Git拉取代码;
  2. 运行Newman命令执行Postman测试;
  3. 生成并发布测试报告;
  4. 根据结果发送邮件通知(若配置)。

4.2 自动触发(可选)

若需代码提交后自动触发,可在Pipeline配置页的Build Triggers中选择GitHub hook trigger for GITScm polling,并在GitHub仓库的Webhooks中添加Jenkins钩子(URL格式:http://<服务器IP>:8080/github-webhook/)。

注意事项

0
看了该问题的人还看了