Postman数据驱动详解

数据驱动(读取外部数据)
相同的测试脚本使用不同的测试数据,数据的改变从而驱动自动化的执行,最终引起测试结果的改变
步骤:
1.执行单条接口用例,观察请求、响应格式。方便编写断言及确定变量

 

// 接口返回数据
{
    "code": 0,
    "data": {
        "province": "四川",
        "city": "成都",
        "sp": "联通"
    }
}

 


2.在Tests中编写断言脚本
根据需求来编写脚本。通常会判断状态码是否为200

 

// 断言脚本    
//验证每个手机号对应的返回数据中运行商信息是否和CSV文件中的一致
// eql()里面的 data 是 postman中自带的关键字,和响应值中的data无关
pm.test("验证每个手机号对应的返回数据中运行商信息是否和CSV文件中的一致",function(){
    var jsonData = pm.response.json();
    pm.expect(jsonData.data.sp).to.eql(data.mobileOperator);
})

 


3.创建测试数据,并保存到文件中
测试数据保存为CSV格式或者json格式。
测试数据必须保证正确
CSV文件最后不要留空行
postman会把CSV文件中所有非数值的值自动加上引号,所以在CSV文件中非数值的值不用添加引号来包裹。CSV中的变量名之间和变量值之间都需要用英文逗号隔开

// CSV文件数据
//1.字符串无需添加引号,在导入postman后,postman会自动添加
mobileNumber,mobileOperator
13012345678,联通
13812345678,移动

 


4.执行接口,循环调用测试数据

 

 


选择对应的测试集 – run collection – 设置循环次数、间隔、选择保存测试数据的文件 – 勾选需要运行的接口 – run
选择导入数据文件后,最好预览确认数据是否正确
5.验证结果

读取数据文件中的数据
方法:
1.在请求参数(请求行、请求头、请求体)中,使用数据文件中的数据
使用{{}}来包裹CSV文件的 字段名 或 json 文件中的 key
2.在代码(断言、请求前置脚本)中,使用数据文件的数据
借助postman中的关键字 data 点 CSV文件的 字段名 或 json 文件中的 key

案例
使用 http://cx.shouji.360.cn/phonearea.php?number= 接口来验证手机号的运营商

//手机测试数据的csv文件。必须保证正确
mobileNumber,mobileOperator
13012345678,联通
13812345678,移动
18912345678,电信


//在postman中的断言脚本
// 验证每个手机号对应的返回数据中运行商信息是否和CSV文件中的一致
// eql()里面的 data 是 postman中自带的关键字,和响应值中的data无关
pm.test("验证每个手机号对应的返回数据中运行商信息是否和CSV文件中的一致",function(){
    var jsonData = pm.response.json();
    pm.expect(jsonData.data.sp).to.eql(data.mobileOperator);
})

 

 

补充说明:
1.CSV文件的优缺点
优点:数据组织形式简单,适用于大量数据的场合
缺点:1.不支持bool类型数据(非数字值被postman读入后会自动添加"");2.不支持多参、少参、无参、错误参数的接口测试; 3.不支持复杂数据类型(嵌套字典、列表等)
2.JSON文件的优缺点
优点:1.支持bool类型;2.支持多参、少参、无参、错误参数的接口测试; 3.支持复杂数据类型
缺点:对于相同数据量,JSON文件的大小远大于CSV文件的大小
————————————————
版权声明:本文为CSDN博主「南宫柒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42831194/article/details/123809251

posted @ 2022-12-06 19:10  BUGMANWL  阅读(201)  评论(0编辑  收藏  举报