Skip to content

参数化

字数
1185 字
阅读时间
5 分钟
参数化,即:postman读取外部数据文件
  • 适用场景:当http请求,使用的数据有较高相似度时,相同的请求可以考虑使用参数化(将数据组织到数据文件中)

一、数据文件简介

  • CSV:
    • 优点:数据组织形式简单,适用于大量数据的场合
    • 缺点:
      1. 不支持bool类型的数据。(数据被postman读入后,自动添加""包裹bool值,非数值类型都会如此)
      2. 不支持多参、少参、无参、错误参数的接口测试
      3. 不支持复杂数据类型(如:嵌套字典、列表等)
  • JSON:
    • 优点:
      1. 可支持bool类型的数据
      2. 支持多参、少参、无参、错误参数的接口测试
      3. 支持复杂数据类型
    • 缺点:对于相同的数据量,json数据文件大小远大于csv文件

二、导入外部文件

1. CSV文件

  1. 创建xxx.csv文件
  2. 将数据写入csv文件中
    • 第一行写入的是数据对应的字段名
    • 第二行往后依次是对应的数值,数据间用英文逗号隔分
      • 需要确保csv文件编码格式为utf8,若不是,则另存为utf8编码方式
  3. 在postman中,选中指定用例集,选择Run,进入Runner界面,选中使用数据文件的数据集,导入数据文件 333520

2. JSON文件

  1. 创建xxx.json数据文件
  2. 在数据文件中,按json语法写入json数据。postman要求,json格式的数据文件,数据内容的最外层必须是[ ],内部所有数据用{ }存储
  3. 在postman中,选中指定用例集,选择Run,进入Runner界面,选中使用数据文件的数据集,导入数据文件

三、读取数据文件的数据

1. 理论概念

  • 根据使用数据的位置不同,有两种获取数据文件中数据的方法
    • 第一种:请求参数(请求行、请求头、请求体)中,使用数据文件中的数据
      • 使用包裹csv文件字段名 或 json文件中的 key
        • 如:
    • 第二种:代码(断言、请求前置脚本)中,用数据文件中的数据
      • 需要借助postman提供的关键字 data,即:data.字段名data.key
        • 如:data.usernamedata.password

2. 案例

注意,参数化用例集操作无法使用Send获取响应数据,因为数据必须从数据文件中获取,因此只能由Runner界面的Run按钮批量执行参数化用例
  • 需求:批量查询手机号归属地、所属运营商,校验运营商数据正确性
  • 接口:http://cx.shouji.360.cn/phonearea.php?number=13012345678
  • 测试数据:
    手机号:13012345678  运营商:联通
    手机号:13800001111  运营商:移动
    手机号:18966778899  运营商:电信
  • 步骤:
    1. 初步测试,获知数据之间的关系
    2. 写好数据文件,按 csv 或 json 对应语法的语法格式组织数据
    3. 将数据文件上传至用例集的Runner页面中
    4. 替换上述图示用例中的两处数据:
      1. 归属地:在代码中,用data.字段名替换
      2. 手机号:在查询参数Params中,用替换
      • 其中,字段名指的是用于实现参数化的 数据文件中 的字段名
    5. 使用Runner界面中的Run运行参数化用例集
    6. 结果:691
    7. 调试:通过View-Show Postman Console打开控制台,查看是否正确获取数据
  • 参数化后,无法再通过Send按钮获取数据
  • 借助数据文件,实现"数据驱动"。 --> 有多少条数据,对应就有多少个http请求

四、生成测试报告

  • 步骤:
    1. 批量执行测试用例(借助数据文件)
    2. 导出 测试用例集(建议与数据文件放在同一文件夹下)
    3. 执行生成测试报告的命令:newman run 测试用例集导出文件名.json -d 数据文件名.csv/.json -r html --reporter-html-export 输出报告名.html 生成测试报告后,打开可查看测试结果

贡献者

The avatar of contributor named as freeway348 freeway348

文件历史

撰写