使用Postman进行接口测试的途径可以概括为:在Postman GUI中完成接口调试和脚本编写,再通过Newman等命令行工具实现自动化和CI/CD集成。
第一步:在Postman中创建并调试第一个接口
在进行任何自动化之前,先需要保证单个接口能够被正确调用。
获取接口信息:最直接的方式是从浏览器开发者工具(按F12)的Network -> Fetch/XHR标签中,找到目的API请求,复制其URL、请求方法(GET/POST等)、Headers(特别是Authorization)和Body数据。
在Postman中创建请求:
打开Postman,点击 New -> Request,命名后保存到一个集合(Collection) 中。
在请求创建区,输入URL,选择请求方法(如GET、POST)。
根据需要在 Params、Headers 和 Body 标签页中填入参数。
发送请求并查看响应:点击 Send 按钮,即可在下方看到服务器返回的状态码、响应时间和响应体数据。
第二步:编写测试脚本和组织测试集合
编写测试断言(Tests):在请求的 Tests 标签页中,使用JavaScript编写断言脚本。以下是一些常见示例:
证实状态码:
javascript
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
证实响应体包含特定字段:
javascript
pm.test("Response contains access_token", function () {
var jsonData = pm.response.json();
pm.expect(jsonData).to.have.property('access_token');
});
证实响应时间:
javascript
pm.test("Response time is less than 200ms", function () {
pm.expect(pm.response.responseTime).to.be.below(200);
});
提取变量供后续请求使用(接口关联):
javascript
var jsonData = pm.response.json();
pm.environment.set("token", jsonData.data.token);
之后,可以在其他请求的Header中通过{{token}}来引用这个变量。
使用变量管理不同环境:通过点击Postman右上角的 Environment,创建开发、测试、生产等环境,并定义base_url等变量。在请求URL中使用{{base_url}},即可一键切换测试目的。
组织测试集合(Collection):将同一个功能模块或系统的所有接口请求,保存在一个集合(Collection) 中。集合是后续批量执行和自动化的基本单位。
第三步:搭建自动化和回归测试体系
完成脚本编写后,就可以搭建完整的自动化测试流水线了。
工具:Newman
Newman是Postman的命令行工具,是连接Postman脚本和CI/CD系统的桥梁。
安装:由于Newman根据Node.js,需先安装Node.js,然后通过npm全局安装。
bash
npm install -g newman
自动化测试执行流程
导出测试集合和环境变量:在Postman中,右键点击集合(Collection)和环境(Environment),分别选择 Export,保存为.json文件。
使用Newman执行测试:在命令行中,使用newman run命令执行导出的集合文件。
bash
# 基本执行
newman run MyCollection.json
# 指定环境文件、数据文件并生成HTML报告
newman run MyCollection.json \
-e MyEnvironment.json \
-d test-data.csv \
-r htmlextra \
--reporter-htmlextra-export report.html
这里,-e指定环境,-d指定数据驱动文件(CSV/JSON),-r指定生成HTML格式的测试报告。
实现回归测试
回归测试的重要是在代码发生变更后,自动运行所有重要测试用例,以保证新代码没有破坏现有功能。
实践:将Newman命令和CI/CD工具(如Jenkins、GitLab CI、GitHub Actions)集成。
场景:配置流水线,在每次代码提交或合并请求(Pull Request)时,自动触发Newman执行测试。
实践
保持用例的原子和独立性:每个测试脚本应只证实一个具体的功能点。
善用Pre-request Script:在请求发送前执行脚本,用于动态生成签名、时间戳或准备测试数据。
数据驱动:通过CSV或JSON文件提供多组测试数据,用同一套脚本包括更多场景。
测试报告:生成的HTML报告是分析测试结果、定位问题的根据。
定期维护:当接口发生变更时,及时更新对应的Postman集合和脚本。