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接口测试01|接口测试基础概念、http协议、RESTful风格、接口文档-CSDN博客

Postman接口测试02|接口用例设计_postman测试用例-CSDN博客

Postman接口测试03|执行接口测试、全局变量和环境变量、接口关联、动态参数、断言_postman内置动态参数-CSDN博客

Postman接口测试04|批量运行测试用例、参数化、Mock Server、Cookie鉴权、Newman生成测试报告-CSDN博客

 Postman接口测试05|实战项目笔记-CSDN博客

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

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

相关文章

Linux第二课:LinuxC高级 学习记录day01

0、大纲 0.1、Linux 软件安装,用户管理,进程管理,shell 命令,硬链接和软连接,解压和压缩,功能性语句,结构性语句,分文件,make工具,shell脚本 0.2、C高级 …

python学opencv|读取图像(二十九)使用cv2.getRotationMatrix2D()函数旋转缩放图像

【1】引言 前序已经学习了如何平移图像,相关文章链接为: python学opencv|读取图像(二十七)使用cv2.warpAffine()函数平移图像-CSDN博客 在此基础上,我们尝试旋转图像的同时缩放图像。 【2】…

logback日志

一、使用两个以上spring环境变量做三目操作 <springProperty name"application_name" scope"context" source"spring.application.name"/><springProperty name"trace_app_name" scope"context" source"sprin…

计算机网络 (34)可靠传输的工作原理

前言 计算机网络可靠传输的工作原理主要依赖于一系列协议和机制&#xff0c;以确保数据在传输过程中能够准确无误地到达目的地。 一、基本概念 可靠传输指的是数据链路层的发送端发送什么&#xff0c;在接收端就收到什么&#xff0c;即保证数据的完整性、正确性和顺序性。由于网…

如何用通俗易懂的方式解释大模型中的SFT,SFT过程需要大量标记的prompt和response吗?

想象你在培训一个超级助理 假设你新买了一个智能管家机器人&#xff0c;它已经看过海量的书籍和资料&#xff08;这就是预训练过程&#xff09;。但是呢&#xff0c;它还不太懂得"做人的艺术"——不知道该用什么语气说话、怎么回应你的需求。 现在你要训练它成为一…

istio-proxy oom问题排查步骤

1. 查看cluster数量 cluster数量太多会导致istio-proxy占用比较大的内存&#xff0c;此时需检查是否dr资源的host设置有配置为* 2. 查看链路数据采样率 若采样率设置过高&#xff0c;在压测时需要很大的内存来维护链路数据。可以调低采样率或增大istio-proxy内存。 检查iop中…

科研绘图系列:R语言绘制分组箱线图(boxplot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图输出系统信息介绍 科研绘图系列:R语言绘制分组箱线图(boxplot) 加载R包 library(ggpubr) library(ggplot2) library(tidyverse) # dev…

【SpringAOP】Spring AOP 底层逻辑:切点表达式与原理简明阐述

前言 &#x1f31f;&#x1f31f;本期讲解关于spring aop的切面表达式和自身实现原理介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &am…

IOS HTTPS代理抓包工具使用教程

打开抓包软件 在设备列表中选择要抓包的 设备&#xff0c;然后选择功能区域中的 HTTPS代理抓包。根据弹出的提示按照配置文件和设置手机代理。如果是本机则会自动配置&#xff0c;只需要按照提醒操作即可。 iOS 抓包准备 通过 USB 将 iOS 设备连接到电脑&#xff0c;设备需解…

Elasticsearch:使用 Playground 与你的 PDF 聊天

LLMs作者&#xff1a;来自 Elastic Toms Mura 了解如何将 PDF 文件上传到 Kibana 并使用 Elastic Playground 与它们交互。本博客展示了在 Playground 中与 PDF 聊天的实用示例。 Elasticsearch 8.16 具有一项新功能&#xff0c;可让你将 PDF 文件直接上传到 Kibana 并使用 Pla…

ClickHouse vs StarRocks 选型对比

一、面向列存的 DBMS 新的选择 Hadoop 从诞生已经十三年了&#xff0c;Hadoop 的供应商争先恐后的为 Hadoop 贡献各种开源插件&#xff0c;发明各种的解决方案技术栈&#xff0c;一方面确实帮助很多用户解决了问题&#xff0c;但另一方面因为繁杂的技术栈与高昂的维护成本&…

机器翻译优缺点

随着科技的飞速发展&#xff0c;机器翻译是近年来翻译行业的热门话题&#xff0c;在人们的生活和工作中日益普及&#xff0c;使用机器能够提高翻译效率&#xff0c;降低成本。尽管关于机器翻译为跨语言交流带来了诸多便利&#xff0c;但在译文的正确率和局限性方面存在一定争议…

【redis初阶】浅谈分布式系统

目录 一、常见概念 1.1 基本概念 2.2 评价指标&#xff08;Metric&#xff09; 二、架构演进 2.1 单机架构 2.2 应用数据分离架构 2.3 应用服务集群架构 2.4 读写分离/主从分离架构 2.5 引入缓存 ⸺ 冷热分离架构 2.6 数据库分库分表 2.7 业务拆分 ⸺ 引入微服务 redis学习&…

【Linux】文件 文件描述符fd

&#x1f33b;个人主页&#xff1a;路飞雪吖~ &#x1f320;专栏&#xff1a;Linux 目录 &#x1f33b;个人主页&#xff1a;路飞雪吖~ 一、C文件接口 &#x1f31f;写文件 &#x1f320;小贴士&#xff1a; &#x1f320;stdin && stdout && stderr Linux下…

uni-app如何引入echarts

在uni-app官网的官网插件中找echarts 打开图片对应的echarts&#xff0c;点击下载并导入插件 如果是vue3使用const echarts require(../../uni_modules/lime-echart/static/echarts.min);引入echarts <template><view><view style"width:750rpx; height:…

ue5 GAS 从零开始00

技能属性GAS 技能 属性 创建一个项目c 插件搜索 gameplay 保证这里勾选上 把这三个弄上去 “GameplayAbilities”,“GameplayTags”,“GameplayTasks” 这样就加载了三个模块 一定要先关ue 先关掉ue 生成 如果没编过&#xff0c;你就检查模块名字是不是没写对 一定要…

基于SpirngBoot的家电销售管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

Redis之秒杀活动

目录 全局唯一ID&#xff1a; 为什么 count 不可能为 null&#xff1f; 为什么返回值是 timestamp << COUNT_BITS | count&#xff1f; 整体的逻辑 (1) 生成时间戳 (2) 生成序列号 (3) 拼接时间戳和序列号 超卖问题&#xff1a; 基于版本号的乐观锁 CAS思想 …

Linux环境(Ubuntu)上搭建MQTT服务器(EMQX )网络环境部署

支持的 Ubuntu 版本&#xff1a;Ubuntu 22.04(本人使用)、Ubuntu 20.04、Ubuntu 1 下面开始环境搭建&#xff1a; &#xff08;1&#xff09;从github在线地址克隆压缩包&#xff0c;然后进行压缩&#xff08;不好用&#xff09;&#xff0c;在对环境进行依赖包的下载 &…

JavaSE(十五)——认识进程与多线程入门

文章目录 认识进程进程的概念进程的特性进程的状态进程的优先级进程的描述进程的调度 并发与并行认识线程线程的概念Java中线程的表示认识Thread类线程的创建 线程的控制和管理线程启动-start()线程休眠-sleep()线程中断-interrupt()线程插队-join()线程让步-yield() 线程的状态…