postman高级用法

背景

   在项目开发的过程中,少不了对接口的调用和对自己编写的接口进行自测,或者测试同学用来做接口测试用

问题

请求头:

key:authenticationToken

value:获取token接口获取的token

/external-data/guoyin-iot-platform-external-data-center/manual/underlyingGetVehicleList

{"appId":"1d7541223b3e4b2da4dadc7349cd0c9e","pageNum":"6","pageSize":"1000","timestamp":"1702380524131","frameNo":null}

针对以上的接口类型,使用postman进行测试的时候,时间戳的生成,以及token值的获取,因为每个接口都需要该参数。在postman中如何做参数化呢?

知识点

1.时间戳生成在postman中使用,另类参数发

2.提取token的属性值,作为全局使用。

postman关联

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

  1、postman 自关联

  2、实现步骤

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

      1. 发送接口 B 请求,获取响应数据。

      2. 将响应数据,放入公共容器(全局变量、环境变量)中

      3. 接口 A 从 公共容器中,提取数据,发送请求。

  3、核心代码

// 1. 获取 响应数据,转为 json 格式,保存到变量 jsonData 中。 
var jsonData = pm.response.json() 

// 2.1 使用 全局变量做容器。 
pm.globals.set("全局变量名", 全局变量值) 

// 2.2 使用 环境变量做容器。 
pm.environment.set("环境变量名", 环境变量值) 

// 3. 在 postman 界面中(URL、请求头headers、请求体body)提取全局、环境变量数据。 
{{全局变量名}}/{{环境变量名}}

三、创建环境

  全局变量:在整个 postman 中都可以使用的变量,不需要单独创建环境

  环境变量:在特定环境下,才能使用的变量,需要给此变量创建单独的环境

  1、环境的创建

实例

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

    2、从获取天气接口,http://www.weather.com.cn/data/sk/101010100.html

    3、获取返回结果中的城市名称

    4、调用百度搜索接口: http://www.baidu.com/S?wd=北京 ,把获取到的城市名称,如:北京,作为请求参数

    思路:

    1. 发送 获取天气请求,获取响应结果

    2. 从响应结果中,拿到城市名,存入 全局变量

    3. 百度搜索接口从 全局变量中,取城市名,发送搜索请求。

    tests代码:

// 1. 获取响应结果 
var jsonData = pm.response.json() 

// 2. 从响应结果中,提取 城市名 
var city = jsonData.weatherinfo.city 

// 3. 将城市名保存到 全局变量 

pm.globals.set("glb_city", city)

扩展

  使用 postman 关联技术,实现添加员工接口。登录成功,返回的 “令牌” 被 添加员工接口依赖。

  思路:

    1. 发送登录请求(必须登录成功),获取响应结果

    2. 从 json 响应结果中,提取 data 值。拼接上 “Bearer ” 前缀。

      注意:Bearer单词不能拼错,首字母必须大写,只有一个空格

    3. 将拼接无误的 令牌,存入 环境变量。 从 “眼睛” 图标查看。

    4. 添加员工 接口,从 环境变量 中,提取 令牌。设置到请求头中,作为 Authorization 的 值。

    5. 填写 添加员工 接口 其他信息(post、URL、请求体),发送请求。

//获取相应结果
var jsonData = pm.response.json()
//提取data值,拼接“Bearer空格”前缀,行成完整令牌
var token = "Bearer "+jsonData
//将完整令牌存入环境变量
pm.environment.set("env_token",token)

四、参数化

  简介:将测试数据,组织到数据文件中,通过脚本的反复迭代,使用不同的数据,达到测试不同用例的目标。

  使用场景:一般在测试同一个接口的不同测试点时,只有测试数据不同。考虑使用参数化。

  数据文件简介:   

    1、CSV:记住:逗号必须为英文的逗号

      优点:数据组织格式简单

      缺点:

        1. 不能测试 bool 类型。因为 postman 读取 csv后,将所有非数值类型数据,自动添加 ”“ 变为字符串

        2. 不能存储复杂数据类型(元组、列表、字典)。

        3. 不能实现 参数测试。

        应用场景:数据量较大,数据组织格式简单。

  2、JSON:

    优点:

      1. 可以测试 bool类型

      2. 能使用 复杂数据类型

      3. 可以实现 参数测试。

    缺点:

      1、相同数据量,json文件要远大于 csv 文件。

    应用场景:数据量较少,数据组织格式复杂。需要进行 参数测试!

  3、将 csv 文件导入 postman(首先在界面上新建好 txt 文件)

  4、读取数据文件数据

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

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

      csv文件:{{字段名}}; json文件:{{键名}}

    第二种:代码(Tests)中,使用 数据文件中 的数据

      使用 postman 内置的 关键字 data,索引 字段名 或 键名

      csv文件:data.字段名; json文件:data.键名   

     案例:

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

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

      测试数据:

        手机号: 13012345678 运营商: 联通

        手机号: 13800001111 运营商: 移动

        手机号: 18966778899 运营商: 电信

 如果出错可再次查看调试

五、测试报告

  安装环境

  1、安装 node.js

    # 安装

      双击 .msi 文件,一路下一步安装即可。无需特殊设定。

    # 测试安装成功

      npm -v

  

  2、安装newman

    # 安装newman

      npm install -g newman

    # 测试安装成功

      newman -v

    # 安装newman插件 - 扩展版

      npm install -g newman-reporter-htmlextra

  3、导出用例集

    导出:

    导出环境文件

      如果,测试用例脚本中,包含 环境使用。必须要导出 环境文件!!!

    

    导入

六、Newman 生成测试报告

# 完整命令 
  newman run 用例集文件.json -e 环境文件.json -d 数据文件.json/.csv -r htmlextra --reporter- htmlextra-export 测试报告名.html 

-e 和 -d 是 非必须的。 
如果没有使用 环境,不需要指定 -e 
如果没有使用 数据文件(做参数化),不需要指定 -d

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/273374.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何解决mac无法访问github

确定github能访问的ip地址 点击检测按钮,找到比较快的ip 修改hosts文件:打开终端,输入 open /etc/hosts 后回车,打开mac的文本编辑器 add github.com 140.82.121.4 github.com 199.232.69.194 github.global.ssl.fastly.net …

【Image】GAN的超详细解释(以及奇怪的问题)

GAN原理 工作流程 下面是生成对抗网络(GAN)的基本工作原理 在GAN的架构中,有两个关键的组件:生成器(Generator)和鉴别器(Discriminator)。 生成器(Generator&#xff0…

传感器基础:传感器使用与编程使用(六)

目录 常用传感器讲解二十--气体传感器(KY-036)具体讲解电路连接代码实现 常用传感器讲解二十一--加速度传感器(ADXL335)具体讲解电路连接代码实现 常用传感器讲解二十二--压力传感器(BMP180)具体讲解电路连…

nvm 的安装及使用 (Node版本管理器)

目录 1、nvm 介绍 2、nvm安装 3、nvm 使用 4、node官网可以查看node和npm对应版本 5、nvm安装指定版本node 6、安装cli脚手架 1、nvm 介绍 NVM 全称 node.js version management ,专门针对 node 版本进行管理的工具,通过它可以安装和切换不同版本的…

Mysql之视图

Mysql之视图 常见的数据库对象视图概述为什么使用视图视图的理解创建视图创建单表视图别名的运用 创建多表联合视图利用视图对数据进行格式化contact 函数以视图为基,再创建新的视图 查看视图更新视图的数据一般情况不可更新的视图 修改和删除视图修改视图删除视图注…

SSL证书是什么?为什么需要SSL证书?

什么是SSL证书? SSL,全称为Secure Sockets Layer,是一种用于加密网络通信的协议。SSL证书是由一个可信赖的第三方机构颁发的数字证书,用于确保在用户与服务器之间传输的数据经过加密,保护用户隐私和信息安全。SSL证书…

flutter学习-day20-使用SafeArea组件处理各机型的安全距离

📚 目录 介绍分析示例和效果图特殊情况 1. 介绍 安全区域,指的是移动端设备的可视窗口范围。处于安全区域的内容不受圆角、刘海屏、iPhone 小黑条、状态栏等的影响,也就是说,我们要做好适配,必须保证页面可视、可操作…

Servlet见解2

4 创建servlet的三种方式 4.1 实现Servlet接口的方式 import javax.servlet.*; import javax.servlet.annotation.WebServlet; import java.io.IOException;WebServlet("/test1") public class Servlet1 implements Servlet {Overridepublic void init(ServletConf…

django之drf框架(两个视图基类、5个扩展视图类、9个视图子类)

两个视图基类 APIView和GenericAPIView drf提供的最顶层的父类就是APIView,以后所有的类都继承自他 GenericAPIView继承自APIView,他里面封装了一些工能 基于APIViewModelSerializerResposne写5个接口 子路由:app01>>>urls.py …

vscode括号颜色突然变成白色的了,怎么解决

更新版本后发现vscode的各种括号都变成了白色,由于分色括号已经使用习惯,突然变成白色非常不舒服,尝试多次后,为大家提供一下几种解决方式,希望能帮到同样受到此种困惑的你: 第一种: 首先打开…

模式识别与机器学习-判别式分类器

模式识别与机器学习-判别式分类器 生成式模型和判别式模型的区别线性判别函数多分类情况多分类情况1多分类情况2多分类情况3 例题 广义线性判别函数实例 分段线性判别函数Fisher线性判别感知机算法例:感知机多类别分类 谨以此博客作为学习期间的记录 生成式模型和判…

QT编译并部署QtMqtt相关环境+跑测demo【超详细教程】

文章目录 概要整体架构流程▷下载指定版本的QMqtt源码:▷编译后同步MQTT相关文件: 技术名词解释技术实现步骤详解一、编译源码1、编译报错2、解决思路3、编译通过 二、继续完善mqtt应用环境1、打开编译生成的shadow build文件夹2、同步lib3、同步bin4、同…

小程序中拖拽和缩放图片

需求&#xff1a;点击元素后选中&#xff0c;出现缩放按钮&#xff0c;拖动缩放按钮可实现元素的缩放&#xff1b;并且元素本身是可以拖动的。 html&#xff1a; <block wx:for"{{imageControls}}" wx:key"index"><view hidden"{{item.hidd…

vue中 ref 和 reactive 的区别与联系

官方原文&#xff1a;Vue3 建议使用 ref() 作为声明响应式状态的主要API。 ref 用于将基本类型的数据&#xff08;如字符串、数字&#xff0c;布尔值等&#xff09;和引用数据类型(对象) 转换为响应式数据。使用 ref 定义的数据可以通过 .value 属性访问和修改。reactive 用于…

因mathtype原因导致word中ctrl+V复制功能失效的解决办法

因MathType导致Word中ctrlV复制功能失效的解决办法如下&#xff1a; 我们先解决&#xff01; 打开“文件”&#xff0c;找到“选项”&#xff0c;“加载项”。找到MathType安装目录下&#xff08;C:\Program Files (x86)\Microsoft Office\root\Office16\STARTUP&#xff09;…

大创项目推荐 深度学习YOLOv5车辆颜色识别检测 - python opencv

文章目录 1 前言2 实现效果3 CNN卷积神经网络4 Yolov56 数据集处理及模型训练5 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; **基于深度学习YOLOv5车辆颜色识别检测 ** 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0…

SpringBoot的热部署

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;程序员老茶 &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开心好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;…

超维空间S2无人机使用说明书——52、使用PID算法进行基于yolo的目标跟踪

引言&#xff1a;在实际工程项目中&#xff0c;为了提高系统的响应速度和稳定性&#xff0c;往往需要采用一定的控制算法进行目标跟踪。这里抛砖引玉&#xff0c;仅采用简单的PID算法进行目标的跟随控制&#xff0c;目标的识别依然采用yolo。对系统要求更高的&#xff0c;可以对…

【Redis】一文掌握Redis原理及常见问题

Redis是基于内存数据库&#xff0c;操作效率高&#xff0c;提供丰富的数据结构&#xff08;Redis底层对数据结构还做了优化&#xff09;&#xff0c;可用作数据库&#xff0c;缓存&#xff0c;消息中间件等。如今广泛用于互联网大厂&#xff0c;面试必考点之一&#xff0c;本文…

python3下载手机安卓版,python下载手机版最新

大家好&#xff0c;小编为大家解答python3下载手机安卓版的问题。很多人还不知道python下载手机版最新&#xff0c;现在让我们一起来看看吧&#xff01; 1、先去python官网下载python3的源码包&#xff0c;网址&#xff1a;https://www.python.org/ 1)进去之后点击导航栏的Down…