postman简易教程
postman是一款跨平台的接口调试及测试工具,界面清晰,功能全面,上手简单,适合刚接触接口测试的初学者作为入门工具使用
Postman的安装
到postman官网的download页面下载对应系统的版本就可以了
Postman界面

postman的工作界如上图:
其中红色框框所在的就是请求方法的选择,常用的请求方式如下:
| 方法 | 描述 |
|---|---|
| GET | 请求指定的页面信息,并返回实体主体 |
| HEAD | 类似GET请求,只不过返货的响应中没有具体的内容,用于获取报头 |
| POST | 向指定资源提交数据进行处理请求。数据被包含在请求体中。 |
| PUT | 从客户端向服务器传送数据取代指定的文档内容 |
| DELETE | 请求服务器删除指定的页面或者数据 |
| OPTIONS | 允许客户端查看服务器的性能 |
| PATCH | 是对PUT方法的补充,用来对已知资源进行局部更新 |
黑色框框,就是请求连接输入框。
send为请求发送按钮。
灰色的框框圈起来的大范围为功能区域,用来填写和修改键值对、请求体、请求头、测试方法等。
底部的response区域为请求响应区域,用于展示请求结果。
一个GET简单的请求
百度人人都爱的测速网站,这里也可以用来做为第一个简单的接口请求演示

用于测试的时候,需要把https请求换成http,这样response里才有完整的内容返回
如上图所示,成功的请求到百度的页面内容,状态码为200,请求耗时177ms,大小297.75KB
一个简单的POST请求
apishop一个API接口网站,提供各种接口(收费服务),这里就用其中一个接口用来演示。(也可以自己搭建,按需选择)。

此外postman支持将现有的接口请求转换成代码形式,如java、python、php、C#等。但断言无法被转换
简易接口测试
Postman提供了一些测试功能,可以在运行接口的同时,进行一写测试校验。可以前往Postman的测试教程查看详细的说明。
Postman接口测试的模块位于主界面的Test,见下图,红色箭头所指就是Postman提供的基本测试方法,可以满足日常的测试需求

例子:
使用v2ex的节点来举例
链接如下:https://www.v2ex.com/api/nodes/show.json?name=python
判断示例如下:
var jsonData = JSON.parse(responseBody);
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("返回值的name必须等于python", function () {
pm.expect(jsonData.name).to.eql("python");
});
编写好之后,点击运行,就可以看到测试结果

Test脚本基于JavaScript语言,使用postman自带的Test模板(可以减少编写断言代码了), 可以快速的生成用例。
| 模板 | 描述 | 示例 |
|---|---|---|
| clear a global variable | 清除全局变量 | pm.globals.unset("variable_key"); |
| Clear an environment variable | 清除一个环境变量 | pm.environment.unset("variable_key"); |
| get a global variable | 得到一个全局变量 | pm.globals.get("variable_key"); |
| get a variable | 得到一个变量 | pm.variables.get("variable_key"); |
| Get an environment variable | 得到一个环境变量 | pm.environment.get("variable_key"); |
| response body:contains string | 检查response body包含字符串 | pm.test("Body matches string", function () { pm.expect(pm.response.text()).to.include("string_you_want_to_search"); }); |
| response body:convert XML body to a JSON object | response body:将XML转换为JSON对象 | var jsonObject = xml2Json(responseBody); |
| response body:is equal to a string | 检查响应体等于一个字符串 | pm.test("Body is correct", function () { pm.response.to.have.body("response_body_string"); }); |
| response body:JSON value check | 检查response body中JSON某字段值 | pm.test("Your test name", function () { var jsonData = pm.response.json(); pm.expect(jsonData.value).to.eql(100); }); |
| response headers:content-Type header check | 检查content-Type是否包含在header返回 | pm.test("Content-Type is present", function () { pm.response.to.have.header("Content-Type"); }); |
| response time is than 200ms | 响应时间超过200ms | pm.test("Response time is less than 200ms", function () { pm.expect(pm.response.responseTime).to.be.below(200); }); |
| send s request | 发送一个请求 | pm.sendRequest("https://postman-echo.com/get", function (err, response) { console.log(resp onse.json()); }); |
| set a global variable | 设置一个全局变量 | pm.globals.set("variable_key", "variable_value"); |
| set an environment variable | 设置一个环境变量 | pm.environment.set("variable_key", "variable_value"); |
| status code:Code is 200 | 状态码:代码是200 | pm.test("Status code is 200", function () { pm.response.to.have.status(200); }); |
| status code:code name has string | 状态码:代码中有指定字符串 | pm.test("Status code name has string", function () { pm.response.to.have.status("Created"); }); |
| status code:successful POST request | 状态码:成功的post请求 | pm.test("Successful POST request", function () { pm.expect(pm.response.code).to.be.oneOf([201,202]); }); |
| use tiny validator for JSON data | 为json数据使用tiny验证器 | var schema = { "items": { "type": "boolean" } }; var data1 = [true, false]; var data2 = [true, 123]; pm.test('Schema is valid', function() { pm.expect(tv4.validate(data1, schema)).to.be.true; pm.expect(tv4.validate(data2, schema)).to.be.true; }); |
常见模板用例:
- 状态码判断
- 响应文本判断
- json值判断
- header判断
- 响应时间判断
变量设置
变量可以使我们在请求或脚本中存储和重复使用其值,通过将值保存在变量中,可以在集合,环境或请求中引用。
对我们做接口测试来说,又是一个非常重要的功能 。
在postman常用的三种变量分别是全局变量,环境变量,集合变量 。
- 全局变量:一旦申明了全局变量,全局有效,也就是说postman中的任何集合,任何请求中都可以使用这个变量。它的作用域是最大的 。
- 环境变量:要申明环境变量,首先的创建环境,然后在环境中才能创建变量 。如果要想使用环境变量,必须先选择(导入)这个环境,这样就可以使用这个环境下的变量了 。需要说明的是环境也可以创建多个 。每个环境下又可以有多个变量 。
- 集合变量:集合变量是针对集合的,也就是说申明的变量必须基于某个集合,它的使用范围也只是针对这个集合有效 。
其中,他们的作用域范围依次从大到小:全局变量>集合变量>环境变量 。 当在几个不同的范围内都申明了相同的变量时,则会优先使用范围最小的变量使。
想要使用变量中的值只需俩个步骤,分别是定义变量和获取变量 。
- 定义变量(设置变量)
- 获取变量(访问变量)
全局和环境变量
旧版本的postman,在右上角有一个齿轮的标志,点击后弹出界面,就可以根据需求定义全局变量或者环境变量了。
但在新版本中,就需要点击眼睛的标志

Environment:环境变量
Globals:全局变量
点击add后会进入一个编辑页面,如下图

New Environment :环境变量的名称,可以随意命名
VARIAVLE: 变量名
INITIAL VALUE: 共享初始值, 用于团队共享时供别人使用的默认值
CURRENT VALUE: 当前值, 自己当前使用的变量值(一般我们只用设置这个值即可)
Perisit All: 保持所有, 将当前自己使用的值(CURRENT VALUE)替换所有的初始值
Reset All: 重置所有, 将当前所有的CURRENT VALUE重置为与当前初始值一样
添加完成后 ,点击界面上的Save或者快捷键Ctrl + s保存即可。
变量引用
点击眼睛旁边的下拉菜单就可以看到刚刚添加的环境变量

点击需要使用的环境变量即可,然后在需要引用的位置上使用固定格式{{变量名}}即可。
集合变量设置
点击一个集合(文件夹)的菜单,选择Edit
就会进入到集合(文件夹)的编辑页面,如下图

在这里,可以设置这个集合通用的请求参数,前置方法、断言和变量。
添加完成后,在运行该集合的接口时,可以直接调用。

浙公网安备 33010602011771号