Postman接口测试03|执行接口测试、全局变量和环境变量、接口关联、动态参数、断言
目录
七、Postman
1、安装
2、postman的界面介绍
八、Postman执行接口测试
1、请求页签
3、响应页签
九、Postman的环境变量和全局变量
1、创建环境变量和全局变量可以解决的问题
2、postman中的操作-全局变量
1️⃣手动设置
2️⃣代码设置
3️⃣界面获取
4️⃣代码获取
3、postman中的操作-环境变量
1️⃣手动设置
2️⃣代码设置
3️⃣界面获取
4️⃣代码获取
十、接口关联
1、第一种方式:Json提取器
2、第二种方式:正则表达式提取器(项目实战中的Token鉴权使用到了)
十一、Postman内置动态参数和自定义的动态参数
1、内置动态参数
2、自定义的动态参数
十二、Postman断言
1、常规断言:六种
2、动态参数断言
3、全局断言
七、Postman
1、安装
【安装教程】postman下载及安装-CSDN博客
2、postman的界面介绍
Home主页
workspaces 工作空间
- Collections:项目集合
- APIs:api文档
- Enviromments:环境变量,全局变量
- Mock Server:虚拟服务器
- Monitors:监听器
- History:历史记录
八、Postman执行接口测试
下面以get请求为例,post请求参考视频:8.精通Postman之发送post请求及get和post的区别_哔哩哔哩_bilibili
Create Collection→输入集合名称→在集合处右键→点Add request→输入请求名称→设置请求方式为get/post→输入请求路径→(下面是一些GET请求页面的参数介绍)→send→(获得响应页签)

1、请求页签
①Params:get请求传参
②authorization:鉴权
③headers:请求头
④Body:post请求传参
- form-data:既可以传键值对参数也可以传文件。
- x-www-from-urlencoded:只能够传键值对参数。
- raw :可以传输 json , text , xml, html , javascript类型数据。
- binary:把文件以二进制的方式传参。
⑤pre-request-script:请求之前的脚本。
⑥tests:请求之后的断言。
⑦cookies:用于管理cookie信息。
3、响应页签

①Body:接口返回的数据。
- Pretty:以Json,html,XML .... 不同的格式查看返回的数据。
- Raw:以文本的方式查看返回的数据。
- PreView:以网页的方式查看返回的数据。
②Cookies:响应的Cookie信息
③Headers:响应头
④Test Results:断言的结果
⑤200:状态码
⑥OK:状态信息
⑦681MS :响应的时间
⑧343B:响应的字节数
参考的接口文档:
1、获取接口统一鉴权码token接口:获取接口调用凭据 | 微信开放文档
2、标签管理接口
3、黑名单管理接口
4、文件上传接口
九、Postman的环境变量和全局变量
1、创建环境变量和全局变量可以解决的问题

全局变量:在所有的接口里面都可以访问的变量。是全局唯一,不可重复的变量。
环境变量:在某个环境里面都可以访问的变量。在该环境中不可重复定义。
常见环境分类:开发环境、测试环境、生产环境。
2、postman中的操作-全局变量
1️⃣手动设置

2️⃣代码设置
// 代码设置:
// 语法:
pm.globals.set("全局变量名", 全局变量值)// 例子:
var age_tmp = 18 // 定义 js 语法的变量
pm.globals.set("glb_age", age_tmp)
3️⃣界面获取
从请求参数中获取
// 语法:
{{全局变量名}}// 示例:
{{glb_age}}
// 用在:查询参数、请求头、请求体 中。
4️⃣代码获取
#语法:
var 接收变量名 =pm.globals.get("全局变量名")#例子:
var ret_age = pm.globals.get("glb_age")
3、postman中的操作-环境变量
1️⃣手动设置

2️⃣代码设置
// 语法:
pm.environment.set("环境变量名”,环境变量值)// 例子:
var age_tmp= 19 //定义 js 语法的变量
pm.environment.set("env_age", age_tmp)
3️⃣界面获取
从请求参数中获取
// 语法:
{{环境变量名}}// 示例:
{{env_age}}
// 用在:查询参数、请求头、请求体 中。
4️⃣代码获取
// 语法:
var 接收变量名 =pm.environment.get("环境变量名")// 例子:
var ret_age = pm. environment.get("env_age")
十、接口关联
1、第一种方式:Json提取器
①取值并设置全局变量(在一个接口处)
注意这里的接口是第一个接口get
②查看全局变量

③ 在需要的接口里通过{{}}取得全局变量的值(第二个接口处)
2、第二种方式:正则表达式提取器(项目实战中的Token鉴权使用到了)
和上面Json提取器步骤一样,唯一不一样的是第一步,取值并设置全局变量:

十一、Postman内置动态参数和自定义的动态参数
1、内置动态参数
都是带$符号的
{{$timestamp}} //动态生成当前时间的时间戳
{{$randomlnt}} //动态生成0-1000的整形随机数
{{$guid}} //动态生成随机的guid字符串

2、自定义的动态参数

使用时使用:{{times}}
十二、Postman断言
- 利用Postman 自带的断言机制,帮助我们自动判断 预期结果 和实际结果是否一致。
- 使用的 是 JavaScript 脚本语言,写在 Tests 的标签页中。 在 TestResults 标签中显示。
1、常规断言:六种

Status code:Code is 200 :检查返回的状态码是否为200(常用)
Response body:Contains string :检查响应中包括指定字符串(常用)
Response body:Json value check: 检查响应中,json中其中一个字段的值(常用)
Response body:is equal to a string :检查响应等于一个字符串(常用)
Response headers:Content-Type header check :检查是否包含响应头Content-Type
Response time is less than 200ms:检查请求耗时小于200ms
//状态断言
pm.test(“检查返回状态码为200",function(){pm.response.to.have.status(200);};//业务断言
pm.test(“检查返回的结果中包括指定access_token字符串”,function(){pm. expect(pm.response.text()).to.include("access_token");
});
2、动态参数断言
在断言只能获取自定义动态参数(全局变量)的方式:三种方式效果一样
pm.globals.get("times")
globals["times"]
globals.times
//业务断言,其中times是自定义的全局变量
pm.test(“检查返回的结果中包括标签名”,function(){pm. expect(pm.response.text()).to.include("测试测试"+pm.global.get("times"));
});
3、全局断言
对于每个接口测试都包含的断言(比如断言状态码是不是200),这种断言可以写在全部断言中,这样其他接口的测试模块的断言就可以不写和全局断言相同的代码了,减少代码重复。


相关文章:
Postman接口测试03|执行接口测试、全局变量和环境变量、接口关联、动态参数、断言
目录 七、Postman 1、安装 2、postman的界面介绍 八、Postman执行接口测试 1、请求页签 3、响应页签 九、Postman的环境变量和全局变量 1、创建环境变量和全局变量可以解决的问题 2、postman中的操作-全局变量 1️⃣手动设置 2️⃣代码设置 3️⃣界面获取 4️⃣代…...
UE5 丧尸类杂兵的简单AI
A、思路 1、关卡初始化时,自动产生随机巡逻点,小兵到达后,去另一个随机巡逻点。 2、加入视力,发现主角后,不再巡逻,而开始追击主角并攻击。条件循环。 3、加入听力。主角的奔跑与射击会产生噪音…...
Linux字符设备驱动开发的三种方式(分析+对比+示例)
文章目录 一. 字符设备的驱动方法二. 三种方法的对比三. 开发环境四. 代码示例1. 传统设备驱动模型2. 总线设备驱动模型3. 设备树驱动模型 五. 相关链接 一. 字符设备的驱动方法 字符设备驱动 是指在I/O传输过程中以字节流进行读写操作的设备。典型的如LCD、蜂鸣器、SPI、触摸屏…...
C++设计模式之行为型模式概述,它们的目的与特点
行为型设计模式需要解决的问题 行为型设计模式主要关注对象之间的责任分配和交互。它们解决的问题包括: 对象之间的通信:如何让对象之间高效地通信,同时保持松耦合。算法的封装与复用:如何将算法或行为封装起来,使其…...
把Huggingface下载的arrow数据集转化为json格式
Arrow2json 使用默认的Huggingface路径 以allenai/tulu-3-sft-mixture数据集为例。 使用load_dataset即可: from datasets import load_dataset# 加载数据集 dataset load_dataset("allenai/tulu-3-sft-mixture")# 指定保存路径 output_dir "~/…...
复习打卡大数据篇——Hadoop YARN
目录 1.什么是yarn 2.yarn的三大角色 3.任务(MR)提交到YARN运行流程 4. 调度器Scheduler 5.YARN HA 高可用 1.什么是yarn YARN(Yet Another Resource Negotiator)是一个资源管…...
fpga系列 HDL:ModelSim显示模拟波形以及十进制格式数值
FPGA中使用数字滤波器时,可通过观察模拟波形更好地查看滤波效果。可以通过ModelSim中的波形格式设置来实现更直观的波形显示。 右键波形->Format-> Analog 效果 不同的数值格式显示:右键波形->Radix-> Decimal 效果 示例代码 ver…...
Linux 基本指令
目录 1.常见指令 1.1 ls指令 1.2 pwd指令 1.3 cd指令 1.4 touch指令 1.5 mkdir指令 1.6 rm和rmdir指令 1.7 man指令 1.8 cp指令 1.9 mv指令 编辑 1.10 cat指令 1.11 more指令 1.12 less指令 1.13 head指令 1.14.tail指令 1.15 时间相关的指令 1.16 cal…...
GO语言基础面试题
一、字符串和整型怎么相互转换 1、使用 strconv 包中的函数 FormatInt 、ParseInt 等进行转换 2、转换10进制的整形时,可以使用 strconv.Atoi、strconv.Itoa: Atoi是ParseInt(s, 10, 0) 的简写 Itoa是FormatInt(i, 10) 的简写 3、整形转为字符型时&#…...
要查询 `user` 表中 `we_chat_subscribe` 和 `we_chat_union_id` 列不为空的用户数量
文章目录 1、we_chat_subscribe2、we_chat_union_id 1、we_chat_subscribe 要查询 user 表中 we_chat_subscribe 列不为空的用户数量,你可以使用以下 SQL 查询语句: SELECT COUNT(*) FROM user WHERE we_chat_subscribe IS NOT NULL;解释: …...
小程序基础 —— 10 如何调试小程序代码
如何调试小程序代码 在进行项目开发的时候,不可避免需要进行调试,那么如何调试小程序呢? 打开微信开发者工具后,有一个模拟器,通过模拟器能够实时预览自己写的页面,如下: 在上部工具栏中有一个…...
Vue项目如何设置多个静态文件;如何自定义静态文件目录
Vite实现方案 安装插件 npm i vite-plugin-static-copy在vite.config.ts引入 import { viteStaticCopy } from vite-plugin-static-copy配置 plugins: [viteStaticCopy({targets: [{src: "要设置的静态文件目录的相对路径 相对于vite.config.ts的", dest: ./, // …...
CentOS Stream 9 安装 JDK
安装前检查 java --version注:此时说明已安装过JDK,否则为未安装。如若已安装过JDK可以跳过安装步骤直接使用,或者先卸载已安装的JDK版本重新安装。 安装JDK 官网下载地址:https://www.oracle.com/java/technologies/downloads…...
前端(htmlcss)
前端页面 Web页面 PC端程序页面 移动端APP页面 ... HTML页面 HTML超文本标记页面 超文本:文本,声音,图片,视频,表格,链接 标记:由许多标签组成 HTML页面运行到浏览器上面 vscode便捷插件使用 vs…...
py打包工具
pyinstaller 安装 大佬文档参考 pip install pyinstallerpyinstaller 参数 -i 给应用程序添加图标 -F 只生成一个exe格式的文件 -D 创建一个目录,包含exe文件,但会依赖很多文件(默认选项) -c 有黑窗口 -w 去掉黑窗口pyinstalle…...
华为OD E卷(100分)39-最长子字符串的长度(二)
前言 工作了十几年,从普通的研发工程师一路成长为研发经理、研发总监。临近40岁,本想辞职后换一个相对稳定的工作环境一直干到老, 没想到离职后三个多月了还没找到工作,愁肠百结。为了让自己有点事情做,也算提高一下自己的编程能力…...
Selenium+Java(21):Jenkins发送邮件报错Not sent to the following valid addresses解决方案
问题现象 小月妹妹近期在做RobotFrameWork自动化测试,并且使用Jenkins发送测试邮件的时候,发现报错Not sent to the following valid addresses,明明各个配置项看起来都没有问题,但是一到邮件发送环节,就是发送不出去,而且还不提示太多有用的信息,急的妹妹脸都红了,于…...
JSON结构快捷转XML结构API集成指南
JSON结构快捷转XML结构API集成指南 引言 在当今的软件开发世界中,数据交换格式的选择对于系统的互操作性和效率至关重要。JSON(JavaScript Object Notation)和XML(eXtensible Markup Language)是两种广泛使用的数据表…...
【视觉惯性SLAM:四、相机成像模型】
相机成像模型介绍 相机成像模型是计算机视觉和图像处理中的核心内容,它描述了真实三维世界如何通过相机映射到二维图像平面。相机成像模型通常包括针孔相机的基本成像原理、数学模型,以及在实际应用中如何处理相机的各种畸变现象。 一、针孔相机成像原…...
网络编程:TCP和UDP通信基础
TCP 简易服务器: #include<myhead.h>int main(int argc, const char *argv[]) {int oldfd socket(AF_INET,SOCK_STREAM,0);if(oldfd -1){perror("socket");return -1;}//绑定要绑定的结构体struct sockaddr_in server {.sin_family AF_INET,.…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
python执行测试用例,allure报乱码且未成功生成报告
allure执行测试用例时显示乱码:‘allure’ �����ڲ����ⲿ���Ҳ���ǿ�&am…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
Rust 开发环境搭建
环境搭建 1、开发工具RustRover 或者vs code 2、Cygwin64 安装 https://cygwin.com/install.html 在工具终端执行: rustup toolchain install stable-x86_64-pc-windows-gnu rustup default stable-x86_64-pc-windows-gnu 2、Hello World fn main() { println…...
【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统
Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...
sshd代码修改banner
sshd服务连接之后会收到字符串: SSH-2.0-OpenSSH_9.5 容易被hacker识别此服务为sshd服务。 是否可以通过修改此banner达到让人无法识别此服务的目的呢? 不能。因为这是写的SSH的协议中的。 也就是协议规定了banner必须这么写。 SSH- 开头,…...
