接口测试 | Postman的高级用法的测试使用

Postman的高级用法

  • Postman用例间变量的传递
    • 全局变量和环境变量
      • [1. 设置变量](#1. 设置变量)
      • [2. 获取变量值](#2. 获取变量值)
      • [3. Postman请求前置脚本](#3. Postman请求前置脚本)
        • [案例1: 调用百度首页接口 传时间戳给服务器](#案例1: 调用百度首页接口 传时间戳给服务器)
      • [4. Postman关联](#4. Postman关联)
        • 实现步骤
        • [案例2: 请求获取天气接口,提取响应结果中的城市,将城市名给百度搜索接口使用](#案例2: 请求获取天气接口,提取响应结果中的城市,将城市名给百度搜索接口使用)
      • [5. 批量执行测试用例](#5. 批量执行测试用例)
      • [6. 生成测试报告](#6. 生成测试报告)
        • [1. 确保环境安装完成](#1. 确保环境安装完成)
        • [2. 导出用例测试级](#2. 导出用例测试级)
        • [3. cmd使用命令执行测试生成报告](#3. cmd使用命令执行测试生成报告)
  • Postman读取外部数据文件(参数化)
    • [1. 外部数据文件类型](#1. 外部数据文件类型)
    • [2. 导入外部数据文件](#2. 导入外部数据文件)
    • [3. 读取文件数据](#3. 读取文件数据)
      • [案例3: 批量查询手机号归属地、所属运营商,校验运膏商数据正确性](#案例3: 批量查询手机号归属地、所属运营商,校验运膏商数据正确性)
      • 带有外部数据文件的测试报告生成

部分测试网址已经失效,文章中已经标注,掌握原理使用!!!</font >

Postman用例间变量的传递

全局变量和环境变量

  1. 全局变量:全局变量是全局唯一的,不可重复定义的变量
  2. 环境变量:
    • 一个变量只能属于某个环境,在某一个环境中变量不可重复定义
    • 在环境与环境之间可以定义重复的变量
    • 一个环境可以包含多个环境变量
    • 常见环境分类:开发环境、测试环境、生产环境

1. 设置变量

  • 全局变量

    1. 手动设置 【UI操作】
    2. 代码设置 pm.globals.set("var_name",value)
  • 环境变量

    1. 手动设置

    2. 代码设置:pm.environment.set("var_name",value);

2. 获取变量值

  • 全局变量

    1. 请求参数中获取【UI界面】:{{ var_name }} 【两个大括号

    2. 代码中获取:var value = pm.globals.get("var name");

  • 环境变量

    1. 请求参数中获取【UI界面】:{{ var_name }}
    2. 代码中获取:var value=pm.environment.get("var_name");

3. Postman请求前置脚本

  • 什么是请求前置脚本?
    在 Postman 中,请求前置脚本(Pre-request Script) 是指在发送 API 请求之前自动执行的一段 JavaScript 代码,用于在请求发送前完成一些预处理操作 ,确保请求能按预期执行(比如动态生成参数、设置环境变量、处理依赖数据等)。
    简单说,它是请求的 "前置准备工具"------ 在请求真正发出前,帮你完成那些 "必须先做" 的事,避免手动操作的繁琐或错误
    第一时间被执行 在Postman内部实际http请求之前

  • 时间戳
  • Pre-request Script【前置脚本】工作原理
案例1: 调用百度首页接口 传时间戳给服务器
  1. 代码写到哪里?
    写入到Tests中是没有效果的,从断言那里了解到 Tests中的代码时服务器反馈到Postman中才会执行的代码
  2. Pre-request Script【前置脚本】
  3. 如何验证全局变量是否设置成功?
    在第二部Pre-request Script 中编写代码后,点击Send 发送 并点击眼睛 查看变量
  1. 设置成功后,如何发送给服务器呢?

  2. 如何验证时间戳真正的发送到服务器了呢?

4. Postman关联

介绍:应用于多个http请求之间,有数据关联、或依赖关系时

实现步骤

A接口依赖B接口的数据:

  1. 向B接口发送http请求,获取数据
  2. 将数据设置至全局变量(环境变量)中
  3. A接口获取全局变量(环境变量)中数据值,进行使用。

登录接口 --> 其他功能【添加员工、添加商品】

案例2: 请求获取天气接口,提取响应结果中的城市,将城市名给百度搜索接口使用
  1. 创建用例集 Collections

  2. 请求获取天气的接口,http:Iwww.weather...com.cn/data/sk101010100.htm 【网址已经失效

    在Tests中获取响应结果中的城市信息数据

bash 复制代码
var jsonData= pm.response.json()  // 获取响应结果 
var city = jsonData.weatherinfo.city  //获取字典中的城市

pm.globals.set("glb_city",city)  //设置全局变量

如何写入全局变量呢? ---- > 点击 send 按钮 ,点击眼睛查看设置结果

  1. 百度接口的使用
  • 为什么只能使用wd?
  • 修改wd为全局变量

5. 批量执行测试用例

6. 生成测试报告

1. 确保环境安装完成


2. 导出用例测试级
3. cmd使用命令执行测试生成报告

步骤:

  1. 批量执行测试用例集。(确认无误)
  2. 导出Export用例集。(得到xxxx.json文件)
  3. 在终端中执行命令,生成测试报告
  • 使用全局变量

如果添加-r html就报错!说明newman-reporter.-html安装失败!

  • 完整命令
    newman run xxxx.json -e 环境变量文件 -d 外部数据文件 -r html --reporter-html-export 测试报告名.html

Postman读取外部数据文件(参数化)

当http请求,使用的数据有较高相似度时,相同的请求时,考虑使用参数化(将数据组织到数据文件中)

1. 外部数据文件类型

  • csv
  • json
  • 两种数据文件格式

    CSV文件对于非数字类型会加入 " " (引号) 变成字符串格式类型

2. 导入外部数据文件

csv文件

  1. 创建xx.csv文件。
  2. 将数据写入到csv文件中。【注意文件类型:UTF-8 显示中文】
    • 第一行写入的是数据对应的"字段名"。
    • 从第二行向后依次是对应的数值,数据间用英文逗号隔分。
  3. 在Postman中,选中使用数据文件的用例集,导入数据文件。
  • Postman操作
    ·1. 点击用例集名称,使用Run按钮,进入"Runner'"页面。
    ·2. 使用"Select File"按钮选择Xxx.csv文件。
    ·3. 点击预览按钮,校验数据文件是否正确。

json文件

  1. 创建xx.json数据文件
  2. 在数据文件中,按json语法写入json数据。postman要求,json格式的数据文件,数据内容的最外层,必须是 [ ]。内部所有的数据用 { }存储
    3.在Postman中,选中使用数据文件的用例集,导入数据文件。
    1. 点击用例集名称,使用Run按钮,进入"Runner'"页面。
    2. 使用"Select File"按钮选择xxx.json文件。
    3. 点击预览按钮,校验数据文件是否正确。

3. 读取文件数据

  • 理论

    ·第一种:请求参数(请求行、请求头、请求体)中,使用数据文件中的数据

    复制代码
      - 使用{0}包裹csv文件字段名或json文件中的key
      		如:{  {  fusername   }  }     {  {   password    }  } 

·第二种:代码(断言、请求前置脚本)中,使用数据文件中的数据

复制代码
	- 需要借助postman提供的关键字data点csv文件的字段名或json文件的key
			"如:data.username或data.password

案例3: 批量查询手机号归属地、所属运营商,校验运膏商数据正确性

  • 接口可用

CSV版本

  1. 测试单个接口,工作中参数和响应体数据对应关系。

  2. 替换上述用例中的两处:

    1. 归属地:在代码中。用data.字段名替换
    2. 手机号:在查询参数中。用{ { 字段名 } }替换。
  3. 强调:一旦替换完成,Send就不再能正常获取响应数据。(数据必须从数据文件中读取,才能正常发送请求,Send不具备读取数据文件的功能)
    json 文件版本 就是选择json文件

  4. 选择使用数据文件的用例集,进入Runner页面 。导入数据文件。运行。

  5. 如果有异常,借助postman的控制台,查看。


    小结:借助数据文件,实现`数据驱动"。一一有多少条数据,对应就有多少个http请求。

带有外部数据文件的测试报告生成

步骤:

  1. 批量执行测试用例(借助数据文件)
  2. 导出测试用例集(建议与数据文件放在一起)
  3. 执行生成测试报告的命令
bash 复制代码
newman run  用例集名称.json -d 数据文件名.csv/.json  -r html-reporter-html-export 报告名称.html


相关推荐
安冬的码畜日常1 天前
【JUnit实战3_01】第一章:JUnit 起步
测试工具·junit·单元测试
测试老哥1 天前
测试用例之正交试验法、功能图法
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
zhonghaoxincekj1 天前
晶体管的定义,晶体管测量参数和参数测量仪器
功能测试·单片机·学习·测试工具·单元测试·制造
川石课堂软件测试2 天前
自动化测试之 Cucumber 工具
数据库·功能测试·网络协议·测试工具·mysql·单元测试·prometheus
卓码软件测评2 天前
第三方媒体流压力测试:k6插件xk6-webrtc的使用来测试媒体流的性能
网络协议·测试工具·http·https·webrtc·ssl·媒体
程序员三藏2 天前
银行测试:第三方支付平台业务流,功能/性能/安全测试方法
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·安全性测试
废弃的小码农2 天前
测试基础--Day01--软件测试基础理论
python·功能测试·测试工具
胜天半月子2 天前
接口测试 | Postman的安装和测试使用
测试工具·接口测试·postman
Bellafu6663 天前
selenium 常用xpath写法
前端·selenium·测试工具