当前位置: 首页 > news >正文

黑马程序员——接口测试——day03——Postman断言、关联、参数化

目录:

  1. Potman断言
    1. Postman断言简介
    2. Postman常用断言
      1. 断言响应状态码
      2. 断言包含某字符串
      3. 断言JSON数据
    3. Postman断言工作原理
  2. Postman关联
    1. 简介
    2. 实现步骤
    3. 核心代码
    4. 创建环境
    5. 案例1
    6. 案例2
  3. Postman参数化
    1. 简介
    2. 数据文件简介
    3. 编写数据文件
      1. CSV文件
      2. JSON文件
    4. 导入数据文件到postman
    5. 读取数据文件数据

1.Potman断言

Postman断言简介
  • 让Postman工具代替人工自动判断预期结果和实际结果是否一致
  • 断言代码书写在Tests标签页中。查看断言结果Test Results标签页
Postman常用断言
断言响应状态码

Status code: Code is 200

断言包含某字符串

Response body: Contains string

断言JSON数据

Response body: JSON value Check

Postman断言工作原理

2.Postman关联

简介
  • 当接口和接口之间,有依赖关系时,需要借助postman关联技术,来实现。
  • 如:登录接口返回的令牌数据,被添加员工接口依赖。
  • 添加员工接口返回员工id,被查询员工接口依赖。
实现步骤

假定:接口B产生的数据,被接口A依赖。

  1. 发送接口B请求,获取响应数据。
  2. 将响应数据,放入公共容器(全局变量、环境变量)中
  3. 接口A从公共容器中,提取数据,发送请求。

核心代码

创建环境
  • 全局变量:在整个postman中都可以使用的变量。不需要单独创建环境。
  • 环境变量:在特定的环境下,才能使用的变量。需要给此变量创建单独的环境。

案例1

使用postman关联,实现下面案例

  • 从获取天气接口,http;://www.weather.com.cn/data/sk/101010100.html
  • 获取返回结果中的城市名称
  • 调用百度搜索接口: http://www.baidu.com/S?wd=北京,把获取到的城市名称,如:北京,作为请求参数

思路:

  1. 发送获取天气请求,获取响应结果
  2. 从响应结果中,拿到城市名,存入全局变量
  3. 百度搜索接口从全局变量中,取城市名,发送搜索请求。

Tests代码:

案例2
  • 使用postman关联技术,实现添加员工接口。
  • 登录成功,返回的“令牌"被添加员工接口依赖。
  • 思路:
    • 1.发送登录请求(必须登录成功),获取响应结果
    • 2.从json响应结果中,提取data值。拼接上“Bearer ”前缀。
      • 注意:Bearer单词不能拼错,首字母必须大写,只有一个空格
    • 3.将拼接无误的令牌,存入环境变量。从“眼睛”图标查看。
    • 4.添加员工接口,从环境变量中,提取令牌。设置到请求头中,作为Authorization的值。
    • 5.填写添加员工接口其他信息(post、URL、请求体),发送请求。

3.Postman参数化

简介
  • 什么是参数化:
  • 将测试数据,组织到数据文件中,通过脚本的反复迭代,使用不同的数据,达到测试不同用例的目标。
  • 应用场景:
    • 一般在测试同一个接口的不同测试点时,只有测试数据不同。考虑使用参数化。
数据文件简介
  • CSV:
    • 优点:数据组织格式简单
    • 缺点:
      • 1.不能测试bool类型。因为postman读取csv后,将所有非数值类型数据,自动添加""变为字符串
      • 2.不能存储复杂数据类型(元组、列表、字典)。
      • 3.不能实现参数测试。
    • 应用场景:数据量较大,数据组织格式简单。

  • JSON:
    • 优点:
      • 1.可以测试bool类型
      • ⒉能使用复杂数据类型
      • 3.可以实现参数测试。
    • 缺点:相同数据量,json文件要远大于csv文件。
    • 应用场景:数据量较少,数据组织格式复杂。需要进行参数测试! 

编写数据文件
CSV文件

JSON文件

导入数据文件到postman

读取数据文件数据

理论

根据使用位置不同,有两种方法。

  • 第一种:请求参数(请求行、请求头、请求体)中,使用数据文件中的数据
    • csv文件:{{字段名}};json文件:{{键名}
  • 第二种:代码(Tests)中,使用数据文件中的数据
    • 使用postman内置的关键字data,索引字段名或键名
    • csv文件:data.字段名;json文件: data.键名

案例

需求:批量查询手机号所属运营商,校验运营商数据正确性

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

测试数据:

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

 

http://www.lryc.cn/news/310308.html

相关文章:

  • Unreal触屏和鼠标控制旋转冲突问题
  • Vins-Moon配准运行
  • MSCKF3讲:后端理论推导(上)
  • 群控代理IP搭建教程:打造一流的网络爬虫
  • 【IO流系列】字符流练习(拷贝、文件加密、修改文件数据)
  • 华为云磁盘挂载
  • 通过大语言模型理解运维故障:评估和总结
  • SVN教程-SVN的基本使用
  • 【MySQL】数据查询——DQL基本数据库查询
  • 机器人持续学习基准LIBERO系列9——数据集轨迹查看
  • uniapp中canvas的基础使用
  • 中科大计网学习记录笔记(十七):拥塞控制原理 | TCP 拥塞控制
  • 老隋蓝海项目有人盈利的吗?怎么做比较好些呢?
  • 递归与递推(蓝桥杯 c++)
  • ArduinoTFTLCD应用
  • 《秦时明月》IP新高度:与陕西历史博物馆共同书写文化传承新篇章!
  • 2、事件机制、DOM操作、jquery对尺寸操作、jquery添加和删除
  • YOLOv6-Openvino和ONNXRuntime推理【CPU】
  • C语言:结构体(自定义类型)知识点(包括结构体内存对齐的热门知识点)
  • springboot240基于Spring boot的名城小区物业管理系统
  • Day13:信息打点-JS架构框架识别泄漏提取API接口枚举FUZZ爬虫插件项目
  • AJAX 学习笔记(Day1)
  • leetcode 740.删除并活得点数
  • 寻找峰值[中等]
  • 【ESP32 IDF】key按键与EXTI中断
  • Find My运动相机|苹果Find My技术与相机结合,智能防丢,全球定位
  • 零拷贝技术深入分析
  • Android 基础入门 基础简介
  • HUAWEI 华为交换机 配置基于VLAN的MAC地址学习限制接入用户数量 配置示例
  • 编程笔记 Golang基础 042 文件处理