当前位置: 首页 > news >正文

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️⃣手动设置

环境变量1
环境变量2
环境变量3
使用时在postman右上角选择不同的环境即可
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提取器

①取值并设置全局变量(在一个接口处)

重点是第4行和第7行,第1行和第5行是打印语句
注意这里的接口是第一个接口get
 

 ②查看全局变量 

③ 在需要的接口里通过{{}}取得全局变量的值(第二个接口处)

这里的接口是第二个接口post

2、第二种方式:正则表达式提取器(项目实战中的Token鉴权使用到了)

和上面Json提取器步骤一样,唯一不一样的是第一步,取值并设置全局变量:

 十一、Postman内置动态参数和自定义的动态参数

1、内置动态参数

都是带$符号的 

{{$timestamp}}  //动态生成当前时间的时间戳
{{$randomlnt}}    //动态生成0-1000的整形随机数
{{$guid}}   //动态生成随机的guid字符串

2、自定义的动态参数

使用时使用:{{times}}

十二、Postman断言

  • 利用Postman 自带的断言机制,帮助我们自动判断 预期结果 和实际结果是否一致。
  • 使用的 是 JavaScript 脚本语言,写在 Tests 的标签页中。 在 TestResults 标签中显示。 
Postman 断言工作原理

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、加入听力。主角的奔跑与射击会产生噪音&#xf…...

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 简易服务器&#xff1a; #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,.…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法&#xff0c;用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理&#xff0c;能够自动确定一个阈值&#xff0c;将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中&#xff0c;网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时&#xff0c;开发者迫切需要一套高效、可靠且跨平台的调试方案。过去&#xff0c;我们或多或少使用过 Chrome DevTools、Remote Debug…...

前端工具库lodash与lodash-es区别详解

lodash 和 lodash-es 是同一工具库的两个不同版本&#xff0c;核心功能完全一致&#xff0c;主要区别在于模块化格式和优化方式&#xff0c;适合不同的开发环境。以下是详细对比&#xff1a; 1. 模块化格式 lodash 使用 CommonJS 模块格式&#xff08;require/module.exports&a…...

算法250609 高精度

加法 #include<stdio.h> #include<iostream> #include<string.h> #include<math.h> #include<algorithm> using namespace std; char input1[205]; char input2[205]; int main(){while(scanf("%s%s",input1,input2)!EOF){int a[205]…...