前言:网上看到的比较好的Postman教程,既然已经有了,我就不重复造轮子了,直接copy过来。

资源来源于:米阳MeYoung

Postman 入门1- 安装、变量、代理

简介

Postman 是一款可以方便我们调试、测试API的工具,甚至我们可以通过Postman 与 Newman结合,还可以批量运行API达到API自动化测试的目的。下面都是以当前最新的V7.0.9为例演示。

简单分析:

优点

  1. 上手容易,简单易用
  2. 提供代理,提高API配置是速度
  3. 官方文档齐全,用户众多
  4. 提供多种参数化方式
  5. 等等

不足

  1. 非开源,可扩展性差,部分功能收费
  2. 无法与数据库结合(后期我们通过第三方的方式解决这个问题)
  3. Cases验证方式比较不直观,得通过编写js方式完成
  4. 等等

简单使用:

官方地址:https://www.getpostman.com/

Postman 安装

Postman 主要有两个版本,一种早期版本是Chrome浏览器的一个应用,所以通过Chrome应用商店可以直接找到,并点击安装,如下图

另一种是现在主推的桌面版,根据自己的系统找到对应的版本下载,跟普通软件一样安装便可。

整体界面介绍

Postman 提供了多窗口,多标签的界面。扣除菜单外,大概可以分为4个区域,Header Bar 、Side Bar 、Buider 、Footer Bar。

Header Bar

  • New按钮:创建请求,集合,环境,文档,模拟服务器和监视器。
  • Import按钮 - 支持API集合,环境,数据,WADL,Swagger, RAML, Open API 3.0或cURL等导入Postman。
  • Runner按钮 - 打开批量运行模块
  • Open New图标 - 打开一个新的“tab”,“Postman window ”或“Runner Window”。
  • Workspace菜单 - 打开工作区菜单,您可以在其中查看个人和团队工作区,以及创建和管理工作区。
  • SYNC图标 - 更新Postman帐户的状态。
  • 代理\拦截器图标 - 管理代理或拦截器设置。
  • 设置图标 - 管理邮递员应用程序设置并查找其他支持资源。
  • 通知图标 - 接收通知或广播。
  • 图标 - Tweet about us.
  • 用户下拉列表 - 显示当前用户并提供以下选项:“配置文件”,“帐户设置”,“通知首选项”,“活动会话”和“添加新帐户”。
  • upgrade菜单 - Team 模式还剩余的资源,Team设置等

Side Bar

Postman 侧边栏Collections主要用于管理请求和集合。History 主要用于查看历史记录。

Builder

Postman核心区域,每个请求的相关信息均这边配置。后面细讲。

Footer Bar

  • ShowHide按钮 - 显示或隐藏侧边栏
  • Find按钮 - 全局搜索
  • Postman Console按钮 - 打开Postman的控制台,可以非常便捷查看到每个请求发起后的完整信息
  • Bootcamp按钮 - 训练营可以了解成帮助,可以一步一步教你多种类型的操作
  • Build/Browse选项 - 默认Build,切换到Browse后可以切换到浏览器的方式查看一些信息
  • Two Pane view按钮 - 用于切换Builder的显示方式
  • Keyboard Shortcuts按钮 - 查看快捷键,打开也是设置界面
  • Help&Feedback按钮 - 帮助和反馈相关

Settings

Postman尽量减少必须更改的设置数量,因此我们建立了一些默认设置。但是,考虑到用例的多样性,如果您需要进行调整,那么如下:

  • 在请求中装饰键和值(Trim keys and values in request body): 如果使用表单数据(form-data )或网址编码(url-encoded)模式将数据发送到服务器,将其切换为ON将导致任何参数被装饰。
  • SSL证书验证(SSL certificate verification)(仅限本机应用程序):防止应用程序在发出请求时检查SSL证书的有效性。详细了解管理客户端证书。
  • 语言检测(Language detection): 将此设置为JSON将强制JSON呈现,而不管Content-Type标题的响应。
  • XHR超时(ms):设置应用程序在等待服务器响应之前等待响应的时间。值为0表示无穷大 - Postman将永远等待回复。
  • 编辑器字体大小(Editor Font Size):调整Postman中出现的文本的字体大小(以像素为单位)。
  • 双窗格视图(Two-pane view):在下面或旁边显示请求之间切换。
  • 发送无缓存头(Send no-cache header)(推荐):发送无缓存头,确保从服务器获得最新的响应。
  • 发送Postman令牌header(Send Postman Token header): 这主要用于绕过Chrome中的错误。如果XmlHttpRequest处于待处理状态,并且使用相同的参数发送另一个请求,则Chrome会为其返回相同的响应。发送随机令牌避免了这个问题。这也可以帮助您区分服务器端的请求。
  • 单击链接时保留headers(Retain headers when clicking on links): 如果您单击响应中的链接,Postman会使用该URL创建一个新的GET请求。如果要保留在先前的请求中设置的头文件可以开启“ON”。如果您主要访问受保护的资源,这将非常有用。
  • 自动遵循重定向(Automatically follow redirects): 防止返回300系列响应的请求被自动重定向。
  • 向Postman发送匿名使用数据(Send anonymous usage data to Postman): 选项可禁用向Postman发送基本的匿名使用数据(按钮点击和应用程序事件)。我们使用有用的数据使Postman成为更好的产品。

测试GET类型API

以豆瓣搜索图书API为例

这个接口的请求方式为get,postman默认为就为get,所以在url栏输入被测接口地址

在接口文档中,q与tag其中的一个是必填项,所以这里需要配置参数,点击url右侧的params,并输入参数

点击send按钮发送请求,在下面可以看到返回的response,响应的状态码,与响应时间

response还可以以不同的方式查看,并且还可以看到cookies,headers信息

测试POST类型API

以Postman自带的接口为例

选取请求的方法为POST,并输入接口地址,因为post请求大多是json形式,所以可以打开Body选项,并选择JSON(application/json)形式,输入请求的json,同样其余的操作跟GET接口一样。

除了请求格式为Json外,还有别的请求类型,如我们应用大多常见的(application/x-www-form-urlencoded),如下我们Admin后台的登录,请求类型为x-www-form-urlencoded,那只需要选择x-www-form-urlencoded,并配上相应的参数和值便可。

变量的设置

编写的API往往需要在多个环境下执行,而Postman 提供了两种类型的变量:环境变量和全局变量,从而很好的解决了这个问题。同时变量还常用于关联接口间的参数传递。

环境变量有效范围仅仅在于当前集合可用,全局变量对所有的集合都可用。

环境变量

api可能需要在不同的环境中运行,所以api请求的服务器地址不能写死,希望是可以配置的,创建环境变量有多种方式。

  1. 手工预先创建环境变量

  1. 代码自动创建环境变量
    自动新建环境变量可在两种情况下创建,但是创建方式相同都是用了postman提供的方法:
pm.environment.set("variable_key", "variable_value");
2.1 在某个请求发起之前创建:
在Pre-request Script标签里面添加代码:
 

2.2 在某个请求发起之后创建:

在Tests标签里面添加如下

全局变量

全部变量跟环境变量的创建类似,也可以通过手工预先创建或者通过代码去创建。

  1. 通过手工预先创建

  1. 通过代码创建
    2.1 在请求发起前创建
    在Pre-request Script标签里面添加代码:
pm.globals.set("variable_key", "variable_value");

2.2 在请求发起后创建

在Tests标签里面添加如下:

pm.globals.set("variable_key", "variable_value");

INITIAL VALUE 和 CURRENT VALUE

在默认情况下,设置环境变量和全局变量一个key(VARIABLE)对应两个value(INITIAL VALUE 和 CURRENT VALUE),那这两个有啥区别?

  • INITIAL VALUE :初始值本地脚本运行时不会获取该值,该值主要用处Team模式或者导出变量时设定的默认值
  • CURRENT VALUE :当前值则是实实在在本地脚本运行时使用的变量值,同时通过脚本设置变量时默认也是设置的是这个值。

变量的引用

在需要的地方加上{{变量名}}便可

随机数

PostMan 除了提供环境变量和全局变量外,还提供了三种随机数。

{{$guid}}

:添加一个V4风格GUID

{{$timestamp}}

:将当前的时间戳,精确到秒

{{$randomInt}}

:添加0和1000之间的随机整数

更多的变量

往往内置的变量无法满足我们的测试需求,这时我们还可以通过编写简单的脚本,实现更多定制化的变量配置。这个模块后会专门找个时间讲解演示。


代理\拦截

Postman 提供了两种类型代理。 一种是下图中的Client角色,但Postman设置了代理,这样Postman发起的请求都会先经过Proxy,再到Server 。 还一种是下图的 Proxy角色,Postman拦截client发过来的请求。

拦截

下面以拦截为例子,介绍Postman如果设置成一个代理器,拦截请求从而到达能快速完成一个API配置的目的。但是目前不支持HTTPS协议的抓取。当然如果你系统就是https协议的,你可以用旧版chrome应用版,它是支持的。再或者你可以用fiddler抓包,然后当个导出cURL script,再导入到postman也可以达到快速配置的目的。

  1. 点击proxy,打开Proxy设置,并设置代理端口和抓取的保存位置,截图设置了5555端口,并保存到History.

Filters 用于过滤,URL Contains 用于设置要抓取的URL,Url Does not contain 用于过滤不想抓取到的信息,Methods 用于设置抓取的请求方式。

  1. 设置浏览器或者系统代理,以win 10系统为例子,打开系统 设置代理

  3.打开浏览器,正常请求,会发现这时postman 的history也会捕获到请求。

Postman 既然可以作为代理,同样的也可以抓取移动端IOS、Andorid 的请求,这块的设置这里就不说明,跟fiddler类似,同一个局域网内设置wifi代理。

Postman学习宝典(一)的更多相关文章

  1. Postman学习宝典(三)

    Postman 入门3 - Newman Newman 官方帮助文档地址 Newman 安装 嗯,它需要安装,因为它不是音乐播放器!Newman是为Postman而生,专门用来运行Postman编写好 ...

  2. Postman学习宝典(二)

    文章来源于:米阳MeYoung Postman 入门2 - Script.Runner 上次Postman 入门1 我们介绍全局变量和环境变量时已经使用过Tests 和 pre-request scr ...

  3. 爱了,字节跳动大神最佳整理:582页Android NDK七大模块学习宝典,理论与实践

    前言 时至今日,短视频App可谓是如日中天,一片兴兴向荣.随着短视频的兴起,音视频开发也越来越受到重视,而且薪资水涨船高,以一线城市为例,音视频工程开发的薪资比Android应用层开发高出40%. 但 ...

  4. Python学习宝典,Python400集让你成为从零基础到手写神经网络的Python大神

    当您学完Python,你学到了什么? 开发网站! 或者, 基础语法要点.函数.面向对象编程.调试.IO编程.进程与线程.正则表达式... 当你学完Python,你可以干什么? 当程序员! 或者, 手写 ...

  5. postman学习总结

    从网上各处学习总结,会有不足之处,后期不断补充中... 一.get\post请求参数 1.get类型 (1)选择请求方式GET (2)输入完整的URL (3)在param中填写参数,点击send发送请 ...

  6. Postman学习之Authorization

    前言:本章将学习Postman当中的授权——Authorization 一.简介 Authorization顾名思义就是授权的意思,那是给谁授权呢?又有多少种授权的方式呢?Authorization是 ...

  7. postman学习笔记(一)——最简单的postman入门

    昨天开始正式接触postman的操作,最简单的操作是根据接口文档一个个测试接口. 例如: 测试环境地址:http://111.2.198.4(项目组自己的测试环境,要测试的项目组肯定会给你的) //以 ...

  8. Postman学习之【压力测试】

    Postman请自行下载 下面是在网上随便抓了一个请求地址来做演示,把请求地址填入地址栏,此请求为GET请求.点击Send发送请求,请求结果将会在下方显示出来.每次的请求历史数据,会被记录下来,但是经 ...

  9. 接口测试——带token请求post接口(postman学习)

    今天遇到一个接口,是添加备注的,post类型,访问参数中需要带上token才行,我在header 中直接加token参数,接口总返回 403,请登陆 1.考虑yapi接口平台集成的是postman的接 ...

随机推荐

  1. pytorch Dataset数据集和Dataloader迭代数据集

    import torch from torch.utils.data import Dataset,DataLoader class SmsDataset(Dataset): def __init__ ...

  2. xpath爬虫实战-爬取小说斗罗大陆第四部

    爬取思路 用到的第三方库文件 lxml,requests,fake_agent 用fake_agent里的UserAgent修饰爬虫 用requests进行基本的请求 用lxml进行html的分析 用 ...

  3. PHPSTORM快捷键On Mac

    Command+Shift+O快捷定位文件,需要输入文件名称 Command+鼠标左键点击方法,快捷转到方法实现 Command+Option+方向左键,快捷返回上一步跳转方法之前 Shift+F6统 ...

  4. [http 1.1] M-POST w3

    5. Mandatory HTTP Requests An HTTP request is called a mandatory request if it includes at least one ...

  5. Inno Setup [Run] Section 双引号嵌套

    https://stackoverflow.com/questions/26257808/inno-setup-how-to-run-a-code-procedure-in-run-section-o ...

  6. 在Spring Boot中使用内存数据库

    文章目录 H2数据库 HSQLDB Apache Derby SQLite 在Spring Boot中使用内存数据库 所谓内存数据库就是可以在内存中运行的数据库,不需要将数据存储在文件系统中,但是相对 ...

  7. XEP-0198:流管理

    ------------恢复内容开始------------ 原文来自:https://xmpp.org/extensions/xep-0198.html,只翻译了技术方面的内容. 摘要:这个规范定义 ...

  8. 用三维的视角理解二维世界:完美解释meshgrid函数,三维曲面,等高线,看完你就懂了。...

    完美解释meshgrid函数,三维曲面,等高线 #用三维的视角理解二维世界 #完美解释meshgrid函数,三维曲面,等高线 import numpy as np import matplotlib. ...

  9. Spring Developer Tools 源码分析:三、重启自动配置'

    接上文 Spring Developer Tools 源码分析:二.类路径监控,接下来看看前面提到的这些类是如何配置,如何启动的. spring-boot-devtools 使用了 Spring Bo ...

  10. 如何在 Amazon AWS 上设置一台 Linux 服务器

    摘要: AWS(Amazon Web Services)是全球领先的云服务器提供商之一.你可以使用 AWS 平台在一分钟内设置完服务器.在 AWS 上,你可以微调服务器的许多技术细节,如 CPU 数量 ...