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
如何安装 Postman

前往 Postman 官网免费下载,安装非常傻瓜。Postman 支持 Windows、Mac 和 Linux,也可以直接跑在浏览器里,使用相当便捷。

二. Postman 功能概览

Postman 经过多次迭代,整个界面没有冗余功能,直接看主界面,Postman 主要功能一目了然。

Postman 功能概览
Postman 功能概览
  1. 「New」在这里创建请求、测试集合、环境,还可以创建 API 文档、Mock Server、API
  2. 「Import」 导入功能可以导入测试集合、环境等信息
  3. 「HTTP Request」点击可查看请求选项,比如有GET, POST, COPY, DELETE 等,在 API 测试中,最常用等请求是 GET 和 POST
  4. 「Request URL」 API 的链接,发送和接受请求的链接
  5. 「Save」 保持按钮,Postman 不会自动保存,需要我们手动点击保存按钮
  6. 「Request tab」请求标签卡,这里显示我们当前正在处理的请求
  7. 「Params」 这里可填入请求需要的参数,比如Key - Value
  8. 「Auth」远程访问 API时,需要提交的身份认证信息,比如 username、password、token 等
  9. 「Headers」 请求头信息
  10. 「Body」 请求体信息,一般在 POST 中才会用到
  11. 「Pre-req」 在请求之前 先执行脚本
  12. 「Tests」可创建 Postman 测试断言,用来设置监测点自动化检测 API 是否达到预期
  13. 「Collections」 测试集合,类似树状结构的文件夹,放在同一个文件夹的 API 可一起进行批量测试、编辑和复制。
  14. 「History」测试的 log,可方便查询 Postman 对你的 API 进行了哪些操作
  15. 「Runner」 可以通过 Collection Runner 执行自动化测试,后文详细介绍
  16. 「My Workspace」创建工作区可与团队成员共享使用
  17. 「Invite」可邀请团队成员一起协同测试

三. 如何使用 Postman 处理 GET 请求

本教程使用模拟 API 工具 「JSONPlaceholder」进行 API 模拟操作。

https://jsonplaceholder.typicode.com/users
如何使用 Postman 处理 GET 请求
如何使用 Postman 处理 GET 请求

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 请求
如何使用 Postman 处理 POST 请求

1.新建一个请求标签

2.选择 POST 请求类型

3.输入 API 网址

4.点击 Body

5.选择 raw

6.选择 JSON 格式

7.填入上文的代码并点击测试

8.测试结果为 201 测试通过

9.POST 添加的内容已经完成,返回值 ID:11

五. 如何将请求参数化 - 全局变量、环境变量、集合变量

上面将的 GET 和 POST 只是常规 API 测试功能。接下来我们开始进入 API 自动化测试的部分,也是 Postman 的精华。自定义变量可以帮助我们在批量测试时,根据不同场景设定规则,让 Postman 根据规则自动测试一些列的测试项目。

我们先来看个变量样例:

如何将请求参数化 - 全局变量、环境变量、集合变量
如何将请求参数化 - 全局变量、环境变量、集合变量

1.可以看到原来的网址被{{kalacloud_url}} 所取代。

2.JSON 文件中数值被变量取代。

3.这是 Postman 的一个核心功能,数值变量化,在右上角的小眼睛里设置。

我们来看一下,Postman 三种常见的变量形式,以及如何定义变量

Postman 常用的三种变量形式

  • 全局变量:全局变量一旦声明,即可应用到 Postman 中所有测试的 API 中。任何请求都可以直接使用全局变量,它的作用域是全局的。
  • 环境变量:Postman 的环境变量可以理解为一组选项,当这组环境变量选项被选中时,才会生效,如上图中红3位置「卡拉云_API 测试 Demo」选项一样,选中时生效。
  • 集合变量:集合变量是针对集合(Collections)生效的,一个集合下可能有 N 条 API 测试,集合变量可以一次修改集合下的所有变量数值。

以上三种变量的作用域从大到小为 全局 > 集合 > 环境,当三个变量形式同时作用于一个 API 测试条时,Postman 会优先使用最小作用域变量。

六. Postman 定义变量的方法

全局变量与环境变量设置

全局变量与环境变量设置
全局变量与环境变量设置

1.点击右上角的小眼睛进入变量设置页面

2.上面为环境变量设置,当选中环境变量时(小眼睛 icon 的左边进行选择)此测试应用环境变量。

3.这里可以设置全局变量,全局变量应用在所有 API 接口测试环境中。

集合变量设置

集合变量设置
集合变量设置

集合变量在集合的条目后面点击「...」选择编辑 → Variables 在这里进行设置。

变量设置与应用

上文中,我们设置了 {{kalacloud_url}} 为 https://jsonplaceholder.typicode.com ,设置 {{kalacloud_id}} 为 11

我们把下面的 JSON 填入 Postman 相应位置,看看是否可执行。

[
    {
        "id":" {{kalacloud_id}}",
        "name": "Kalacloud",
        "username": "kalacloud",
        "email": "super@kalacloud.com"
    }
]
变量设置与应用
变量设置与应用

1.选择刚刚设置好的环境变量 2.在网址和 JSON 中都可以使用全局变量及环境变量 3.执行后,返回 201 并且 ID 返回为 11,变量设置成功

七. 如何创建 Postman Tests - Postman 断言功能

Postman 可以在 Tests 中自动生成 JavaScript 校验代码协助我们验证结果,这与上面我们讲到的变量设置一样,断言功能,也是 API 接口自动化测试中重要的一环。

(1)Postman 断言概览

  • 断言设置:Tests 选项卡
  • 断言语言:JavaScript
  • 断言执行原理:在相应体数据返回后执行
  • 断言结果查看: Test Results 选项中查看

有关断言的设置,我们一起操作一遍你就明白了。

(2)Postman 断言的实际应用

  • Postman 状态类断言
Postman 状态类断言
Postman 状态类断言

1.我们首先创建一个 GET 请求,然后点击 Postman 中 Tests 标签,进入断言设置。

2.我们可以在右侧已经预设好的断言代码,我们先点击「Status code: Code is 200」,可以看到预设的代码直接写入编辑框。

3.点击「Send」执行 GET,返回的断言可以在 Test Results 中看到,绿色的 PASS,说明执行成功。

  • Postman 结果比较类断言

我们再添加一条带有变量的 JavaScript 断言设置,比较预期结果和实际结果之间是否一致。

Postman 结果比较类断言
Postman 结果比较类断言

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
postman-tests-json

执行 GET 后,我们可以看到 Tests 的返回结果,ID 1. name 为 Leanne Graham 为 PASS。此功能帮助我们比较了预设值与实际返回值是否一致,在自动化测试中十分有用。

八. 如何创建 Postman 测试集合

如何创建 Postman 测试集合
如何创建 Postman 测试集合

Postman 在这次升级之后,创建测试合集的步骤极大被简化了。创建测试集合只需要点击上图中的「+」,然后给集合重命名即可。

然后我们在合集中创建多个测试条目,方便我们之后按照集合自动化测试。

九. 如何使用 Runner 批量执行 - API 接口自动化测试雏型

如何使用 Runner 批量执行 - API 接口自动化测试雏型
如何使用 Runner 批量执行 - API 接口自动化测试雏型

1.点击需要批量运行的集合的「...」然后选择「Run collection」进入 Runner 设置页面

2.iterations 是指遍历测试的次数,这次测试我们设置为 3

3.Delay 是指测试之间的延迟时间,这次设置为 2000ms

4.测试数据,配合上文讲解的参数化功能,以达到自动化测试的目的

5.配置好之后,点击 Run 开始批量执行

runner-postman
runner-postman

点击 Run 之后,Postman 按照设定连续执行合集里的 API 测试,并进行 3 组测试。到这里,Postman API 接口批量自动化测试的雏型已经出来了。在未来更复杂的 Postman 自动化接口测试流程也是有以上这些功能点构成的,你现在已经掌握了 Postman 自动化接口测试方法。

十. 总结

本文从 GET / POST 功能开始讲起,然后详细讲解了 API 接口自动化测试所需要的几个功能特点,全局/环境/集合变量设置,测试断言,测试集合等,以及最后的自动化测试工具 Runner。这些功能共同构成了 Postman API 接口自动化测试功能。

接着推荐一下卡拉云,卡拉云是一套低代码开发工具,支持多种数据库及 API 接入。你不仅可以在卡拉云中测试 API ,还能直接把返回的结果映射到组件上,不用写一行代码,只需简单拖拽即可搭建属于你自己的后台工具。

卡拉云用户认证系统
卡拉云用户认证系统

上图为使用「卡拉云」调用金数据 API ,然后将返回结果直接映射到表格组件中。你仅需一步,即验证了 API 可用性,又直接把你正在搭的工具给作出来了。立即试用卡拉云,一分钟快速搭建属于你自己的 API 工具。

更多数据库相关教程可访问 卡拉云 查看。

原文地址:https://www.cnblogs.com/karkash/p/15755834.html