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文件的大小

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、PostMan接口参数化操作步骤; 2、环境变量设置步骤; 3、A接口返回值例如token赋值给B接口请求参数操作步骤; 图文并茂 1 接口参数化 第一步:点击右上角图标,打开环境配置页面,选择Globals,设置全局变量; 第二步:添加变量名称,设置对应的变量值,保存; 第三步:接口地址或者需要取值的参数value设置;注意需要取值的设置为{{变量名}},双大括号,即可取全局变量设置的值。 TIPS: 如果需要批量修改接口参数等,可导出后编辑,批量替换,再导入即可,注意需要修改接口地址以及下方的参数取值。 2 接口返回值存入环境变量 第一步:查看接口返回值; { "data": { "leaguerId": "161", "token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxNjEiLCJjcmVhdGVkIjoxNTI5NTcyNTkzMTI5LCJleHAiOjE1Mjk1Nzk3OTN9.U6qmR-Qa9sJpwxShLOC8WLPBlhLxWWiQTv5bZtyOV0mdyCSHnFBb_p6T5PBY20m_0m2AmrQZGfrv6hvHCPAaow" }, "status": 200 } 第二步:在接口的TESTS页签中输入以下内容(视返回值情况修改): pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); // 把responseBody转为json字符串 var Jsondata = JSON.parse(responseBody); // 设置环境变量access-token,供后面的接口引用 pm.environment.set("access-token ", Jsondata.data.token ); 第三步:重新发送上一个接口的参数信息测试,执行后查看环境变量;如图,则表示环境变量的值已经正常存储; 3 参数化取其他接口的返回值 第一步:修改需要引用上述token值的接口参数取值,参数值value设置为{{access-token}}({{变量名}}),测试接口,正确返回即可;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值