5、postman断言、关联、参数化总结

一、接口测试

 
1. postman断言
00:16
1)postman断言简介
  • 核心功能:让Postman工具代替人工自动判断预期结果和实际结果是否一致
  • 代码位置:断言代码书写在Tests标签页中,查看断言结果在Test Results标签页
  • 执行时机:请求发送完成后服务器解析响应结果后才会执行Tests标签中的代码
2)常用断言
00:28
  • 断言响应状态码
    00:33
    • 代码模板:
pm.test("Status code is 200", function(){
    pm.response.to.have.status(200);
});
  • 参数说明:
    • 第一个参数:"Status code is 200"可任意修改,仅作为断言结果显示文字
    • 第二个参数:匿名函数调用,实际执行断言判断
  • 修改方法:只需修改200为需要断言的状态码即可
  • 断言包含某字符串
    00:55
    • 代码模板:
pm.test("Body matches string", function(){
    pm.expect(pm.response.text()).to.include('string_you_want_to_search');
});
  • 特点:
    • 不关心字符串属于哪个key的值
    • 只要响应中包含指定字符串即通过
    • 局限性:无法判断多个相同字符串的具体来源
  • 断言JSON数据
    01:55
    • 代码模板:
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
  • 关键语法:
    • var jsonData = pm.response.json():获取整个JSON响应体
    • jsonData.value:通过点语法逐级访问嵌套key
  • 优势:能精确判断特定key的值,避免字符串断言的模糊匹配问题
3)断言工作原理
02:40
  • 执行顺序:
    • 组织HTTP请求协议格式
    • 发送请求并接收响应
    • 解析HTTP响应包
    • 执行Tests中的断言代码
  • 核心要点:断言代码是在收到并解析完响应后才执行
2. postman关联
03:03
1)关联简介
  • 应用场景:当接口之间存在数据依赖时使用
    • 示例1:登录接口返回的令牌被添加员工接口依赖
    • 示例2:添加员工接口返回的员工ID被查询员工接口依赖
  • 实现步骤:
    • 发送接口B请求获取响应数据
    • 将数据存入公共容器(全局/环境变量)
    • 接口A从容器中提取数据发送请求
2)应用案例
04:48
  • 例题:接口测试城市名查询
    • 实现步骤:
      • 发送天气接口请求获取城市名
      • 将城市名存入全局变量
      • 百度搜索接口使用{{全局变量名}}语法引用
    • 关键代码:
var jsonData = pm.response.json();
var city = jsonData.weatherinfo.city;
pm.globals.set('glib_city', city);
  • 例题:添加员工接口测试
    05:23
    • 关键要点:
      • 令牌拼接格式:Bearer +令牌值(注意首字母大写和空格)
      • 使用环境变量存储:pm.environment.set('env_token', token)
      • 请求头设置:Authorization: {{env_token}}
    • 注意事项:
      • 添加员工需保证手机号唯一
      • 请求头和请求体数据必须按规范格式填写
3. 查询员工接口实现提示
06:30
  • 双重依赖:
    • URL路径依赖员工ID:/api/sys/user/{{员工ID}}
    • 请求头依赖登录令牌:与添加员工用法相同
  • 实现方法:
    • 在添加员工的Tests中将员工ID存入环境变量
    • 查询接口URL直接替换为{{环境变量名}}
4. postman参数化
07:14
1)参数化简介
  • 核心价值:实现测试数据与脚本分离,提高测试效率
  • 数据格式对比:
    • CSV:
      • 优点:格式简单
      • 缺点:不支持布尔/复杂类型,所有非数值自动转为字符串
      • 适用场景:数据量大且结构简单
    • JSON:
      • 优点:支持所有数据类型,可实现参数测试
      • 缺点:文件体积较大
      • 适用场景:数据结构复杂或需要参数测试
2)编写数据文件
08:14
  • CSV格式要求:
    • 英文逗号分隔
    • 无需引号包裹数据
    • 首行为字段名
  • JSON格式要求:
    • 严格遵循JSON语法
    • 键值对形式组织数据
    • 支持嵌套数据结构
3)导入数据文件到postman
08:38
  • 操作步骤:
    • 点击用例集名称
    • 进入Runner页面
    • 选择数据文件
    • 预览确认数据无误
  • 注意事项:首次导入务必预览,避免数据格式错误
4)读取数据文件数据
09:10
  • 两种引用方式:
    • 界面引用:{{字段名}}(CSV)或{{键名}}(JSON)
    • 代码引用:data.字段名(CSV)或data.键名(JSON)
  • 关键区别:代码中必须使用data关键字作为前缀
  • 例题:按手机号查询运营商
    09:53
    • 调试技巧:
      • 使用控制台查看执行详情
      • 分析错误信息定位问题
    • 经验要点:需要反复实践才能熟练掌握参数化调试方法

二、知识小结

 

知识点

核心内容

考试重点/易混淆点

难度系数

Postman断言

通过JS语言实现预期与实际结果的自动判断,包含三种方法: 1. 响应状态码断言(如200); 2. 响应内容包含字符串断言(不区分键值); 3. JSON格式断言(精确匹配键值对)

- 状态码断言需手动修改预期值; - 字符串断言无法区分重复内容; - JSON断言语法:pm.response.json()提取响应数据

⭐⭐⭐

接口关联

解决接口间数据依赖问题(如A接口数据供B接口使用): 1. 依赖接口先执行,数据存入全局/环境变量; 2. 使用变量语法: - 界面提取:{{变量名}}; - 代码提取:pm.globals.get()或pm.environment.get()

- 环境变量需手动创建并激活; - 全局变量名需用双引号包裹; - 执行顺序影响结果

⭐⭐⭐⭐

参数化测试

分离测试脚本与数据,支持CSV/JSON格式: - CSV:简单但不支持布尔/复杂类型; - JSON:支持复杂结构,需符合语法规范; 数据调用方式: 1. 界面:{{字段名}}; 2. 代码:data.字段名

- CSV数据无需引号; - JSON需严格校验语法; - 首次导入需预览数据

⭐⭐⭐

调试技巧

通过控制台分析错误日志,需自主实践积累经验

- 错误提示需结合上下文分析; - 代码执行时机:test标签在响应返回后运行

⭐⭐

实战案例

1. 天气接口→全局变量→百度搜索; 2. 登录→添加员工(手机号唯一性)→查询员工(URL/请求头依赖)

- 令牌格式:Bearer +空格+Token; - 请求头/体需严格匹配接口文档

⭐⭐⭐⭐

posted on 2025-09-10 16:47  我丶是丿小坏蛋  阅读(58)  评论(0)    收藏  举报