温馨提示×

Postman如何在Linux上进行自动化测试

小樊
53
2025-10-07 12:13:03
栏目: 智能运维

1. 准备工作:安装必要工具

  • 安装Node.js和npm:Postman的命令行工具Newman依赖Node.js环境。在Linux终端中运行以下命令安装:
    sudo apt-get update && sudo apt-get install -y nodejs npm(Ubuntu/Debian);
    或通过Node.js官网下载Linux版本的安装包(如.rpm或.tar.gz)手动安装。
  • 安装Postman(可选):若需要图形界面调试,可从Postman官网下载Linux版本(.deb或.tar.gz格式),解压后通过sudo mv Postman /opt移动到系统目录,并创建符号链接sudo ln -s /opt/Postman/Postman /usr/local/bin/postman,实现终端直接运行postman命令。
  • 安装Newman:Newman是Postman的命令行测试工具,通过npm全局安装:
    npm install -g newman。安装完成后,运行newman --version验证是否成功。

2. 创建Postman测试资源

  • 创建测试集合:在Postman中点击“+”→“New Collection”,输入集合名称(如“My API Tests”),添加API请求(如GET/POST),配置请求方法、URL、Headers(如Content-Type: application/json)、Body(如JSON格式数据)。点击“Save”保存集合为JSON文件(如my_api_tests.json)。
  • 编写测试脚本:在每个请求的“Tests”标签页中,使用Postman提供的JavaScript函数编写断言。例如:
    • 检查状态码是否为200:pm.test("Status code is 200", function () { pm.expect(pm.response.status).to.be.ok; });
    • 验证响应体包含特定内容:pm.test("Response contains expected data", function () { var jsonData = pm.response.json(); pm.expect(jsonData.message).to.eql("Success"); });
    • 提取响应数据供后续请求使用(如获取token):pm.test("Extract token", function () { var jsonData = pm.response.json(); pm.environment.set("auth_token", jsonData.token); });
  • 导出环境文件:若测试需要动态变量(如不同环境的API基础URL),创建环境(点击“Environment”→“Add”),添加变量(如base_url: https://api.example.com),点击“Export”导出为JSON文件(如environment.json)。

3. 运行自动化测试

  • 使用Newman命令行运行:在终端中执行以下命令,指定集合文件和环境文件路径:
    newman run ./my_api_tests.json --environment ./environment.json。命令执行后,终端会输出测试结果的摘要(如通过/失败的用例数、每个用例的执行详情)。
  • 编写JavaScript脚本运行:若需要更复杂的流程(如循环执行、生成报告),可创建run_tests.js文件,内容如下:
    const newman = require('newman');
    newman.run({
      collection: './my_api_tests.json',
      environment: './environment.json',
      reporters: 'cli' // 控制台输出报告(可选:html、json等)
    }, function (err, summary) {
      if (err) { console.error('测试失败:', err); return; }
      console.log('测试完成:', summary.run.stats);
    });
    
    运行脚本:node run_tests.js

4. 集成到CI/CD系统(实现自动化)

  • Jenkins集成:在Jenkins项目的“构建”步骤中添加“Execute shell”命令,内容为newman run ./my_api_tests.json --environment ./environment.json。每次代码提交或定时触发构建时,Jenkins会自动运行Postman测试,并将结果输出到构建日志中。
  • GitLab CI集成:在项目根目录创建.gitlab-ci.yml文件,添加以下步骤:
    stages:
      - test
    api_test:
      stage: test
      script:
        - npm install -g newman
        - newman run ./my_api_tests.json --environment ./environment.json
    
    推送代码到GitLab仓库时,CI流程会自动执行Postman测试。

5. 高级技巧(提升测试效率)

  • 使用环境变量和全局变量:在集合或请求中使用{{variable_name}}占位符引用变量(如{{base_url}}/endpoint),避免硬编码。变量可通过环境文件、命令行参数(--env-var)或脚本动态设置。
  • 数据驱动测试:通过CSV/JSON文件提供测试数据,结合Newman的--iteration-data参数实现。例如,创建testdata.csv文件(包含username,password列),运行命令:newman run ./my_api_tests.json --environment ./environment.json --iteration-data ./testdata.csv,Newman会遍历数据文件中的每一行,执行测试用例。

0