【接口测试】7_Postman _Postman参数化

文章目录

一、参数化简介

1、什么是参数化

  • 将 http请求需要的数据,和断言数据,组织到一个 文件中。从postman导入文件,实现 http请求发送、断言。

2、应用场景

  • 针对同一个接口,组织 N 条 不同的 测试用例。数据格式完全一致的。适用 参数化。

二、数据文件简介

当 http请求,使用的 数据有较高相似度,相同的请求时,考虑使用参数化(将数据组织到数据文件中)。

2.1 CSV

优点:

  • 数据组织形式简单,适用于大量数据的场合

缺点:

  • 不支持 bool类型数据。(原因:postman读取csv文件后,将所有的非数值数据,自动添加 " " 包裹bool值)
  • 不支持复杂数据类型。(如 嵌套字典、列表等)
  • 不支持 多参、少参、无参、错误参数 的接口测试。
csv 复制代码
// 循环每次读一行,CSV格式

username,password,msg
13012345678,123456,登录成功
13012345678,error,密码错误
13900001111,123456,账号不存在

2.2 JSON

优点:

  • 支持 bool 类型。
  • 支持复杂数据类型。
  • 支持 多参、少参、无参、错误参数。

缺点:

  • 对于相同数据量,json数据文件大小远大于 CSV文件。
json 复制代码
// 循环每次读一行,Json格式

[
{"username":"13012345678", "password":"123456", "msg":"登录成功"},
{"username":"13012345678", "password":"error", "msg":"密码错误"},
{"username":"13088889999", "password":"123456", "msg":"账号不存在"}
]

三、编写数据文件

3.1 CSV文件

1、创建 xxx.csv 文件。

2、将数据写入到 csv文件中。

  • 第一行 写入 的是 数据对应的 "字段名"。
  • 从第二行向后依次是对应的数值,数据间用 英文逗号隔分。

3、在 Postman 中,选中使用数据文件的 用例集,导入数据文件。

①点击用例集名称,使用 Run 按钮,进入 "Runner" 页面。

②使用 "Select File" 按钮选择 xxx.csv 文件。

③点击 预览按钮,校验数据文件是否正确。

3.2 JSON文件

1、创建 xxx.json 数据文件

2、在 数据文件中,按json 语法写入json数据。

yacas 复制代码
postman要求,json格式的数据文件,数据内容的最外层,必须是 [ ] 。内部所有的数据用 {} 存储。
(建议:使用 json.cn 在线网站编写。)

3、在 Postman 中,选中使用数据文件的 用例集,导入数据文件。

①点击用例集名称,使用 Run 按钮,进入 "Runner" 页面。

②使用 "Select File" 按钮选择 xxx.json 文件。

③点击 预览按钮,校验数据文件是否正确。

四、读取数据文件数据

4.1 理论

根据使用数据 位置 不同,有两种获取数据文件中数据的方法。

1、第一种:请求参数(URL、请求头、请求体)中,使用 数据文件中 的数据

yacas 复制代码
使用{{}} 包裹 csv文件字段名 或 json文件中的key 

- 如:{{username}}  或 {{password}}

2、第二种:代码(断言 Tests)中,使用 数据文件中 的数据

yacas 复制代码
使用 postman 内置关键字 data.csv文件的字段名 或 data.json文件的key名

- 如:data.username  或  data.password

4.2 案例

http 复制代码
需求:批量查询手机号归属地、所属运营商,校验运营商数据正确性

接口: http://cx.shouji.360.cn/phonearea.php?number=13012345678

测试数据:

			手机号: 13012345678 	运营商: 联通
			手机号: 13800001111 	运营商: 移动
			手机号: 18966778899 	运营商: 电信

4.2.1 手机号归属地.csv

csv 复制代码
file_mobile,file_sp
13012345678,联通
13800001111,移动
18966778899,电信

4.2.2 手机号归属地.json

json 复制代码
[
{"file_mobile":"13012345678", "file_sp":"联通"},
{"file_mobile":"13800001111", "file_sp":"移动"},
{"file_mobile":"18966778899", "file_sp":"电信"},
{"file_mobile":"13012345678", "file_sp":"联通"},
{"file_mobile":"13800001111", "file_sp":"移动"},
{"file_mobile":"18966778899", "file_sp":"电信"},
{"file_mobile":"13012345678", "file_sp":"联通"},
{"file_mobile":"13800001111", "file_sp":"移动"},
{"file_mobile":"18966778899", "file_sp":"电信"},
{"file_mobile":"13012345678", "file_sp":"联通"},
{"file_mobile":"13800001111", "file_sp":"移动"},
{"file_mobile":"18966778899", "file_sp":"电信"}
]

4.3.3 案例-实现步骤

1、没有使用数据文件,一次只能发送一条请求。

2、写好数据文件,按 csv 或 json 对应语法的语法格式组织数据。

3、使用两种获取数据文件中数据的方法。

yacas 复制代码
①运营商:按代码方式获取数据文件。 用 data.字段名 替换

②手机号:在请求参数中。 用 {{字段名}} 替换。

4、强调:当http请求中,使用了数据文件中的字段,Send按钮 就不再能正常获取 响应数据。(因为:Send 不具备读取数据文件的功能)

json 复制代码
// 断言手机号对应的运营商

pm.test("断言运营商", function () {
    var jsonData = pm.response.json();
    // pm.expect(jsonData.data.sp).to.eql("联通");
    pm.expect(jsonData.data.sp).to.eql(data.file_sp);
});

5、选择使用数据文件的用例集, 进入 Runner 页面。导入数据文件。运行。

6、如果有异常,借助 postman 的控制台,查看。

五、小结

相关推荐
流星白龙5 小时前
5.接口自动化测试(4)
接口测试
zhengfei6115 小时前
渗透工具集——15款常见C2的框架
测试工具·安全
Dingdangr9 小时前
基于Python的火焰识别系统设计与实现(含论文、开题报告及答辩PPT)
java·python·测试工具·安全
少云清9 小时前
【接口测试】8_Postman _Postman测试报告
测试工具·postman
Wpa.wk10 小时前
自动化测试(java) - PO模式了解
java·开发语言·python·测试工具·自动化·po模式
Rover.x12 小时前
Wireshark抓包分析工具
网络·测试工具·wireshark
流星白龙12 小时前
3.接口自动化测试(2)
接口测试
湫一刀1 天前
WireShark下载说明
网络·测试工具·wireshark
拽着尾巴的鱼儿1 天前
工具:Postman-CRUL 接口调用
测试工具·postman