Postman操作基本教程

2023-05-16

一:  基本介绍:

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件

Postman背景介绍

用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。今天给大家介绍的这款网页调试工具不仅可以调试简单的css、html、脚本等简单的网页基本信息,它还可以发送几乎所有类型的HTTP请求!Postman在发送网络HTTP请求方面可以说是Chrome插件类产品中的代表产品之一。

Postman的操作环境

postman适用于不同的操作系统,Postman Mac、Windows X32、Windows X64、Linux系统,还支持postman 浏览器扩展程序、postman chrome应用程序等。

Postman重要提示:

由于2018年初chrome停止对chrome应用程序的支持,你的postman插件可能无法正常使用了。目前chrome应用商店能使用的就是chrome扩展程序和主题背景。

在这里建议大家直接下载它的应用程序进行使用

贴上官网下载地址:Postman | Download Postman App

记得选择下载的版本(剩下的默认安装即可,无需其他配置,默认一步到位安装)

二: 基本操作讲解:

成功进入postman页面后,接下来我们正式进行postman的系统教程吧


设置postman主题

右上角的设置里可以设置postman的主题

 

这里,出于个人习惯,我把它设置成了黑色


postman基础功能介绍

首先,看一下它的基础功能:

 

collection在postman里面相当于一个文件夹,可以把同一个项目的请求放在一个Collection里方便管理和分享,Collection里面也可以再建文件夹。这里我们做一个普通接口的简单的示例:

 

新建一个文件夹

 

创建一个文件集

 

新建一个请求

给这接口明明为查询上海天气并保存

 

点击该请求,现在是空白的

 

输入一个get请求,params里会自动显示参数

该请求是聚合数据提供的一个查询天气的接口,大概还有几百次的次数可以用:

http://v.juhe.cn/weather/index?format=2&cityname=南京&key=64aa04d276d1ed4fd5a147d97e16b87e

点击send,查询成功

成功查询到上海天气

这样就完成了一次简单的天气查询接口的请求

 


请求区域介绍

    Authorization:身份验证,主要用来填写用户名密码,以及一些验签字段,postman有一个helpers可以帮助我们简化一些重复和复杂的任务。当前的一套helpers可以帮助你解决一些authentication protocols的问题。;

2    Headers:请求的头部信息

3    Body:post请求时必须要带的参数,里面放一些key-value键值对

4    Pre-requerst Script:可以让你在 请求之前自定义请求数据,这个运行在请求之前,语法使用JavaScript语句。

5    tests:tests标签功能比较强大,通常用来写测试,它是运行在请求之后。支持JavaScript语法。postman每次执行request的时候,会执行tests。测试结果会在tests的tab上面显示一个通过的数量以及对错情况。这个后面会进行详解,它也可以用来设计用例,比如要测试返回结果是否含有某一字符串

6    form-data:,它将表单数据处理为一条消息,以标签为单元,用分隔符分开。既可以单独上传键值对,也可以直接上传文件(当上传字段是文件时,会有Content-Type来说明文件类型,但该文件不会作为历史保存,只能在每次需要发送请求的时候,重新添加文件。);post请求里较常用的一种

上传文件

7    x-www-form-urlencoded:对应信息头-application/x-www-from-urlencoded,会将表单内的数据转换为键值对;

8    raw:可以上传任意类型的文本,比如text、json、xml等,所有填写的text都会随着请求发送;

9    binary:对应信息头-Content-Type:application/octet-stream,只能上传二进制文件,且没有键值对,一次只能上传一个文件, 也不能保存历史,每次选择文件,提交;


导出和导入接口集:

postman支持非常方便的导入和导出接口集,继续操作如下:

 

导出

 

 

 

数据一般以postman_collection.json结尾

 

导入:

 

 

 

为了区分,我把他们名称改了

ok,这样就是简单的导入导出collection集合

 


关于设置环境变量:

 

1. Global---全局

2. Enviroment --- 环境变量

3. Local --- 局部

4. Data ---- 数据

优先级从高到底 Data ---- > Local ---- > Enviroment ---- > Global

 

postman支持很方便的设置环境变量以及全局变量,并可以一键切换不同环境

 

1:可以一键切换环境,选择No Environment则不使用环境变量,仅适用全局变量

2:可以查看当前环境中的变量和全局变量(Globals)的值

 

3.进入设置页面

 

如新建一套环境dome

 

选择我们刚才创建的环境,点击眼睛可以看到我们设置的变量值

创建环境变量能够很方便的调取我们所需的数据

 


将返回值的某个数据设置为环境变量

在某些时候,我们需要获取到一个变量,并保存下来,因为在后面我们会使用到。比如token,sign等信息

这时候就需要用到tests区域了,使用其强大的js语法

下面是一个简单的将返回值的某个数据设置为环境变量或者全局变量的介绍:

 

定义一个xxx,获取body中返回的所有参数,并转化为JSON格式 var xxx = JSON.parse(responseBody);

//把json字符串转化为对象。parse()会进行json格式的检查是一个安全的函数, 如:检查json中某个数组元素的个数(这里检测programs的长度)

var data = JSON.parse(responseBody);tests["program's lenght"] = data.programs.length === 5;

 

将返回中的值设置为一个环境变量 pm.environment.set("key",xxx.data.value);或者postman.setEnvironmentVariable("key", "value");

将返回中的值设置为一个全局变量,        pm.globals.set("key",xxx.data.value);或者postman.setGlobalVariable("key", "value");

//注意:Global后面不能加S,value值一定要指定到某个具体节点

 

实际操作一下:

一个微信登录的接口token值获取

 

这是一个微信登录的接口,属于post方法,里面的必须参数是unionid,这里我已经把unionid填在body里了,点击send下面可以得到一个token

该登录token每次请求的值都是不一样的,属于一个动态值。而后面我们的所有接口请求都需要这个token,现在就可以使用tests将它放置在环境变量里

 

var acquiretoken = JSON.parse(responseBody);

//定义一个acquiretoken方法(获取token),把responseBody转为json字符串

pm.environment.set("token",acquiretoken.data.token);

//将token变量放置到当前环境变量里去

 

再次执行send后,点击右上角小眼睛

 

发现变量就储存在了dome的环境变量里,每次点击send进行请求,发现环境变量里token都会随着结果变化而变化。

同理,全局变量统一可以这样设置

在设置过变量后,调用变量的时候,在postman里也比较方便,直接使用{{变量名}}就可以了,

加入我们在body里需要一个token值,那么我们可以直接在引用在环境变量里储存的token,例如:

 

引用变量的时候会有一定的提示

 

变颜色代表引入变量成功

上面的效果和下面这种把一点点输入的的效果是一样的!

 


其他的常用tests方法:

在postman里,内置了一些常用的方法:

 

可以很方便的调用

下面我也整理了一些常用的tests方法,分享给大家

 

 

测试response Headers中的某个元素是否存在 tests["元素Content-Type是否存在"] = postman.getResponseHeader("Content-Type");

//getResponseHeader()方法会返回header的值;

 

定义一个xxx,获取headers值 var.xxx = postman.getResponseHeader("key");

将Headers中的值设置为一个环境变量 postman.setEnvironmentVariable("key",xxx);或者pm.environment.set("key",xxx);

 

 

检查response的code值是否为200 tests["Status code is 200"] = responseCode.code === 200;

// tests["Status code is 200"]中的tests是一个内置对象,

tests["Status code is 200"]是指为这个断言起个名称叫”Status code is 200”,这个名称可以自行修改。

responseCode.code === 200中的responseCode是内置对象,responseCode对象中有个属性是code,是指HTTP状态码的code,判断code是否为200.

综合起来,这句代码的意思是:名称为”Status code is 200”的断言中,判断responseCode对象的code属性值(HTTP状态码)是否为200。

 

检查response的body中是否包含字符串 tests["Body matches string"] = responseBody.has("type");

// tests["Body matches string"]中的tests是一个内置对象,

tests["Body matches string"]是指为这个断言起个名称叫”Body matches string”,这个名称可以自行修改。

这句代码的意思是:名称为”Body matches string”的断言中判断响应正文中是否包含:type这个字段。type无论是key或者value,只要匹配就可以。多个类型可用“,”分割。

 

检查Response Body是否等于字符串 tests["测试点"] = responseBody === "Response Body返回的内容";

//这个可以用在接口返回内容为纯字符串时,直接检查整个返回结果的正确性

 

检查Response time 是否小于200ms tests["Response time 小于200毫秒"] = responseTime < 200;

 

检查Response time 是否大于200ms tests["Response time 大于200毫秒"] = responseTime > 200;

 

postman.setNextRequest('Request 4')

// postman.setNextRequest()是一个带有一个参数的函数,它是接下来要运行的请求的名称或ID。往往用来跳转至某个接口,只在运行该集合时有用,单独运行无效

 

 var jsonObject = xml2Json(responseBody);

//转换XML body为JSON对象

 

设置一个随机数变量 pm.globals.set("type",parseInt(4*Math.random())+1);

//针对不同类型的课程类型,设置一个1到4的随机整数,字段名是type,parselnt 是强制转换为整数

 

校验接口返回是否有数据 tests["获取第一个结果"] = xxx.content.jieguo[0];

//我的程序设置的是如果当前没有数据,则只返回content[],所以这句断言可以校验,如果content里还有数据,则视为返回不为空

 


使用postman进行接口自动化测试

没错,使用postman也可以进行接口自动化的,是不是很神奇

首先,既然是自动化测试,那么我们肯定需要工具 (Postman) 或者代码能帮我们直接判断结果是否符合预期。那么在接口测试上,大体就两个思路:

判断请求返回的 code 是否符合预期

判断请求返回的内容中是否包含预期的内容(关键字)

接下来我们看看如何利用 Postman 来解决上述的问题

--------------------

 

这是三个模拟天气的接口集合,点击扩展按钮,找到RUN,进入

 

 

这里我们先简单运行一次:

 

发现,运行成功。里面我每个接口都写了两个tests进行校验字段,所以上面一共有6条tests测试点被测试到,并且是成功的

每个接口里的tests数据如下:

当然,如果想要每次运行不一样的数据,我们需要其他的方法,比如,使用pre-requestScprit功能,导入或者生成随机数据进行测试,这个后续我再进行讲解
 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Postman操作基本教程 的相关文章

随机推荐

  • ORB-SLAM2中关键知识点总结

    目录 1 ORB SLAM2的总体框架是怎样的 xff1f 2 ORB SLAM2是怎样完成初始化的 xff1f 3 ORB SLAM2是如何进行Tracking的 xff1f 4 ORB SLAM2是如何选取关键帧的 xff1f 5 OR
  • RS485知识点

    为什么RS485空闲时的电平要求大于 43 200mv 这不是很容易被接收端接收吗 xff1f a 其实 xff0c 如果RS485的AB线空闲电平如果小于 43 200mv xff0c 485芯片的输出不定 xff0c 有些芯片会输出高
  • 两种点云地面去除方法

    目录 1 基于角度分割的地面 非地面分割 1 1 PCL基本入门 1 1 1 在ROS项目中引入PCL库 1 2 编写节点进行Voxel Grid Filter 1 2 1 验证效果 1 3 点云地面过滤 1 3 1 点云剪裁和过滤 去除过
  • ROS面试题汇总

    1 ROS中订阅 xff08 Subscribe xff09 最新消息以及消息队列相关问题 机器人应用中难免会遇到运算起来很费时间的操作 xff0c 比如图像的特征提取 点云的匹配等等 有时候 xff0c 不可避免地 xff0c 我们需要在
  • VINS-Mono后端知识点汇总

    processImage xff1a 每帧都干了什么 谁是Featureanager xff1a 维护路标点与图像 后端干了啥 xff1a 详解因子图 xff08 视觉的因子图 IMU的因子图 因子图和Hessian矩阵的关系 xff09
  • VINS-Mono学习(二)——松耦合初始化

    初始化 xff1a 如何当好一个红娘 xff1f 图解SfM 视觉和IMU的羁绊 怎么知道发生了闭环 xff1f 位姿图优化与滑窗优化都为哪般 xff1f 闭环优化 xff1a 拉扯橡皮条 整体初始化流程如下 xff1a 1 SFM纯视觉估
  • VINS知识点汇总

    0 总体框架 包括5个部分 xff1a 数据预处理 初始化 后端非线性优化 闭环检测 位姿图优化 图片来自大佬博客 xff1a https blog csdn net try again later article details 1048
  • 语义SLAM综述

    1 摘要 SLAM技术在计算机视觉和机器人领域中占有重要低位 传统的SLAM框架采用了较强的静态世界假设 xff0c 便于分析 大多基于小区域静态环境 在大规模的动态环境下 xff0c 它们大多难以获得较好的性能 xff0c 系统的准确性
  • VINS-Mono学习(三)——基于滑动窗口的VIO紧耦合后端非线性优化

    nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 初始化后 采用基于滑动窗口的紧耦合单目VIO进行状态估计 首先来看VINS Mono后端的整体思路 nbsp nbsp nbsp nbsp nbsp nbsp
  • VINS-Mono学习(五)——闭环优化4DoF

    这里再重写一边VINS开启的新线程 xff1a 前端图像跟踪后端非线性优化闭环检测闭环优化 闭环优化是跟在闭环检测之后步骤 首先回顾闭环检测的过程 xff1a 1 pose graph node cpp开启process闭环检测线程 xff
  • C语言预定义跟踪调试

    标准C语言预处理要求定义某些对象宏 xff0c 每个预定义宏的名称一两个下划线字符开头和结尾 xff0c 这些预定义宏不能被取消定义 xff08 undef xff09 或由编程人员重新定义 下面预定义宏表 xff0c 被我抄了下来 LIN
  • 链式存储

    1 特点 线性表的链式存储结构的特点是用一组任意的存储单元存储线性表的数据元素 xff0c 这组存储单元可以是连续的 xff0c 也可以是不连续的这就意味着 xff0c 这些数据元素可以存在内存未被占用的任意位置 2 结点是什么 在数据结构
  • ROS驱动包无法连接A2M7雷达解决办法

    我在使用A2M7雷达时 xff0c 波特率是256000 xff0c 之前驱动跑A2M6和A2M8雷达时 xff0c 波特率115200 xff0c 都可以使用 xff0c 现在跑M7就不行 xff0c 显示无法绑定到串口 xff0c 刚开
  • FreeRTOS prvTaskExitError 创建任务错误

    文件port c prvTaskExitError 任务退出错误 xff0c 一个可能在任务里面写了return xff0c 另一个可能任务切换退出问题 xff0c 入栈和出栈的时候出了问题 1 static void prvTaskExi
  • Ubuntu18.04下VSCode环境编写Linux相关驱动程序时出现未定义标识符问题

    Ubuntu18 04下VSCode环境编写Linux相关驱动程序时出现未定义标识符问题 编译Linux相关驱动程序时 xff0c 出现未定义标识符问题 但是ctrl 43 鼠标左键可以找到相关定义 这是因为没有加载对应Linux内核中头文
  • postman基础使用教程

    Postman教程大全 简书 推荐一款接口测试工具 xff01 POSTMAN xff01 简单来说 xff0c 四个词 xff0c 简单实用大方美观 xff01 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插
  • Make、Makefile、CMake和CMakeLists

    一 Make 在 认识编译器和C C 43 43 编译 一文中介绍过 xff0c 一个 c cpp 文件从源文件到目标文件的过程叫做编译 xff0c 但是一个项目中不可能只存在一个文件 xff0c 这就涉及到多个文件的编译问题 xff0c
  • C++将类写在头文件中

    比如有个类ABC要在main cpp内使用 xff0c 创建两个文件 ABC h xff0c ABC cpp 把类的声明都写在h里面 xff0c 方法的实现写在cpp里面 xff0c 然后在main cpp内 include ABC h x
  • ubuntu搭建一个简单的http服务器

    使用ubuntu搭建一个简单的http服务器 安装apache2 1 sudo apt get update 2 sudo apt get install apache2 安装成功后 xff0c 再 etc apache2目录可见其配置文件
  • Postman操作基本教程

    一 xff1a 基本介绍 xff1a Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件 Postman背景介绍 用户在开发或者调试网络程序或者是网页B S模式的程序的时候是需要一些方法来跟踪网页请求的 xff0