Postman的高级使用,傻瓜式学习【下】
目录
前言
1、全局变量、环境变量
1.1、概念:
1.2、如何设置全局变量、环境变量
1.3、获取全局变量、环境变量
1.4、案例1:手动设置变量,请求参数获取
1.5、案例2:代码设置变量,代码获取变量
2、Postman读取外部数据文件(参数化)
2.1、数据文件CSV和JSON的优缺点
2.2、导入外部数据文件——CSV文件
1)创建xxx.csv文件
2)打开csv文件,添加数据
3)在Postman中如何导入数据文件
2.3、导入外部数据文件——JSON文件
1)创建xxx.json文件
2)打开csv文件,添加数据
3)在Postman中如何导入数据文件
2.4、读物数据文件数据
2.5、案例1:使用CSV
3、Postman的工作原理
4、生成测试报告
4.1、安装node.js
4.2、安装newman
4.3、安装newman-reporter-html
4.4、生成测试报告的步骤
前言
小伙伴们,可以先看看这篇Postman的高级使用,傻瓜式学习【上】,再看本篇内容~
1、全局变量、环境变量
上述,我们对Postman以上有了一个更深的理解了~
接下来,我们来看全局变量和环境变量:
1.1、概念:
- 全局变量:在Postman中,全局生效的变量,全局唯一
- 环境变量:在特定的环境(生产环境、开发环境、测试环境)下,生效的变量,在本环境内唯一
1.2、如何设置全局变量、环境变量
代码设置:
全局变量设置:pm.globals.set(“全局变量名”,全局变量的值)
环境变量设置:pm.environment.set("环境变量名", 环境变量值)
手动设置:

举例设置全局变量:

环境变量也是一样的,环境变量设置后,只在对应环境中有效,所以我们需要记得勾选环境是哪个,环境的名字,是可以自定义的,例如我们有一个名叫测试的环境~

1.3、获取全局变量、环境变量
代码获取:
全局变量设置:var 接收值的变量 = pm.globals.get(“全局变量名”)
环境变量设置:var 接收值的变量 = pm.environment.get("环境变量名")
请求参数获取:
全局变量和环境变量在使用请求参数获取时,是一样的:{{variable}}
1.4、案例1:手动设置变量,请求参数获取
手动设置一个全局变量

手动设一个环境变量:

预览看一下:

我们现在给登录接口发送消息:

发送:

这里我们也可以来确认一下,Postman给服务器发送的最终url到底是什么样子的:


我们现在换一个环境,测试一下

1.5、案例2:代码设置变量,代码获取变量
咱们接着上面的案例,在前置脚本中设置变量,在断言中获取:
设置:

获取:

结果:

断言通过:

查看变量是否设置成功:

这样看来,其实就可以很容易的理解到,是可以做到多个请求是可以关联起来的,例如可以A接口收到的某个数据设置为全局或环境变量,后面的接口就可以直接使用这个变量了,大家可以动手实操一下~我们就不带着做了~
2、Postman读取外部数据文件(参数化)
当http请求,使用的数据有较高的相似度时,相同的请求,考虑使用参数化。参数化就是将数据组织到数据文件中~
2.1、数据文件CSV和JSON的优缺点
CSV的优点:
- 数据组织形式简单,适用于大量数据的场景
CSV的缺点:
- 不止bool类型数据(数据被Postman读入后,会自动添加双引号包裹,因此不支持~)
- 不支持多参、少参、无参、错误参数的接口测试
- 不支持复杂数据类型,如:嵌套字典、列表等
JSON的优点:
- 支持bool类型
- 支持多参、少参、无参、错误参数
- 支持复杂数据类型
CSV的缺点:
- 对于相同数据量,JSON数据文件会比CSV文件大得多~
2.2、导入外部数据文件——CSV文件
1)创建xxx.csv文件

2)打开csv文件,添加数据

这个csv文件,一定要使用记事本打开!!!不要使用电脑默认的Excel!!!
内容说明:第一行是数据对应的字段名;第二行从左向右依次是字段对应的数值,用英文逗号隔开
3)在Postman中如何导入数据文件

点击后:

点击Select file后:

选择自己准备好的外部文件即可~

看一下预览:

我们可以看到除了数值以外,Postman都已经为我们添加上了双引号~
2.3、导入外部数据文件——JSON文件
1)创建xxx.json文件

2)打开csv文件,添加数据
json格式的数据,我们手写很容易出错,所以我们可以先在json.cn在线网站中写好后,复制过去:


复制至json文件中,保存即可~
3)在Postman中如何导入数据文件
这里同csv文件的导入是一样的,就不说了~
我们导入后,来看看预览:

文件导入了,那我们如何读取文件中的内容呢?
2.4、读物数据文件数据
代码获取:
使用Postman提供的关键字data,然后点文件中的字段名或json中的key即可
请求参数获取:
请求参数获取时,使用:{{字段名 / json中的key}}
2.5、案例1:使用CSV
登录时,传入不同的username和password,会返回不同的msg
cvs中的数据:

postman中使用请求参数使用username1和password1:

在断言中使用代码的方式来获取文件中的msg:

准备运行:

然后选入自己的CSV文件,预览:


注:这个运行按钮也是批量执行测试用例的按钮~
结果:

运行通过
我们来看看他发送的请求对不对:

json的使用,和CVS基本一样,我就不演示了~
3、Postman的工作原理
我们把postman学到这里,Postman在工作中,常见的使用其实介绍的差不多了,我们来简单了解一下,postman的工作原理,能够更有利于我们对postman的使用的理解~
我们来结合下图,更好理解:

以上就是大致的postman的工作原理,这里主要是想让大家明白,哪一步先执行、哪一步后执行、哪一步在哪一步的前面~
4、生成测试报告
在我们执行之前,需要安装一些东西,辅助我们能够生成测试报告。以下三个安装按这里的顺序安装哈~
4.1、安装node.js
下载:Download | Node.js

安装是,一路next就可以了
在cmd输入npm -v,能看到版本号,就是安装成功了:

有的小伙伴可能安装了,这个命令也还是报错,那你想想看,是不是因为你安装的时候,更换安装路径了呢?你切换到你安装的路径下试试看? 不过还是建议重新安装以下哈,选择默认路径就好啦~
4.2、安装newman
打开命令行,输入npm install -g newman
安装中:

安装成功后,输入命令:newman -v
这里安装时,Windows终端有缺陷,所以不要在安装时,使用鼠标或键盘操作终端页面!!!
查看版本号,显示了版本号,则是安装成功了:

4.3、安装newman-reporter-html
安装命令:npm install -g newman-reporter-html
安装成功:

这个如果安装失败,后面会报错,后面说~
4.4、生成测试报告的步骤
- 批量执行测试用例(借助数据文件)
- 导出测试用例集(建议与数据文件放在一起)
- 执行生成测试报告的命令
1)如果批量执行测试用例,上面我们使用数据文件时,其实就已经演示了~ 不会的伙伴,可以再去看看~
2)导出测试用例集(最好就放在刚在使用的数据文件的同目录下),怎么导出,上一篇文章其实已经介绍过了,大家不会的可以去瞅瞅~
3)在终端执行命令,生成测试报告
演示:
1、批量执行(具体就不演示,直接看批量执行的结果):

2、导出测试用例集(存放在数据文件同目录下):

3、执行生成测试报告的命令

执行命令:
# 完整的命令
newman run xxxx.json -e 环境变量文件 -d 外部数据文件 -r html --reporter-html-export 测试报告名.html#如果没有环境变量文件,就不用写-e xxxx
#如果没有外部文件,就不用写 -d xxxx
#如果不用成功测试报告的文件,直接显示在命令行里,就不用写-r html xxxxx# 示例:
newman run 批量执行测试用例.postman_collection.json -r html --reporter-html-export 我的第一个测试报告.html# 如果添加 -r html 就报错!说明: newman-reporter-html 安装失败!
例如,我这里的:

该路径下就会生成一个html文件~
如果newman-reporter-html 安装失败,会弹出这个提示:

好了,生成成后,我们来看看这个目录下的测试报告:

打开后看看:

好啦,postman的高级用法就介绍到这里咯,我们下期见~~~
相关文章:
Postman的高级使用,傻瓜式学习【下】
目录 前言 1、全局变量、环境变量 1.1、概念: 1.2、如何设置全局变量、环境变量 1.3、获取全局变量、环境变量 1.4、案例1:手动设置变量,请求参数获取 1.5、案例2:代码设置变量,代码获取变量 2、Postman读取外部…...
Qt:关闭对话框,动画实现窗体逐渐缩小到消失
关键技术: 1、使用QPropertyAnimation对象,实现动画效果,逐渐缩小窗体尺寸,以及透明度; 2、在对话框缩小时,要将界面中的控件都隐藏起来,并且将对话框布局的Margin修改成0 代码如下ÿ…...
在Windows上 ciphey安装(详细版)
文章目录 前言 一、不想卸载原有的python版本? 二、安装步骤 1.安装python 2.创建虚拟环境vnev 3.在ciphey的虚拟环境中进行激活 4.安装ciphey 三、参数列表 总结 前言 提示:安装了好几次,但是都没安装成功,我使用了三个电脑p…...
【lesson2】数据库的库操作
文章目录 库操作创建数据库删除数据库字符集和校验规则手动设置字符集和校验集不同字符集和校验集之间的区别修改数据库字符集和校验集备份和恢复数据库 库操作 创建数据库 删除数据库 字符集和校验规则 创建数据库的时候,有两个编码集: 1.数据库编码集…...
Android Studio Giraffe解决gradle reload failed问题
settings.gradle.kts中 pluginManagement {repositories {google()mavenCentral()gradlePluginPortal()} } dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {google()mavenCentral()} } 各增加三行内容&#x…...
刷题笔记day06-哈希表
242.有效的字母异位词 // 思路2:排序后在比较是否相等import ("sort""fmt""io""strings""os" )func isAnagram(s string, t string) bool {s1, s2 : []byte(s), []byte(t)// 从小到大排序sort.Slice(s1, func(i…...
springboot项目中如何实现过滤器鉴权
通常来说鉴权都是写在网关当中,对于单体应用也可以在后台服务中通过一个过滤器实现。其实过程与网关当中的没什么不同,只是在gateway当中目前是基于netty响应式的。过程如下: 一、实现Filter接口 定义自己的过滤器,并且实现Filt…...
【rust/esp32】在idf中使用embedded-graphics控制st7789 LCD屏幕
文章目录 说在前面模块详情准备工作开始编译烧录结果 说在前面 esp32版本:s3运行环境:esp-idf(std)开发环境:wsl2LCD模块:ST7789V2 240*280 LCDgithub地址:这里 模块详情 某宙的esp32s3开发板 某雪的1.69inch LCD模块…...
YOLOv8如何添加注意力模块?
分为两种:有参注意力和无参注意力。 eg: 有参: import torch from torch import nnclass EMA(nn.Module):def __init__(self, channels, factor8):super(EMA, self).__init__()self.groups factorassert channels // self.groups > 0self.softmax …...
用LibreOffice在excel中画折线图
数据表格如下。假设想以x列为横坐标,y1和y2列分别为纵坐标画折线图。 选择插入-》图表: 选择折线图-》点和线,然后点击“下一步”: 选择:列中包含数据序列,然后点击完成(因为图挡住了数据…...
RabbitMQ 链接管理-发布者-消费者
RabbitMQ连接管理器 using RabbitMQ.Client; using System; public class RabbitMQConnectionManager { private readonly IConnectionFactory _connectionFactory; private IConnection _connection; public RabbitMQConnectionManager(string hostName) { …...
JAVA中的垃圾回收器(3)----ZGC
一)ZGC介绍:是JAVA11新引入的低延迟垃圾收集器 ZGC是一款基于Regin的,暂时没有分代概念的,使用了读屏障,颜色指针等技术来实现并发的标记清除和标记整理算法,一低延迟为主要目标的一款垃圾回收器 ZGC的regin可以分为是下图中具有大…...
IDEA 如何运行 SpringBoot 项目
步骤一:配置 Maven 第一步:用 IDEA 打开项目,准备配置 maven 环境 ,当然如果本地没有提前配置好 maven,就用 IDEA 默认的配置即可 配置 maven 步骤 情况 1:如果本地没有配置过 maven,可以保持如…...
Linux MeterSphere测试平台远程访问你不会?来试试这篇文章
🎬 鸽芷咕:个人主页 🔥 个人专栏:《粉丝福利》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网…...
15.k8s集群防火墙配置
防火墙配置 ######################## # master节点防火墙设置 ######################### 所有master节点开放相关防火墙端口 $ firewall-cmd --zonepublic --add-port6443/tcp --permanent $ firewall-cmd --zonepublic --add-port2379-2380/tcp --permanent $ firewall-cmd…...
Python beautifulsoup网络抓取和解析cnblog首页帖子数据
视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium 我们抓取下https://www.cnblogs.com/ 首页所有的帖子信息,包括帖子标题,帖子地址,以及帖子作者信息。 首先用requests获取网页文件࿰…...
Java集成腾讯云OCR身份证识别接口
一、背景 项目用到身份证识别获取人员信息的功能,于是想到了腾讯云提供这样的API。在整合代码过程都很顺利,利用腾讯云官方SDK很快集成进来。但是在上测试环境部署时有了新的问题,通过Nginx代理后的环境无法访问到目标腾讯云接口,…...
C++之C++11引入enum class与传统enum关键字总结(二百五十一)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…...
如何将word格式的文档转换成markdown格式的文档
如何将word格式的文档转换成markdown格式的文档 前言 A. 介绍Markdown和Word格式文档 什么是Markdown? Markdown是一种轻量级标记语言,旨在简化文本格式化和排版的过程。它以纯文本形式编写,通过使用简单的标记语法,使文档更具…...
Leetcode—2558.从数量最多的堆取走礼物【简单】
2023每日刷题(十二) Leetcode—2558.从数量最多的堆取走礼物 大顶堆实现代码 void swap(int *a, int *b) {int tmp *a;*a *b;*b tmp; }void downAdjustHeap(int *heap, int low, int high) {int i low;int j 2 * i 1;while(j < high) {if(j …...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...
