Postman 使用教程 - API 接口自动化测试初探
Postman 使用教程 - API 接口自动化测试初探
本文首发:Postman 使用教程 - API 接口自动化测试初探 - 卡拉云
Postman 是一套 API 接口测试工具,它的强大在于灵活趁手的自动化接口测试流程,极大的提高了 API 测试效率。本教程将由浅入深,带领大家一起学习如何使用 Postman 进行接口测试及如何进行 API 接口自动化批量测试。
API 是什么?
API的英文即Application Programming Interface首字母的缩写。不要被这么长的单词吓到,直译过来的意思就是:程序之间的接口。我更倾向于把API理解为,程序之间的合约。有关 API 是什么及它的意义这里就不展开讲了,了解更多可看卡拉云博客之前的文章《API是什么: 一篇讲透API》
Postman 是什么?
Postman 是一款 API 开发协作工具,它可以帮助你测试和开发 API,Postman 提供了测试 API 的友好界面和功能,使用简单便捷,安全可靠。Postman 是 API 接口测试工具的 Top 3,因为它简单可靠又免费,目前有超过 800 万开发者用户使用。特别是 API 批量测试功能,在近几次的大版本更新中,用户体验得到了极大的提升。Postman 是每一位前后端开发者必掌握的开发工具。
扩展阅读:更多 API 测试工具选择可看这篇《最好用的七大顶级 API 接口测试工具》
接下来,我们来一起通过实践学习 Postman 从安装到 API 自动化接口测试的全过程,建议你上手跟随本教程一步一步操作,可更好理解 Postman 功能精髓。
一. 如何安装 Postman
![如何安装 Postman](https://files.mdnice.com/pic/cc022f27-4a70-4d45-82e6-4a4f2eb42ede.jpg)
前往 Postman 官网免费下载,安装非常傻瓜。Postman 支持 Windows、Mac 和 Linux,也可以直接跑在浏览器里,使用相当便捷。
二. Postman 功能概览
Postman 经过多次迭代,整个界面没有冗余功能,直接看主界面,Postman 主要功能一目了然。
![Postman 功能概览](https://files.mdnice.com/pic/2142ae32-b06b-4847-bdc2-e15472d6ae09.jpg)
-
「New」在这里创建请求、测试集合、环境,还可以创建 API 文档、Mock Server、API -
「Import」 导入功能可以导入测试集合、环境等信息 -
「HTTP Request」点击可查看请求选项,比如有GET, POST, COPY, DELETE 等,在 API 测试中,最常用等请求是 GET 和 POST -
「Request URL」 API 的链接,发送和接受请求的链接 -
「Save」 保持按钮,Postman 不会自动保存,需要我们手动点击保存按钮 -
「Request tab」请求标签卡,这里显示我们当前正在处理的请求 -
「Params」 这里可填入请求需要的参数,比如Key - Value -
「Auth」远程访问 API时,需要提交的身份认证信息,比如 username、password、token 等 -
「Headers」 请求头信息 -
「Body」 请求体信息,一般在 POST 中才会用到 -
「Pre-req」 在请求之前 先执行脚本 -
「Tests」可创建 Postman 测试断言,用来设置监测点自动化检测 API 是否达到预期 -
「Collections」 测试集合,类似树状结构的文件夹,放在同一个文件夹的 API 可一起进行批量测试、编辑和复制。 -
「History」测试的 log,可方便查询 Postman 对你的 API 进行了哪些操作 -
「Runner」 可以通过 Collection Runner 执行自动化测试,后文详细介绍 -
「My Workspace」创建工作区可与团队成员共享使用 -
「Invite」可邀请团队成员一起协同测试
三. 如何使用 Postman 处理 GET 请求
本教程使用模拟 API 工具 「JSONPlaceholder」进行 API 模拟操作。
https://jsonplaceholder.typicode.com/users
![如何使用 Postman 处理 GET 请求](https://files.mdnice.com/pic/8b024dd3-3818-48d3-8d72-646086f9d330.jpg)
1.点击「+」新建一个请求
2.选择触发动作 GET
3.输入 API 地址:https://jsonplaceholder.typicode.com/users
4.点击「Send」测试开始
5.测试完成后,可看到状态 200,表示 API 联通并成功返回结果
6.GET API 返回的结果值 - JSON 文件,返回了 10 组数据
四. 如何使用 Postman 处理 POST 请求
接着我们新建一个 POST 请求,然后提交一组数据,数据如下:
[
{
"id": 11,
"name": "Kalacloud",
"username": "kalacloud",
"email": "super@kalacloud.com"
",
"address": {
"street": "xisanhuan",
"suite": "19",
"city": "beijing",
"zipcode": "100841",
"geo": {
"lat": "116.20",
"lng": "39.56"
}
},
"phone": "13977777777 x56442",
"website": "kalacloud.com",
"company": {
"name": "kalacloud",
"catchPhrase": "-",
"bs": "-"
}
}
]
![如何使用 Postman 处理 POST 请求](https://files.mdnice.com/pic/41463f25-715c-4329-a290-c34cb644b134.jpg)
1.新建一个请求标签
2.选择 POST 请求类型
3.输入 API 网址
4.点击 Body
5.选择 raw
6.选择 JSON 格式
7.填入上文的代码并点击测试
8.测试结果为 201 测试通过
9.POST 添加的内容已经完成,返回值 ID:11
五. 如何将请求参数化 - 全局变量、环境变量、集合变量
上面将的 GET
和 POST
只是常规 API 测试功能。接下来我们开始进入 API 自动化测试的部分,也是 Postman 的精华。自定义变量可以帮助我们在批量测试时,根据不同场景设定规则,让 Postman 根据规则自动测试一些列的测试项目。
我们先来看个变量样例:
![如何将请求参数化 - 全局变量、环境变量、集合变量](https://files.mdnice.com/pic/e401ccef-33c3-4e7e-b2cc-a006b24647a1.jpg)
1.可以看到原来的网址被{{kalacloud_url}}
所取代。
2.JSON 文件中数值被变量取代。
3.这是 Postman 的一个核心功能,数值变量化,在右上角的小眼睛里设置。
我们来看一下,Postman 三种常见的变量形式,以及如何定义变量
Postman 常用的三种变量形式
-
全局变量:全局变量一旦声明,即可应用到 Postman 中所有测试的 API 中。任何请求都可以直接使用全局变量,它的作用域是全局的。 -
环境变量:Postman 的环境变量可以理解为一组选项,当这组环境变量选项被选中时,才会生效,如上图中红3位置「卡拉云_API 测试 Demo」选项一样,选中时生效。 -
集合变量:集合变量是针对集合(Collections)生效的,一个集合下可能有 N 条 API 测试,集合变量可以一次修改集合下的所有变量数值。
以上三种变量的作用域从大到小为 全局 > 集合 > 环境,当三个变量形式同时作用于一个 API 测试条时,Postman 会优先使用最小作用域变量。
六. Postman 定义变量的方法
全局变量与环境变量设置
![全局变量与环境变量设置](https://files.mdnice.com/pic/9c104951-5304-45b4-a992-7bb6b4af81f0.jpg)
1.点击右上角的小眼睛进入变量设置页面
2.上面为环境变量设置,当选中环境变量时(小眼睛 icon 的左边进行选择)此测试应用环境变量。
3.这里可以设置全局变量,全局变量应用在所有 API 接口测试环境中。
集合变量设置
![集合变量设置](https://files.mdnice.com/pic/c418d077-181f-4e7f-bc34-76d9bd45a4b6.jpg)
集合变量在集合的条目后面点击「...」选择编辑 → Variables 在这里进行设置。
变量设置与应用
上文中,我们设置了 {{kalacloud_url}}
为 https://jsonplaceholder.typicode.com
,设置 {{kalacloud_id}}
为 11
我们把下面的 JSON 填入 Postman 相应位置,看看是否可执行。
[
{
"id":" {{kalacloud_id}}",
"name": "Kalacloud",
"username": "kalacloud",
"email": "super@kalacloud.com"
}
]
![变量设置与应用](https://files.mdnice.com/pic/ea4ae373-1a0d-4df5-9b80-ad870b675889.jpg)
1.选择刚刚设置好的环境变量 2.在网址和 JSON 中都可以使用全局变量及环境变量 3.执行后,返回 201 并且 ID 返回为 11,变量设置成功
七. 如何创建 Postman Tests - Postman 断言功能
Postman 可以在 Tests 中自动生成 JavaScript 校验代码协助我们验证结果,这与上面我们讲到的变量设置一样,断言功能,也是 API 接口自动化测试中重要的一环。
(1)Postman 断言概览
-
断言设置:Tests 选项卡 -
断言语言:JavaScript -
断言执行原理:在相应体数据返回后执行 -
断言结果查看: Test Results 选项中查看
有关断言的设置,我们一起操作一遍你就明白了。
(2)Postman 断言的实际应用
-
Postman 状态类断言
![Postman 状态类断言](https://files.mdnice.com/pic/42b047d2-bebd-49f8-b85c-f2a9fcd0d83d.jpg)
1.我们首先创建一个 GET 请求,然后点击 Postman 中 Tests 标签,进入断言设置。
2.我们可以在右侧已经预设好的断言代码,我们先点击「Status code: Code is 200」,可以看到预设的代码直接写入编辑框。
3.点击「Send」执行 GET,返回的断言可以在 Test Results 中看到,绿色的 PASS,说明执行成功。
-
Postman 结果比较类断言
我们再添加一条带有变量的 JavaScript 断言设置,比较预期结果和实际结果之间是否一致。
![Postman 结果比较类断言](https://files.mdnice.com/pic/828c4aef-46e1-4e46-b26c-f87ab69b3c9b.jpg)
1.在 Tests 选项卡右侧选择「Response body:JSON value check」,我们来检测 ID 为 1 的返回值中,name
的值是否为 Leanne Graham
。
2.我们将「Your Test Name」替换为「检查 ID 为 1 的 name 返回值为 Leanne Graham」让这条测试的名字直接反应出我们想测试的内容。
3.使用jsonData[0].name
代替jsonData.value
,在刚刚的返回结果中,我们知道 ID 1 中的 name 值为 Leanne Graham
,这个结果是从 [0] 开始的。
4.检测返回值:在 to.eql()
中输入待检测值 "Leanne Graham"
5.代码如下,你可以直接复制到你的 Postman 中,跟随教程一起测试
pm.test("检查 ID 为 1 的 name 返回值为 Leanne Graham", function () {
var jsonData = pm.response.json();
pm.expect(jsonData[0].name).to.eql("Leanne Graham");
});
![postman-tests-json](https://files.mdnice.com/pic/82b3f872-b3bf-495c-9b9a-f05e081a0b90.jpg)
执行 GET 后,我们可以看到 Tests 的返回结果,ID 1. name 为 Leanne Graham 为 PASS
。此功能帮助我们比较了预设值与实际返回值是否一致,在自动化测试中十分有用。
八. 如何创建 Postman 测试集合
![如何创建 Postman 测试集合](https://files.mdnice.com/pic/3955edfd-a246-4404-9feb-276cf9a40a72.jpg)
Postman 在这次升级之后,创建测试合集的步骤极大被简化了。创建测试集合只需要点击上图中的「+」,然后给集合重命名即可。
然后我们在合集中创建多个测试条目,方便我们之后按照集合自动化测试。
九. 如何使用 Runner 批量执行 - API 接口自动化测试雏型
![如何使用 Runner 批量执行 - API 接口自动化测试雏型](https://files.mdnice.com/pic/08c9fbc3-cf42-4091-9dde-c2220296c6fc.jpg)
1.点击需要批量运行的集合的「...」然后选择「Run collection」进入 Runner 设置页面
2.iterations 是指遍历测试的次数,这次测试我们设置为 3
3.Delay 是指测试之间的延迟时间,这次设置为 2000ms
4.测试数据,配合上文讲解的参数化功能,以达到自动化测试的目的
5.配置好之后,点击 Run 开始批量执行
![runner-postman](https://files.mdnice.com/pic/b83aba81-a385-49b2-8818-08aac7542c57.jpg)
点击 Run 之后,Postman 按照设定连续执行合集里的 API 测试,并进行 3 组测试。到这里,Postman API 接口批量自动化测试的雏型已经出来了。在未来更复杂的 Postman 自动化接口测试流程也是有以上这些功能点构成的,你现在已经掌握了 Postman 自动化接口测试方法。
十. 总结
本文从 GET / POST 功能开始讲起,然后详细讲解了 API 接口自动化测试所需要的几个功能特点,全局/环境/集合变量设置,测试断言,测试集合等,以及最后的自动化测试工具 Runner。这些功能共同构成了 Postman API 接口自动化测试功能。
接着推荐一下卡拉云,卡拉云是一套低代码开发工具,支持多种数据库及 API 接入。你不仅可以在卡拉云中测试 API ,还能直接把返回的结果映射到组件上,不用写一行代码,只需简单拖拽即可搭建属于你自己的后台工具。
![卡拉云用户认证系统](https://files.mdnice.com/pic/4e6b4cc2-5911-4612-996e-230abc23b6b1.gif)
上图为使用「卡拉云」调用金数据 API ,然后将返回结果直接映射到表格组件中。你仅需一步,即验证了 API 可用性,又直接把你正在搭的工具给作出来了。立即试用卡拉云,一分钟快速搭建属于你自己的 API 工具。
更多数据库相关教程可访问 卡拉云 查看。
相关文章
- Postman接口测试流程
- Postman工具之接口测试必学的几个关键点,你知道吗?
- 接口自动化测试:Postman实战教程
- postman测试上传图片接口步骤教程
- postman之接口测试技巧
- 一文搞定 Postman 接口自动化测试
- 一文3000字从0到1实现基于PostMan的接口自动化测试(建议收藏)
- 【建议收藏】Jenkins+postman+newman之API全自动化测试
- 全网最全postman接口测试教程和项目实战~从入门到精通!!!
- Postman 做测试的 6 个常见问题
- 使用Postman+JMeter进行简单的接口测试
- Apifox-比postman更优秀的接口自动化测试平台
- Postman接口测试流程
- 一文搞定 Postman 接口自动化测试
- 只会postman单接口测试?这些高级功能你必须掌握
- postman|接口测试 | pre-request script 场景应用
- 【接口测试 】Day4-Postman高级用法2(附项目实战)
- postman测试REST接口注意事项
- 由保存当前用户引发的springboot的测试方式postman/restlet还是swagger2
- postman测试接口时参数为数组时怎么测试?
- Postman测试上传文件
- Python使用Flask实现RESTful API,使用Postman工具、requests库测试接口
- 对比3种接口测试的工具:jmeter+ant;postman;python的requests+unittest或requests+excel
- 接口 Postman 上传图片测试