如何在Ubuntu上用Postman进行数据驱动测试
导读:如何在Ubuntu上用Postman进行数据驱动测试 1. 环境准备 确保Ubuntu系统已安装Node.js和npm(Postman命令行工具Newman的依赖)。打开终端,执行以下命令安装: sudo apt-get update su...
如何在Ubuntu上用Postman进行数据驱动测试
1. 环境准备
确保Ubuntu系统已安装Node.js和npm(Postman命令行工具Newman的依赖)。打开终端,执行以下命令安装:
sudo apt-get update
sudo apt-get install nodejs npm
安装完成后,通过npm全局安装Newman(Postman的命令行运行工具):
sudo npm install -g newman
2. 准备测试数据文件
数据驱动测试的核心是数据文件,Postman支持CSV和JSON格式。
- CSV格式:第一行为表头(变量名),后续每行为一组测试数据。例如
test_data.csv
:username,password,expected_status user1,pass1,200 user2,invalid,401 user3,pass3,200
- JSON格式:使用数组存储多个对象,每个对象代表一组测试数据。例如
test_data.json
:[ { "username": "user1", "password": "pass1", "expected_status": 200} , { "username": "user2", "password": "invalid", "expected_status": 401} , { "username": "user3", "password": "pass3", "expected_status": 200} ]
注意:CSV文件避免空行,JSON文件确保格式正确(可使用在线工具验证)。
3. 创建Postman集合与参数化请求
- 创建集合:打开Postman,点击左侧“Collections”→“+ New Collection”,输入集合名称(如“Login API Tests”),点击“Create”。
- 添加请求:在集合内点击“+ Add Request”,输入请求名称(如“Login”),选择HTTP方法(如POST),填写API URL(如
https://api.example.com/login
)。 - 参数化请求:在请求的“Body”标签中,选择“form-data”或“x-www-form-urlencoded”格式,使用
{ { variableName} }
语法引用数据文件中的变量。例如:- Key:
username
,Value:{ { username} }
- Key:
password
,Value:{ { password} }
这样,Postman会自动从数据文件中读取username
和password
的值替换变量。
- Key:
4. 编写测试脚本
在请求的“Tests”标签中,编写JavaScript代码验证响应。常用断言包括状态码、响应体属性等。例如:
// 获取响应状态码
pm.test("Status code is correct", function () {
pm.response.to.have.status(pm.variables.get("expected_status"));
}
);
// 解析响应体为JSON
const responseJson = pm.response.json();
// 验证响应体中的关键属性
pm.test("Response contains valid data", function () {
pm.expect(responseJson).to.have.property("token");
pm.expect(responseJson.token).to.be.a("string");
}
);
说明:pm.variables.get("expected_status")
用于获取数据文件中“expected_status”列的值,确保测试逻辑与数据分离。
5. 批量运行数据驱动测试
方法1:使用Postman GUI(Collection Runner)
- 点击Postman顶部“Runner”→“Run collection”。
- 在“Collection”下拉菜单中选择已创建的集合(如“Login API Tests”)。
- 点击“Select File”上传数据文件(如
test_data.csv
或test_data.json
)。 - 确认“Iterations”设置为数据文件的行数(如CSV文件有3行数据,则设置为3)。
- 点击“Run”,Postman会依次使用数据文件中的每行数据执行集合中的请求,并显示结果(Passed/Failed)。
方法2:使用Newman命令行(自动化推荐)
在终端中执行以下命令,通过Newman运行集合并加载数据文件:
newman run /path/to/Login_API_Tests.json -d /path/to/test_data.csv
参数说明:
/path/to/Login_API_Tests.json
:Postman集合文件的绝对路径(需替换为实际路径)。-d /path/to/test_data.csv
:数据文件的路径(支持CSV/JSON格式)。
执行后,Newman会输出详细的测试报告(包括通过/失败的用例数、响应时间等)。
6. 结果分析与调试
- 查看GUI结果:在Collection Runner界面,点击单个测试用例可查看请求详情(URL、Headers、Body)、响应内容(Status、Body)及测试脚本的执行结果。
- 查看命令行结果:Newman运行后,终端会显示类似以下的报告:
→ Login ✓ Status code is correct (200) ✓ Response contains valid data (token) → Login ✓ Status code is correct (401) ✓ Response contains valid data (error) ┌─────────────────────────┬──────────┬──────────┐ │ │ executed │ failed │ ├─────────────────────────┼──────────┼──────────┤ │ iterations │ 3 │ 0 │ │ requests │ 3 │ 0 │ │ test-scripts │ 6 │ 0 │ │ prerequest-scripts │ 0 │ 0 │ │ assertions │ 6 │ 0 │ └─────────────────────────┴──────────┴──────────┘
- 调试技巧:若测试失败,可通过以下方式排查:
- 在“Tests”标签中添加
console.log(pm.response.json())
,查看响应体详情(在Runner的“Console”标签中查看日志)。 - 检查数据文件中的变量名是否与请求中的
{ { variableName} }
一致。 - 确认API URL、请求方法(GET/POST)是否正确。
- 在“Tests”标签中添加
通过以上步骤,即可在Ubuntu系统上使用Postman完成数据驱动测试,实现对API多场景的自动化覆盖。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在Ubuntu上用Postman进行数据驱动测试
本文地址: https://pptw.com/jishu/719483.html