当前位置: 澳门新濠3559 > 编程 > 正文

当开发人员需要调试一个网页是否运行正常,P

时间:2019-10-06 23:45来源:编程
第十五章:基于Postman的RESTful接口测试 1.背景介绍 现在的web和移动开发,常常会调用服务器提供restful接口进行数据请求,为了调试,一般会先用工具进行测试,通过测试后才开始在开发

澳门新濠3559 1第十五章:基于Postman的RESTful接口测试

1.背景介绍

现在的web和移动开发,常常会调用服务器提供restful接口进行数据请求,为了调试,一般会先用工具进行测试,通过测试后才开始在开发中使用。这里介绍一下如何在chrome浏览器利用postman应用进行restful api接口请求测试。

Postman用法简介-Http请求模拟工具

从上一章节开始,接下来的几个章节会讲解一些开发过程中配套工具的使用。俗话说的好,工欲善其事,必先利其器。对于开发人员而言,有个好用的工具,也是一件事半功倍的事,而且开发起来也很爽,效率也会提升很多。本章节主要讲解关于Postman这款http模拟请求工具,一般上拿来测试api接口服务的。

当开发人员需要调试一个网页是否运行正常,并不是简简单单地调试网页的HTML、CSS、脚本等信息是否运行正常,更加重要的是网页能够正确是处理各种HTTP请求,毕竟网页的HTTP请求是网站与用户之间进行交互的非常重要的一种方式,在动态网站中,用户的大部分数据都需要通过HTTP请求来与服务器进行交互。Postman插件就充当着这种交互方式的“桥梁”。

澳门新濠3559 2

在我们平时开发中,特别是需要与接口打交道时,无论是写接口还是用接口,拿到接口后肯定都得提前测试一下,这样的话就非常需要有一个比较给力的Http请求模拟工具,现在流行的这种工具也挺多的,像火狐浏览器插件-RESTClient,Chrome浏览器插件-Postman等等。这里主要介绍一下Postman。

题外话:对于Postman而言,本人也是仅仅使用了其中一小部分,还是本着够用的原则,对于其一些高级功能,比如自动化测试auth认证js脚本生成各类语言代码(如cUrl、java、ajax等等),后期若有使用时,会再编写一篇博文的。突然很感慨,要学习的东西真多呀,所以还是那句话:本着够用就行!东西是学不完的!

2.知识剖析

关于Postman的安装方法,可以在网上自行搜索安装,很简单。.

一、Postman说明

PostMan是一款功能强大的网页调试与发送网页HTTP请求的工具。Postman能够发送任何类型的HTTP请求(GET, HEAD, POST,PUT..),附带任何数量的参数和HTTP headers。支持不同的认证机制(basic, digest,OAuth),接收到的响应语法高亮(HTML,JSON或XML)。Postman既可以以Chrome浏览器插件的形式存在,也可以是独立的应用程序存在。本文主要讲解的是客户端的使用。

官方网站:

Postman 是一个非常棒的Chrome扩展,提供功能强大的API & HTTP 请求调试。

一、导入导出打包的应用

在Postman中导入导出我们的测试数据包 和工作环境,非常的方便。

导出数据包

澳门新濠3559 3

导出工作环境

澳门新濠3559 4

澳门新濠3559 5

导入数据包

澳门新濠3559 6

导入工作环境

澳门新濠3559 7

二、发送请求和查看响应

发送请求

Postman的界面分为 左边的侧边栏 和 右边的请求构建器 两部分。请求构建器允许你可以快速的创建几乎任何类型的请求。一个HTTP请求的四部分:URL、Method、Headers、Body,在Postman中都可以设置。

澳门新濠3559 8

URL

在你构建request请求的时候,首先要设置的就是URL。在URL输入框中输入你请求的链接,你可以单击Params按钮,在编辑器中输入key-value格式的URL参数。

在URL地址栏中的输入和编辑器中输入的key-value参数,不会自动的编码为 URL-encoded,选中要编码的文本,右键选择**EncodeURIComponent **,手动编码参数值。

澳门新濠3559 9

澳门新濠3559 10

你可以单独的添加参数,Postman会自动的把他和URL整合到一起,如果你从其他的地方粘贴了URL过来,Postman也会自动的把 Params中的参数进行设置。

一些API端点使用路径变量,你可以在Postman中设置,他们位于两个 / 中,样式如下

澳门新濠3559 11

如果你要设置他,单击Params按钮,你会发现key部分已被自动设置好了,根据需要填写value部分就行。

Headers:

单击Headers切换按钮,你可以在key-value编辑器中设置任何字符串作为header的名称。

澳门新濠3559 12

受限的headers和cookies

不幸的是一些headers收到Chrome和XMLHttpRequest规范的限制,以下headers被屏蔽:

Accept-Charset

Accept-Encoding

Access-Control-Request-Headers

Access-Control-Request-Method

Connection

Content-Length

Cookie

Cookie 2

Content-Transfer-Encoding

Date

当开发人员需要调试一个网页是否运行正常,Postman用法简介-Http请求模拟工具。Expect

Host

Keep-Alive

Origin

Referer

TE

Trailer

Transfer-Encoding

Upgrade

User-Agent

Via

从Postman v0.9.6版本开始,我们可以使用拦截器来发送这些受限的headers:

澳门新濠3559 13

安装完成后点击切换就可以使用这些headers发送请求了。

headers预设

你可以保存常用的headers在headr prest里面:

澳门新濠3559 14

Method

单击HTTP的请求方法按钮,在给出的下拉菜单中选择使用的方法即可,对应的方法需要body的,body部分便被设置为可填写。

澳门新濠3559 15

body部分编辑

当我们发送请求需要填写body部分时,Postman几乎可以让我们发送任何类型的HTTP请求。body编辑器分为4个部分:

form-data

澳门新濠3559 16

form-data是web表单默认的传输格式,编辑器允许你通过设置key-value形式的数据来模拟填充表单。你可以在最后的选项中选择添加文件。

urlencoded

澳门新濠3559 17

这个编码格式同样可以通过设置key-value的方式作为URL的参数。

raw

澳门新濠3559 18

一个raw请求可以包含任何内容。在这里你可以设置我们常用的JSON 和 XML数据格式。

二进制

澳门新濠3559 19

在这里你可以发送视频、音频、文本等文件。

处理响应

Postman的响应查看器允许你方便的查看API的响应是否正确。

一个API响应器包括Body、Headers、status code三部分。Body 和 Headers在不同的选项卡中,status code在收到响应时在标签行的最右边显示。

保存响应内容

澳门新濠3559 20

如果你在收藏夹中保存了request请求,你可以在请求收到的对应的响应中单击save按钮,指定一个response的名字,来保存对应额response。一个request对应的所有的response都是有效的。

当我们要查看我们保存的response的时候,只需要点击我们的发送的request选择我们要查看的response即可:

澳门新濠3559 21

查看响应

Postman的body标签中有三种查看方式:Pretty、Raw、Preview

Pretty:

澳门新濠3559 22

Pretty方式,可以让JSON 和 XML的响应内容显示的更美观规整。

Raw:

澳门新濠3559 23

显示最原始的数据,可以帮助你判断是否minified

Preview:

澳门新濠3559 24

可以帮你把HTML页面自动解析显示出来。

Headers

澳门新濠3559 25

这里显示了一些键值对,表示了HTTP请求中header中的信息。

Cookies

Postman v0.8.x 版本可以显示浏览器的cookie。

身份验证

Basic Auth

澳门新濠3559 26

输入用户名和密码,点击 Update Request 生成 authorization header

Digest Auth

澳门新濠3559 27

Digest auth 比 Digest auth 更加复杂,使用当前request中的设置来生成authorization header,请确保在生成前你的设置的正确性。

OAuth 1.0

澳门新濠3559 28

Postman的OAuth1.0工具让你可以生成支持OAuth1.0身份认证的请求,目前他不能获取access token。

OAuth 2.0

澳门新濠3559 29

Postman支持获取OAuth 2.0 token,并且可以非常简单的添加到request中。

从OAuth 2.0中获取access token,要遵循下面这些步骤:

在你的APP设置页面设置 **

** 作为 callback URL

获取 authorization URL, 从你的API提供者那里访问 token URL、 client ID 和 client secret。你可以设置一些API需要的参数范围来设置你再API中的访问级别。

按下 Request Token 按钮来启动OAuth 2.0 flow。如果一切设置正确,你将会被重定向到Postman的服务器,他将获取你的access token 并且发送到Postman的app,这样就给Postman添加了token,给他设置一个name,让你在以后可以快速的访问

澳门新濠3559 30

access token将被保存在本地,显示在帮助列表。点击token名称,就可以把它添加到request中。

Requests History

所有你使用Postman发送的request都将保存在左侧边栏的History中,他会帮助你通过尝试不同的request来生成一个新的request,而不必浪费你太多的时间。你可以通过单击一个request的名字来加载他。

澳门新濠3559 31

如果你创建了Postman的账户,你的历史数据将被同步到Postman的服务器,你可以在不同的平台上使用Postman的时候同步你的数据。

使用tab来控制多个请求

很多用户可能需要同时打开多个请求,你发送的request将被保持在当前的标签中,当你切换到其他的标签时,不用担心不能及时的接受response。

澳门新濠3559 32

使用拦截器来读写cookie

和Mac上的应用不同,Chrome的应用本身并不支持获取cookie,你可以使用拦截器来实现这个功能。打开拦截器的时候,你可以检索特定域中的cookie,并发送包含cookie的request。

检索cookie:

启动拦截器

澳门新濠3559 33

在测试部分,你可以使用responseCookies对象,他将返回一个cookie对象的数组。使用postman.getResponseCookie(cookieName)检索cookie特定的名称。他将返回一个单独的cookie对象。

每个cookie都会包含下面这些属性:

domain、 hostOnly、httpOnly、 name,、path、 secure、 session、 storeId、 value

设置cookie:

确保打开了拦截器

在headers部分包含cookie的头

例如:Cookie: name=value; name2=value2

3.发送request,你设置的cookie将会和你的request一起发送。

捕捉request

现在Postman的拦截器可以从Chrome浏览器直接捕捉request,并保存到历史中。这意味着你可以及时的调试你的web应用的api。这里不需要安装或者配置代理,也不需要更改代码。你可以根据基于URL的正则表达式过滤request。

设置文件

你可以在Postman的设置中处理重定向

澳门新濠3559 34

澳门新濠3559 35

General

Trim keys and values in request body

如果你使用表单数据或者URL编码模式来发送数据到服务器,这项设为true后就引起所有参数修整。

Send no-cache header

你可能想要这项设置为true,这会确保你收到及时刷新的response。

Send postman-token header

这主要是用来绕过Chrome的一个bug。如果一个XMLHttpRequest 处于等待状态,另一个request 发送了同样的参数,Chrome将会为两个request返回同样的response。发送一个随机的token将会避免这个问题。这同样也会帮助你区分服务器端的request。

XHR Timeout(ms)

设置app等待响应的时间,如果服务器没有响应的话。

Automatically follow redirects

防止我们的request返回一个300系列的response被自动重定向。你需要安装拦截器来防止重定向。

Open history/collection requests in a new tab

设置为 true,当你点击左侧边栏历史或者收藏里面的request时,会在一个新的tab中打开。

设置为false,则会在当前tab中打开。

Response Font Size

设置response视图中的字体大小

UI Size

设置UI的大小

Retain headers on clicking on links

如果你在response中你点击了一个连接,Postman会为这个URL创建一个新的GET request。如果你想要保留headers 在request之前设置他,就设置为true。当你主要方为一些受保护的资源的时候这个功能将会非常有用。

Language detection

如果你测试的API没有在header中返回 Content-Type ,则response不会数据转换成合适的格式。你可以强制指定body的数据类型为JSON等格式。

Variable delimiter

变量是保存在双花括号中的,但是你可以改变成其他的字符,这项并不推荐设置除非你出现了问题需要更改这里。

Force windows line endings

Refer to this Github issue to know more

Instant dialog boxes

禁用 eye-candy 并立即显示所有的对框框模式

Send anonymous usage data to Postman

来禁止匿名用户使用数据的选项,这是的Postman的保护性更好。

Theme

选择你喜欢的两种主题风格

Shortcuts

设置常用的快捷键

Data

导入导出我们设置的环境和数据,这回覆盖你现在的收藏和环境,所以小心使用。当然你可以把你现在的环境先导出作为备份。

Add-ons

Interceptor

Postman proxy

Sync

如果你登录了Postman,你的数据就会被同步更新到Postman的服务器上,者可以确保你再次使用Postman的时候可以同步自己的数据。

你可以强制同步或者禁用他。

西边人西说测试,

头条号(软件测试资源站)作者,程序爬虫获取国内外测试资源分享给自学爱好者。

今日头条关注后,私信回复如下关键词获取大量打包资料下载。

测试资料、工具、Python、自动化测试报告、梯子 等

QQ群:330374464

Postman是一种网页调试与发送网页http请求的chrome插件。我们可以用来很方便的模拟get或者post或者其他方式的请求来调试接口。

按实际的操作环境,选择对应的版本下载:

-它能够发送任何类型的HTTP requests (GET, HEAD, POST, PUT..),附带任何数量的参数 headers;

二、安装(安装到chrome插件)

澳门新濠3559 36版本选择

-支持不同的认证机制(basic, digest, OAuth),接收到的响应语法高亮(HTML,JSON或XML);

在安装时,最好是通过chrome浏览器打开chrome网上应用店直接添加到chrome插件中。如果是直接从网上先把postman下载好很可能按不到chrome上去。

本文直接选择当前最新版:v6.2.2

-Postman 能够保留了历史的请求,这样我们就可以很容易地重新发送请求,有一个“集合”功能,用于存储所有请求相同的API/域。

进入chrome网上应用店需要FQ,在这里默认你可以FQ,大体步骤如下:

下载后,按提示进行默认安装即可,这里就不贴图了。

postman安装方法教程

打开chrome浏览器的chrome网上应用店,搜索postman。

澳门新濠3559 37软件首页

postman界面介绍:

点击添加至CHROME。

作图不易呀,打开了从高中开始用的Fireworks。一个程序猿还需要会作图,。不美观,顺序混乱,就凑合看吧。还想怎么样!

澳门新濠3559 38

三、基本使用方法

澳门新濠3559 39界面图例

1、postman调试的历史记录,保留了每次测试时的请求参数;

说明:在这里以一个提交多层嵌套的json数据格式的post请求为例。

1.History:记录历史请求记录,一般上所有的请求,都会会在此面板上出现,按日期区分,点击可快捷新增一个该请求的tab栏。

2、在Postman中,Collection类似文件夹,可以把同一个项目的请求放在一个Collection里方便管理和分享,Collection里面也可以再建文件夹;

如:

澳门新濠3559 40History

3、设置environment variables(环境变量)和global variables(全局变量),点击右边的眼睛可以快速查看当前的变量;

2.Collections:收藏夹。你可以按请求的类型或者项目,进行目录的创建,便于管理。可以创建子目录,同时也可批量进行请求,大家可点开看看,应该都知道意思

4、选择HTTP 请求类型的地方,各种常见的不常见的非常全;

1data=2{3"xxx":4{5"xxx": "xxxxxxxxxxx",6"xxx": "xxxxxxxxxxx"7},8"aaa": "xxxxxxxxxxx",9"bbb": "xxxxxxxxxxx",10"ccc": "xxxxxxxxxxx"11}

澳门新濠3559 41Collections

5、请求URL,两层大括号表示这是一个环境变量,可以在3的位置选择当前的environment,环境变量就会被替换成该environment里variable的值;

内部按钮:

6、点击可以设置URL参数的key和value;

1、在chrome中安装好postman插件后,通常会在桌面上生成一个Postman的快捷方式,再次打开它时可以直接通过快捷方式也可以在chrome浏览器中的应用中打开它,我们会看到如下界面:

澳门新濠3559 42内部按钮

7、点击发送请求;

2、打开后,在红圈里面输入需要测试的接口地址,选择post方式,然后在下面的Headers中手动添加一个相应的键值。这个很关键,一定要填写正确。

3.便签页:可切换不同的便签页进行显示。

8、点击保存请求到Collection,如果要另存为的话,可以点击右边的下箭头;

(如:json格式的提交数据需要添加:Content-Type :application/x-www-form-urlencoded,否则会导致请求失败)

澳门新濠3559 43tab

9、设置鉴权参数,可以用OAuth之类的;

如图:

4.请求方式:如GET、POST、DELETE等。

10、自定义HTTP Header;

3、选择Body选项卡,然后选中row,在编辑框中输入你需要提交的参数即可:

澳门新濠3559 44请求方式

11、设置Request body;

4、点击Send即可提交请求,然后在下面查看请求结果,并且可以以Pretty、Raw、Preview三种方式查看。如图:

5.请求地址:需要测试或者访问的api地址,支持变量,变量写法:{{param}},

12、显示发起请求之前执行的脚本;

注:本篇文档只是简单举了个列子满足我们日常测试即可,更多的细节可登录Postman官方网站:

澳门新濠3559 45请求地址

13、在收到response之后执行的测试;

6.URL参数值(querystring):设置url后面的参数值,如author=okong&name=okong

14、返回数据的格式,Pretty可以看到格式化后的JSON,Raw就是未经处理的数据,Preview可以预览HTML页面。

Postman 使用详解

澳门新濠3559 46querystring

3.常见问题

阅读 6754收藏

7.点击可发送请求,同时支持下载。

获取数据:

3022016-6-9

澳门新濠3559 47发送请求

URL:

作者:luciastar,原文链接:http://luciastar.com/2016/05/21/postman笔记/

8.保存当前的请求至Collections中,也可另存为成其他的Collections。下次可以快捷点击。

配置header: Referer: Cookie:appver=1.5.2

Postman 是一款功能超级强大的用于发送 HTTP 请求的 Chrome 插件。 —— 由진은分享

澳门新濠3559 48保存请求

4.解决方案

一 简介

9.鉴权参数,可以设置如OAuthOAuth2澳门新濠3559,等协议。

原因:没有让postman发送请求的时候使用这个网站的浏览器cookie

特点:

澳门新濠3559 49鉴权参数

解决方法: 打开Postman Interceptor这个插件,让postman发送请求的时候使用这个网站的浏览器cookie

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

10.HTTP Header:自定义请求头部信息。

5.编码实战

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

澳门新濠3559 50Header设置

6.扩展思考

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

11.请求体设置,如POST请求时,设置请求的参数,或者二进制流、json格式参数、xml格式参数等等。

postman中的环境变量

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

澳门新濠3559 51Body

7.参考文献

二 请求

12.发起请求之前执行的脚本,例如request body里的那两个random变量,就是每次请求之前临时生成的,不熟悉,目前没有用过。

参考一:API自动化测试利器-postman

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

澳门新濠3559 52pre-request

参考二:Postman安装及使用入门教程

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

13.响应测试,返回的参数进行检验,校验结果会显示在19功能模版中。目前也没有用过,,跳过。。

8.更多讨论

URL

澳门新濠3559 53tests

postman还有些什么功能?

首先需要设置的就是URL

14.各域名下的cookies查看、新增:

视频链接:

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

澳门新濠3559 54cookies

PPT链接:

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

15.code:可一键生成不同语言的请求代码,如cUrl、java等。

文本链接:

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

cUrl:

如何使用postman_腾讯视频

点击headers toggle:

澳门新濠3559 55cUrl

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

java:这里使用的是okHttp工具

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

澳门新濠3559 56java

1.Accept-Charset2.Accept-Encoding3.Access-Control-Request-Headers4.Access-Control-Request-Method5.Connection6.Content-Length7.Cookie8.Cookie29.Content-Transfer-Encoding10.Date11.Expect12.Host13.Keep-Alive14.Origin15.Referer16.TE17.Trailer18.Transfer-Encoding19.Upgrade20.User-Agent21.Via

16、17、18、19都是请求响应response对应的参数值了,应该都比较熟悉了。如返回的值,cookies、Header、响应测试结果等。

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

澳门新濠3559 57响应区域

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

20.请求响应的状态值,如200等,还有响应时间和大小等。吐槽:入门级的服务器就是慢。。200毫秒。。

cookies

澳门新濠3559 58状态等信息

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

21.拷贝返回的参数到剪贴板中,就是Ctrl c功能了,在其他地方可直接粘贴。

Method

澳门新濠3559 59拷贝

Request body

22.返回参数里面进行查询。

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

澳门新濠3559 60查询

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

23.返回参数的不同预览状态,其实就是美化。。

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

澳门新濠3559 61响应参数预览

2 urlencoded

24.设置不同的工作空间,就像eclipse一样,可不同的项目不同的工作空间。

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

澳门新濠3559 62工作空间

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

25.设置不同环境下的变量值,就像后端开发有测试环境、开发环境、联调环境等一样的。

3 raw

澳门新濠3559 63多环境配置

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

以一个简单的web服务,进行post、get请求示例,其他的大家可自己安装后自己实践下,自己动手丰衣足食呀~

4 binary

创建一个web项目

这里创建以常见的http请求方式,如get、post、delete、put进行简单示例下。

RestfulController.java

/** * 基于Postman的RESTfulAPI接口测试 * @author oKong * */@RestController@Slf4jpublic class RestfulController { @GetMapping public String get(String msg) { log.info; return msg; } @PostMapping public String post(@RequestBody String msg) { log.info("post方式!"); return msg; } @PutMapping public String put(@RequestBody String msg) { log.info; return msg; } @DeleteMapping("/delete") public String delete(String msg) { log.info("delete方式!"); return "delete "   msg   " success!"; } /** * 设置返回状态为417 * @param msg * @return */ @GetMapping("/status") @ResponseStatus(HttpStatus.EXPECTATION_FAILED) public String status(String msg) { log.info("status方式!"); return msg; }}

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

使用Postman测试

1.get方式:

澳门新濠3559 64get方式

2018-07-28 23:26:39.783 INFO 18092 --- [nio-8080-exec-5] c.l.l.s.chapter14.RestfulController : get方式!

2.post方式:

澳门新濠3559 65post方式

2018-07-28 23:29:00.143 INFO 18092 --- [nio-8080-exec-4] c.l.l.s.chapter14.RestfulController : post方式!

3.put方式

澳门新濠3559 66put方式

4.delete方式

澳门新濠3559 67delete方式

5.httpStatus状态测试(设置返回的ResponseStatus):

澳门新濠3559 68Status

6.请求方式不正确时:

澳门新濠3559 69请求方式不对时

此时,可以把各请求保存到Collections中,可以测试下批量执行的功能run.

澳门新濠3559 70run

批量执行:

澳门新濠3559 71批量执行

控制台:

澳门新濠3559 72控制台

这几篇讲解的比较简单明了:1.

本章节主要是讲解了利用Postman进行RESTful接口风格进行测试,也简单介绍了关于Postman的简单用法。在本人使用过程过程中,以上几种方式基本上已经满足开发需求了。前面也介绍过了Swagger了,在对接第三方系统服务时,Swagger基本就用不上了,这个时候Postman的作用就体现出来了。不同场景下用不同的测试工具。至于一些关于Postman的高级用法,大家需要的话就自行搜索查找下相关资料吧,其他功能我是基本上没有用上。。

目前互联网上很多大佬都有SpringBoot系列教程,如有雷同,请多多包涵了。本文是作者在电脑前一字一句敲的,每一步都是实践的。若文中有所错误之处,还望提出,谢谢。

  • 个人QQ:499452441
  • 微信公众号:lqdevOps

澳门新濠3559 73公众号

个人博客:

原文地址:

完整示例:chapter-15

三 响应

保证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中是否包含某个stringtests["Body

matches string"] = responseBody.has("string_you_want_to_search");

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

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

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

vardata=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数据验证器

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

结果:

五 运行Collections

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

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

在需要csv和json文件的地方记得添加。

运行collection测试会在另一个窗口运行。如果需要在main窗口修改东西,在新窗口能正常读取。

编辑:编程 本文来源:当开发人员需要调试一个网页是否运行正常,P

关键词: 澳门新濠3559