postman 自动化测试

postman 自动化测试

  • 0、写在前面
  • 1、变量引用
    • 1.1、如何在请求体中引用变量
  • 2、变量设置
    • 2.1、测试需求场景描述:
    • 2.2、postman实战
      • 2.2.1、全局token的处理
      • 2.2.2、接口1的处理
      • 2.2.3、接口2的处理
      • 2.2.4、接口3的处理
  • 3、测试结果展示

0、写在前面

在有些时候看官方文档 比网上搜索效率要高,
比如网上搜一通还是不知道用法或者没有搜索到你想要的用法的时候。
postman官方文档 : https://learning.postman.com/docs/introduction/overview/

1、变量引用

1.1、如何在请求体中引用变量

打开官方文档 在右上角搜索框搜索variables

在这里插入图片描述

点击搜索结果中的 Using variables

在这里插入图片描述

在请求体中这样引用变量 { “customer_id” : “{{cust_id}}” }

在这里插入图片描述

2、变量设置

2.1、测试需求场景描述:

一款软件提供了1 2 3 三个接口供调用,为了验证接口功能,需要对三个接口测试进行软件功能验证。
而这三个接口需要顺序调用,原因是后面的接口依赖前面接口的响应结果 作为输入。

接口1需要token作为请求头,token为时间戳,响应体是一个url, 这个url作为接口2的请求体。
接口2响应体是一个字符串, 这个字符串作为接口3的请求体。
接口3需要获取接口2的字符串响应体+token 拼接成一个url,这个url便是这个软件接口调用的最后结果,通过这个url即可以刚问到特定的资源。
接口1、2、3都需要token作为请求头。

分析以上测试需求,
1、token是3个接口都需要的请求头,因此需要在每个接口执行前要自动获取到时间戳作为请求头,不然每个接口请求前都需要手工获取时间戳作为请求体
2、接口2执行前需要自动获取到接口1的响应体url作为请求体,因此需要在接口1执行完毕后,把响应体url设置为全局变量,这样接口2的请求体里卖弄就可以直接引用这个变量,实现自动化。
接口3同理,需要接口3执行完毕后,把响应体字符串,设置为全局变量,这样在接口3执行前这个字符串全部变量就已经存在了,可直接供接口3的请求体引用。
3、接口3需要进行一次变量拼接,要求能在接口3执行完毕后,自动化拼接这个url,并且通过日志可视化输出。这样我们就可以直接复制这个拼接的url,直接粘贴到浏览器地址栏进行资源访问。

2.2、postman实战

新建1个collection 名称是test-httpApi,含有接口1、2、3
在这里插入图片描述

2.2.1、全局token的处理

接口1、2、3都需要token作为请求头。因此需要在每个接口执行前要自动获取到时间戳作为请求头,不然每个接口请求前都需要手工获取时间戳作为请求体

这个需求通过collection的Pre-request Script 实现。collection的Pre-request Script 会在此collection下的每个接口执行前都会执行,因此满足当前这个需求。

var currentTimeStamp=new Date().getTime();
console.log("currentTimeStamp is :"+currentTimeStamp);
pm.globals.set("Auth-Token",currentTimeStamp);

在这里插入图片描述

2.2.2、接口1的处理

首先是引用collection设置的全局变量Auth-Token

在这里插入图片描述

第二步是接口1执行完毕后 需要把响应体中的url设置为全局变量。
这个需求通过接口1的test脚本实现,在test脚本中设置url全局变量uploadURL。

var jsondata=JSON.parse(responseBody);
var uploadURL=jsondata.data.location.url;
console.log("uploadURL is :"+uploadURL);
pm.globals.set("uploadURL",uploadURL);

在这里插入图片描述

2.2.3、接口2的处理

首先是引用collection设置的全局变量Auth-Token
在这里插入图片描述

第二步是引用接口1执行完毕后设置的全局变量uploadURL 作为请求体。

在这里插入图片描述

第三步是接口2执行完毕后 需要把响应体中的字符串设置为全局变量。
这个需求通过接口2的test脚本实现,在test脚本中设置字符串全局变量string。

var jsondata=JSON.parse(responseBody);
var string=jsondata.data;
console.log("string is :"+string);
pm.globals.set("string",string)

在这里插入图片描述

2.2.4、接口3的处理

首先是引用collection设置的全局变量Auth-Token

在这里插入图片描述

第二步是引用接口2执行完毕后设置的全局变量string 作为请求体。

在这里插入图片描述

第三步是 获取接口2的字符串响应体+token 拼接成一个url,这个url便是这个软件接口调用的最后结果,通过这个url即可以刚问到特定的资源。

var jsondata=JSON.parse(responseBody);
var string=jsondata.data.string;
var string=pm.globals.get("string");
var token=pm.globals.get("Auth-Token");
var URL="https://192.168.x.x:1000/?token="+token+"&string="+string;
console.log("The final URL is :"+URL);

在这里插入图片描述

3、测试结果展示

在这里插入图片描述

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

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

相关文章

聚焦型光场相机基于立体视差的深度估计原理

聚焦型光场相机可以看作是主透镜将物面成了一个放大或者缩小的虚像,然后每个微透镜阵列对这个经过放大或者缩小的虚像进行二次成像后投影在了ccd平面,其中二次成像的过程可以比拟为一个虚拟阵列相机,利用MLA和主透镜的相关参数就可以以立体视…

Android系统开发-入门篇

参见:[视频教程] 写给应用开发的 Android Framework 教程——玩转 AOSP 篇之 Android 系统开发工具推荐 - 掘金 前置条件: android系统源码位于 linux 服务器,ssh 地址假如为:test172.1.10.2本机为windows 1、本机: 下…

访问Liunx文件系统

访问Liunx文件系统 识别文件系统和设备 存储管理概念 Linux服务器上文件按文件系统层次结构访问。该文件系统层次结构测试由系统可用的存储设备所提供的文件系统组装而来。每个文件系统都是一个已格式化的存储设备,可用于存储文件。 文件系统和挂载点 要让文件系…

【mysql】—— 数据库的操作

序言: 在上篇文章我已经对数据库进行了详细的介绍,接下来我们就将上手学习操作的细节了。本篇文章便带领大家去学习有关库操作的基本知识!!! 目录 (一)库的操作 1、 创建数据库 2、字符集和…

HTML input text 常用事件

前言 用于记录开发中常用到的&#xff0c;快捷开发 简单实例 <input type"text" name"noSecretKeyJson" maxlength"200" />常用事件 oninput &#xff08;在用户输入时触发&#xff09;及案例 案例一&#xff1a;限制只允许输入数字…

C#基础--反射

反射 一、为什么学习反射 因为反射真的是无处不在&#xff0c;ORM、MVC、IOC、AOP、Attribute等等都会使用到反射。反射是程序员的快乐 二、什么是反射 Ilspy&#xff1a;逆向工程&#xff0c;可以吧DLL/Exe文件反编译回来 DLL/EXE 文件下包含Metadata和IL&#xff0c;IL是对…

跨文化合作:如何解决海外网红营销中的文化差异?

随着社交媒体的快速发展&#xff0c;海外网红营销已成为许多品牌和企业获取国际市场的有效方式。然而&#xff0c;由于不同国家和地区存在着独特的文化差异&#xff0c;如语言、价值观、习俗等&#xff0c;这也给品牌进行海外网红营销带来了一系列挑战。本文Nox聚星将和大家探讨…

WPF 自定义控件完成库容表盘显示效果

先看一下显示效果&#xff1a; 需要注意的地方有以下几点&#xff1a; 表盘的刻度分部&#xff0c;长刻度和短刻度显示。在数值80W时&#xff0c;需要更改刻度盘的颜色渐变。在数值80W时&#xff0c;更改库容总数背景的显示&#xff0c;也是颜色渐变。刻度盘控件属性定义&…

JVM中的堆和栈到底存储了什么

JVM数据区 先上一张Java虚拟机运行时数据区中堆、栈以及方法区存储数据的概要图&#xff0c;如下所示&#xff1a; 然后我们来具体解析一下堆和栈 堆 堆是存储时的单位&#xff0c;对于绝大多数应用来说&#xff0c;这块区域是 JVM 所管理的内存中最大的一块。线程共享&#…

JavaScript XHR、Fetch

1 前端数据请求方式 2 Http协议的解析 3 XHR的基本用法 4 XHR的进阶和封装 5 Fetch的使用详解 6 前端文件上传流程 早期的页面都是后端做好&#xff0c;浏览器直接拿到页面展示的&#xff0c;用到的是jsp、asp、php等等的语言。 这个叫做服务器端渲染SSR。 这里后端向前端…

[sqoop]导入数据

一、覆盖导入 例如维度表&#xff0c;每次导入的数据需要覆盖上次导入的数据。 hive-overwrite参数&#xff1a;实现覆盖导入 hive-import参数&#xff1a;表示向hive表导入 hive-table参数&#xff1a;指定目标hive库表 sqoop import \ --connect jdbc:mysql://hadoop1:3…

介绍性能压力测试的重要性

在当今数字化时代&#xff0c;软件和应用程序的性能对于用户体验和业务成功至关重要。为了确保系统在面临高负载和压力时能够正常运行&#xff0c;性能压力测试成为一项不可或缺的活动。本文将介绍性能压力测试的重要性。 性能压力测试是一种通过模拟实际场景中的负荷和用户访问…

前端两种实现轮播图方式

今天研究两种简单实现轮播图功能的方式。 目录 Layui实现轮播图 码云下载 提取静态文件 示例 注意 参数说明 改为轮播图 增加图片资源文件 轮播栏目修改 改为上下切换 切换事件 脚本中绑定改变事件 控制器查看 Swiper实现轮播图 下载swiper 下载到本地 加载sw…

EMC学习笔记(十七)PCB设计中的安规考虑

PCB设计中的安规考虑 1 概述2.安全标识2.1 对安全标示通用准则2.2 电击和能量的危险2.3 PCB上的熔断器2.4 可更换电池 3.爬电距离和电气间隙4.涂覆印制板4.1 PCB板的机械强度4.2 印制电路板的阻燃等级4.3 热循环试验与热老化试验4.4 抗电强度试验4.5 耐划痕试验 5.布线和供电 1…

网络安全(黑客)万字自学笔记

目录 特别声明&#xff1a; 一、前言 二、定义 三、分类 1.白帽黑客&#xff08;White Hat Hacker&#xff09; 2.黑帽黑客&#xff08;Black Hat Hacker&#xff09; 3.灰帽黑客&#xff08;Gray Hat Hacker&#xff09; 四、黑客文化 五、伦理问题 六、黑客的作用 …

shell脚本备份数据库

首先是在本地windows环境下尝试备份数据库 打开mysql的bin目录&#xff0c;然后在地址栏cmd&#xff0c;进入cmd界面&#xff0c;输入mysqldump命令&#xff0c;-u输入用户名&#xff0c;-p输入密码 还有数据库名称&#xff0c;以及后面要保存到的位置 mysqldump -uroot -p tes…

编写测试用例的方法,这个是真的很好用

大家测试过程中经常用的等价类划分、边界值分析、场景法等&#xff0c;并不能覆盖所有的需求&#xff0c;我们之前讲过很少用到的因果图法&#xff0c;下面就来讲另一种不经常用到但又非常重要的测试用例编写方法——测试大纲法。 测试大纲法适用于有多个窗口&#xff0c;每个…

Vue-Router相关理解4

两个新的生命周期钩子 activated和deactivated是路由组件所独有的两个钩子&#xff0c;用于捕获路由组件的激活状态具体使用 activated路由组件被激活时触发 deactivated路由组件失活时触发 src/pages/News.vue <template><ul><li :style"{opacity}&qu…

linux之Ubuntu系列(五)用户管理、查看用户信息 终端命令

创建用户 、删除用户、修改其他用户密码的终端命令都需要通过 sudo 执行 创建用户 设置密码 删除用户 sudo useradd -m -g 组名 新建用户名 添加新用户 -m&#xff1a;自动建立用户 家目录 -g&#xff1a;指定用户所在的组。否则会建立一个和用户同名的组 设置新增用户的密码&…

尝试-InsCode Stable Diffusion 美图活动一期

一、 Stable Diffusion 模型在线使用地址&#xff1a; https://inscode.csdn.net/inscode/Stable-Diffusion 二、模型相关版本和参数配置&#xff1a; 活动地址 三、图片生成提示词与反向提示词&#xff1a; 提示词&#xff1a;realistic portrait painting of a japanese…