一 简介 Postman 是一款功能超级强大的用于发送 HTTP 请求的 Chrome插件 。做web页面开发和测试的人员应该是无人不晓无人不用!其主要特点 特点: 创建 + 测试:创建和发送任何的HTTP请求

一 简介

Postman是一款功能超级强大的用于发送 HTTP 请求的 Chrome插件 。做web页面开发和测试的人员应该是无人不晓无人不用!其主要特点特点:

创建 + 测试:创建和发送任何的HTTP请求,请求可以保存到历史中再次执行

Organize:使用Postman Collections为更有效的测试及集成工作流管理和组织APIs

document:依据你创建的Clollections自动生成API文档,并将其发布成规范的格式

collarorate:通过同步连接你的team和你的api,以及权限控制,API库

准备

2. 设置环境变量

有时需要在不同的环境下跑相同的测试,此时可以通过设置环境变量来动态选择。点击右上角的设置按钮:

填写该环境的名称:如测试环境,并在key和value中填写需要的键值

使用这些键值的时候只需要加上两个花括号引用key

1 {{url_base}}/username

解析完后

建立多个环境时,key通常都是相同的,只是value不同

创建好所有环境后,在跑用例的时候在右上角下拉列表选择需要的环境就好

二 请求

postman界面分为两部分:左边的sidebar 右边的request builder:快速创建几乎所有的请求

HTTP请求的4部分:URL,请求的method,headers,body。

URL

首先需要设置的就是URL

注意:如果在输入参数时,没有自动decode到URL中,则可以选中参数右键后,选择EncodeURIComponent(一般都会自动填充的):

同样也可以decode,将参数生成dictionary的形式(一般都会自动填充的):

有的URL中有path变量,postman可以自动提取该path变量为一个key

点击headers toggle:

输入key-value时,会有自动提示的下拉面板:

有些headers和cookies是保密的,如:

1.Accept-Charset

2.Accept-Encoding

3.Access-Control-Request-Headers

4.Access-Control-Request-Method

5.Connection

6.Content-Length

7.Cookie

8.Cookie 2

9.Content-Transfer-Encoding

10.Date

11.Expect

12.Host

13.Keep-Alive

14.Origin

15.Referer

16.TE

17.Trailer

18.Transfer-Encoding

19.Upgrade

20.User-Agent

21.Via

postman 0.9.6版本后,这些限制可以解除:

点击右上角的Interceptor 安装这个:

cookies

分开打包的应用程序运行在沙箱浏览器,它不能访问cookie设置浏览器内。这种限制也可以使用拦截器扩展。

Method

Request body

不同的body editor 分为4个区域,根据body类型有不同的控制。

mutipart/form-data是网页表单用来传输数据的默认格式。可以模拟填写表单,并且提交表单。

可以上传一个文件作为key的value提交(如上传文件)。但该文件不会作为历史保存,只能在每次需要发送请求的时候,重新添加文件。

2 urlencoded

同前面一样,注意,你不能上传文件通过这个编码模式。

该模式和表单模式会容易混淆。urlencoded中的key-value会写入URL,form-data模式的key-value不明显写入URL,而是直接提交。

3 raw

raw request可以包含任何东西。所有填写的text都会随着请求发送。

4 binary

image, audio or video files.text files 。 也不能保存历史,每次选择文件,提交。

三 响应

保证API响应的正确性,就是你需要做的大部分工作。postman的response viewer部分会协助你完成该工作且使其变得简单。

一个API的响应包含body,headers,响应状态码。postman将body和headers放在不同的tabs中。响应码和响应时间显示在tabs的旁边。将鼠标悬停在响应码上面可以查看更详细的信息。

1 保存responses

2 查看responses

三种视图查看body:

Pretty

格式化了JSON和XML,方便查看。 点击里面的URL,postman会创建一个request:

点击左边的三角可以折叠展开:

postman自动格式化body必须保证返回了正确的Content-Type.如果API没有返回,则可以点击”Force JSON“来设置。

Raw

是text。

preview

有的浏览器会返回HTML的错误,对于找问题比较方便。由于sandbox的限制,js和图片不会显示在这里的iframe中。你可以maximize该body窗口方便查看结果。

Headers key-value形式展示。鼠标悬停在headers标签上,有详细的HTTP说明。

cookies

可以显示browser cookies,需要开启Interceptor。

身份验证Authentication

postman有一个helpers可以帮助我们简化一些重复和复杂的任务。当前的一套helpers可以帮助你解决一些authentication protocols的问题。

Basic Auth

填写用户名和密码,点击Refresh headers

Digest Auth

要比Basic Auth复杂的多。使用当前填写的值生成authorization header。所以在生成header之前要确保设置的正确性。如果当前的header已经存在,postman会移除之前的header。

OAuth 1.0a

postman的OAuth helper让你签署支持OAuth 1.0基于身份验证的请求。OAuth不用获取access token,你需要去API提供者获取的。OAuth 1.0可以在header或者查询参数中设置value。

OAuth 2.0

postman支持获得OAuth 2.0 token并添加到requests中。

四 Writting Test

Postman的Tests标签可以用来写测试:

本质上是javascript code,可以为tests object设置values。这里使用描述性文字作为key,检验body中的各种情况,当然你可以创建任意多的key,这取决于你需要测试多少点。 tests也会随着request保存到collection中。api测试保证前端后台都能正常的于api协作工作,而不用在出错时猜测是哪里的问题。 需要在request的test中创建了test后,再进行request,test的结果在body的test中查看。 注意: 1.这里的key描述必须是唯一的,否则相同描述只会执行第一个。 2.这里的key可以使用中文。 例子: tests[“Body contains user_id”] = responseBody.has(“user_id”)

这里描述性的key为:Body contains user_id。检测点为:responseBody.has(“user_id”),意思是检测返回的body中是否包含”user_id”这个字段。

查看responses中的Tests结果:记过显示每个key,也就是我们测试点的具体结果,是否通过。

Testing Sandbox

postman的测试是运行在沙箱环境,是与app独立的。查看什么在沙箱中是可用的,参见Sandbox documentation.

Snippets

用于快速添加常用的测试代码。可以自定义snippets。

Viewing results

postman每次执行request的时候,会执行tests。测试结果会在tests的tab上面显示一个通过的数量。

Testing Sandbox

Testing examples

测试代码会在发送request并且接收到responses后执行。

1.设置环境变量 postman.setEnvironmentVariable("key", "value");

2.设置全局变量 postman.setGlobalVariable("key", "value");

3.检查response body中是否包含某个string tests["Body matches string"] =responseBody.has

("string_you_want_to_search");

4.检测JSON中的某个值是否等于预期的值

var data = JSON.parse(responseBody);tests["Your test name"] = data.value === 100;

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

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

5.转换XML body为JSON对象 var jsonObject = xml2Json(responseBody);

6.检查response body是否与某个string相等 tests["Body is correct"] = responseBody === "response_body_string";

7.测试response Headers中的某个元素是否存在(如:Content-Type)

tests["Content-Type is present"] = postman.getResponseHeader("Content-Type"); //getResponseHeader()方法会返回header的值,如果该值存在

或者:

tests["Content-Type is present"] = responseHeaders.hasOwnProperty("Content-Type");

上面的方法,不区分大小写。下面的方法,要区分大小写。

8.验证Status code的值 tests["Status code is 200"] = responseCode.code === 200;

9.验证Response time是否小于某个值 tests["Response time is less than 200ms"] = responseTime < 200;

10.name是否包含某个值 tests["Status code name has string"] = responseCode.name.has("Created");

11.POST 请求的状态响应码是否是某个值 tests["Successful POST request"] = responseCode.code === 201 || responseCode.code === 202;

12.很小的JSON数据验证器

var schema = { "items": { "type": "boolean" }};var data1 = [true, false];var data2 = [true, 123];console.log(tv4.error);tests["Valid Data1"] = tv4.validate(data1, schema);tests["Valid Data2"] = tv4.validate(data2, schema);

结果:

五 运行Collections

postman允许你运行collection,你可以运行任意的次数。 最后会给出一个整体运行的结果。会保存每一次运行的结果,提供给你比较每一次运行解雇的不同。

选择collection,选择环境。点击运行按钮。

postman响应html,postman的使用方法详解!最全面的教程相关推荐

  1. zbb20180930 Postman 使用方法详解

    Postman 使用方法详解   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/fxbin123/article/details/80428216 ...

  2. Postman 使用方法详解

    原创 Postman 使用方法详解 2019-07-21 23:28:42 痴乙 阅读数 494053更多 分类专栏: postman 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版 ...

  3. postman linux 使用教程,Postman 使用方法详解

    一.Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具.今天给大家介 ...

  4. Response响应方法详解

    Response: 响应:服务器把请求的处理结果告知客户端.在B/S架构中,响应就是把结果带回浏览器. 响应对象:在项目中用于发送响应的对象 常用状态码: 状态码 说明 200 执行成功 302 它和 ...

  5. tgp饥荒 服务器无响应,饥荒TGP版常见运行问题有哪些_TGP版礼包领取及邀请添加好友方法详解_快吧单机游戏...

    <饥荒>TGP版常见运行问题有哪些呢,玩家们是不是很想知道呢?下面小编为玩家们带来了<饥荒>TGP版礼包领取及邀请添加好友方法详解,还不知道的玩家快来看看吧. 1.皮肤礼包如何 ...

  6. 王者外服服务器为响应,王者荣耀外服叫什么 外服版进入方法详解[多图]

    王者荣耀不仅在中国非常火爆,同时在国外也有一大批忠实玩家,不少国内的小伙伴都想在外服和外国人一起玩玩,却不知道外服该怎么进,今天安族小编就带大家来看看外服版进入方法详解. 王者荣耀国外版名字 王者荣耀 ...

  7. pythonprint字节按照16进制输出_对python以16进制打印字节数组的方法详解

    对python以16进制打印字节数组的方法详解 一.问题描述 如果直接用print打印bytes的话,有时候会直接显示ascii对应的字符,看起来很蛋疼. 二.运行效果 上面一行是直接用print打印 ...

  8. python语言的格式框架_django框架模板语言使用方法详解

    本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页 ...

  9. RabbitMQ 相关概念和方法详解

    名词解释 ConnectionFactory: 与 RabbitMQ 服务器连接的管理器. Connection: 与 RabbitMQ 服务器的连接. Channel: 与 Exchange 的连接 ...

  10. vue 子级拿值_vue 父组件通过$refs获取子组件的值和方法详解

    前言 在vue项目中组件之间的通讯是很常见的问题,同时也是很重要的问题,我们大致可以将其分为三种情况: 父传子:在父组件中绑定值,在子组件中用props接收 子传父:在父组件中监听一个事件,在子组件中 ...

最新文章

  1. 客户端函数弹窗_前端常用的几种弹窗函数
  2. 梦心日记本V2.0完工
  3. SpringMVC中,前台jsp封装参数,绑定参数,传递参数到后台controller的过程详解
  4. SO_SNDTIMEO和SO_RCVTIMEO
  5. python echarts mysql python_Django中从mysql数据库中获取数据传到echarts方式
  6. 基础练习 十六进制转八进制 c语言
  7. xnio java_java基础篇---新I/O技术(NIO)
  8. call stack是什么错误_Go语言(golang)的错误(error)处理的推荐方案
  9. java继承时父类常量覆盖吗_Java父类继承中的static和final用法
  10. C语言 标准I/O库: stdio.h
  11. 冒泡排序C语言(从小到大)
  12. 附合导线坐标计算例题_闭合附合导线计算(课件例题)
  13. RRRR_wys' Blog 3.0 准备上线啦!
  14. 使用RandomString设置随机经纬度-jmeter
  15. Mac剪贴板复制粘贴内容管理: Paste
  16. OpenStack环境下安装Mistral
  17. linux中inotify+unison实现数据双向实时同步
  18. 1047: 字符图形3-平行四边形
  19. 年仅28岁的程序员郭宇,宣布从字节跳动辞职,实现财富自由!
  20. react 和 vue(组件化) 实现两份数据的差异对比 合并及撤销

热门文章

  1. 分布式集群架构场景化解决⽅案(⼀致性Hash算法)
  2. 迷途的测试老鸟如何振翅高飞
  3. 教大家如何用数字万用表对三极管 MOS管正确测量
  4. 【软考 系统架构设计师】企业信息化战略与实施③ 政府信息化与电子政务
  5. 10000字长文让你了解 Java 8 Lambda、函数式接口、Stream 用法和原理
  6. MyBatisPlus 快速入门
  7. 使用HTML5 nav标签和无序列表ul标签实现导航栏
  8. 静态IP与动态IP区别
  9. 烟台数字孪生工厂3D模型,三维可视化建模,三维虚拟仿真交互模型
  10. 湖南大学计算机房工训,人力资源处领导一行前来工训中心调研