zoukankan      html  css  js  c++  java
  • Postman学习宝典(一)

    前言:网上看到的比较好的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代理。

  • 相关阅读:
    如何使用EF?
    在一般处理程序中使用session
    C# base64 加密解密
    C#操作WMI文章汇总
    ASP.NET图片防盗链(使用一般处理程序)
    前台生成验证码
    .正则
    iframe标签的初试
    sqli-labs5-10(全程sqlmap)
    sql注入文件写入和读取
  • 原文地址:https://www.cnblogs.com/qinlangsky/p/11908162.html
Copyright © 2011-2022 走看看