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 …...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
【Linux】C语言执行shell指令
在C语言中执行Shell指令 在C语言中,有几种方法可以执行Shell指令: 1. 使用system()函数 这是最简单的方法,包含在stdlib.h头文件中: #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...