centos

CentOS中Postman如何使用脚本功能

小樊
50
2025-10-02 15:34:22
栏目: 智能运维

Pre-request Script(预请求脚本)
Pre-request Script 用于在请求发送前执行,常见用途包括生成认证令牌、设置动态请求头、初始化环境变量等。例如,生成JWT令牌并添加到请求头的脚本:

// 引入jsonwebtoken模块(需提前安装)
const jwt = require('jsonwebtoken');
const payload = {"userId": "user123"};
const secret = "secretkey_example";
const token = jwt.sign(payload, secret);
// 添加Authorization头
pm.request.headers.add({key: "Authorization", value: "Bearer " + token});

或设置环境变量的脚本:

// 设置时间戳环境变量
pm.environment.set("timestampHeader", new Date().toISOString());

这些脚本会在请求发送前运行,确保请求携带必要的动态数据。

Tests Script(测试脚本)
Tests Script 用于在请求响应后执行,主要功能是验证响应状态码、响应体内容、响应时间等。例如,检查状态码是否为200并验证响应体中的用户名:

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});
pm.test("Username is correct", function () {
    const jsonData = pm.response.json();
    pm.expect(jsonData.user).to.eql("JohnDoe");
});

或验证响应时间的脚本:

pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

这些脚本会自动运行,并在“Tests”选项卡中显示通过/失败的测试结果。

环境变量与全局变量
Postman脚本可通过pm.environmentpm.globals对象操作环境变量和全局变量,实现数据动态传递。例如:

环境变量需在“Environments”中创建并激活,全局变量则在“Globals”中管理。

数据驱动测试
通过外部数据文件(CSV/JSON)实现数据驱动测试,让同一请求使用多组数据进行验证。例如,使用CSV文件中的userData字段发送请求:

const userData = pm.iterationData.get("userData"); // 从CSV中读取数据
pm.sendRequest({
    url: 'https://api.example.com/user/' + userData.id,
    method: 'GET',
    headers: {
        'Authorization': 'Bearer ' + pm.environment.get("authToken")
    }
}, (error, response) => {
    pm.test("User data matches", function () {
        pm.expect(response.json().name).to.eql(userData.name);
    });
});

需将CSV文件导入Postman集合的“Data” tab中,脚本通过pm.iterationData.get()获取每行数据。

使用Newman运行脚本
Newman是Postman的命令行工具,可将Postman集合和脚本自动化运行。安装与运行步骤:

  1. 安装Node.js和npm
    sudo yum install -y nodejs npm
    
  2. 安装Newman
    sudo npm install -g newman
    
  3. 导出Postman集合和环境文件
    在Postman中选择“Collection”→“Export”,保存为collection.json;选择“Environment”→“Export”,保存为environment.json
  4. 运行Newman命令
    newman run collection.json -e environment.json
    
    运行后会输出测试结果,包括通过的测试数、失败的测试详情。

自动化集成(CI/CD)
将Newman集成到CI/CD流程(如Jenkins),实现代码提交后自动运行API测试。例如,Jenkinsfile配置:

pipeline {
    agent any
    stages {
        stage('Run Postman Tests') {
            steps {
                sh './run_postman.sh' // 调用前面创建的Shell脚本
            }
        }
    }
}

Shell脚本run_postman.sh内容:

#!/bin/bash
COLLECTION_FILE="/path/to/collection.json"
ENVIRONMENT_FILE="/path/to/environment.json"
newman run $COLLECTION_FILE -e $ENVIRONMENT_FILE

赋予执行权限后,每次代码提交都会自动触发Postman测试。

0
看了该问题的人还看了