测试或开发过程中,我们都需要接口打交道,无论是写接口,用接口,拿到接口后肯定都得提前测试一下,这里有许多 Http 请求模拟工具,现在流行的这种工具也挺多的,像火狐浏览器插件-RESTClient,Chrome 浏览器插件-Postman 等等。这里主要介绍一下 Postman。
一、Postman 说明

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

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

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

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

打开 chrome 浏览器的 chrome 网上应用店,搜索 postman。
点击添加至 CHROME。

三、基本使用方法

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

如:
代码

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

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

  2、打开后,在红圈里面输入需要测试的接口地址,选择 post 方式,然后在下面的 Headers 中手动添加一个相应的键值。这个很关键,一定要填写正确。
(如:json 格式的提交数据需要添加:Content-Type :application/x-www-form-urlencoded,否则会导致请求失败)
如图:

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

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

这只是最基本的用法,还有比较详细的用法。当然还有详细的用法

转载某人文章

Postman 使用详解

一 简介

特点:
创建 + 测试:创建和发送任何的 HTTP 请求,请求可以保存到历史中再次执行
Organize:使用 Postman Collections 为更有效的测试及集成工作流管理和组织 APIs
document:依据你创建的 Clollections 自动生成 API 文档,并将其发布成规范的格式
collarorate:通过同步连接你的 team 和你的 api,以及权限控制,API 库

二 请求

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

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

首先需要设置的就是 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,选择环境。点击运行按钮。
在需要 csv 和 json 文件的地方记得添加。

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


↙↙↙阅读原文可查看相关链接,并与作者交流