一文搞定Postman(菜鸟必看)

2023-10-27

什么是Postman?

Postman是一个可扩展的 API 测试工具,可以快速集成到 CI/CD 管道中。它于 2012 年作为 Abhinav Asthana 的一个副项目启动,旨在简化测试和开发中的 API 工作流程。API 代表应用程序编程接口,它允许软件应用程序通过 API 调用相互通信。

为什么使用Postman?

如今,Postman 软件拥有超过 400 万用户,已成为接口调试/测试首选工具,原因如下:

  1. 便捷性——要使用Postman工具,只要计算机上安装了Postman应用程序,登录自己的帐户,就可以随时随地轻松访问文件。
  2. collection的使用 – Postman 允许用户为其 Postman API 调用创建collection。每个collection可以创建子文件夹和多个请求。这有助于组织您的测试套件。
  3. 协作 – 可以导入或导出collection和环境,从而轻松共享文件。直接链接也可用于共享collection。
  4. 创建环境——拥有多个环境有助于减少测试的重复,因为可以使用相同的collection但用于不同的环境。这是进行参数化的地方,我们将在以后的课程中讨论这一点。
  5. 创建测试 – 可以将测试检查点(例如验证 HTTP 响应状态是否成功)添加到每个 Postman API 调用中,这有助于确保测试覆盖率。
  6. 自动化测试 – 通过使用 Collection Runner 或 Newman,可以多次迭代运行测试,从而节省重复测试的时间。
  7. 调试 – Postman 控制台有助于检查检索了哪些数据,从而可以轻松调试测试。
  8. 持续集成——凭借其支持持续集成的能力,可以维护开发实践。

如何使用Postman执行API

下面是Postman工作区。让我们逐步探索如何使用 Postman工具。

  1. 新建 – 在此处创建新的请求、collection或环境。
  2. 导入 – 用于导入collection或环境。有从文件、文件夹导入、链接或粘贴原始文本等选项。
  3. Runner – 可以通过 Collection Runner 执行自动化测试。这将在下一课中进一步讨论。
  4. 打开新窗口 – 单击此按钮打开新选项卡、Postman 窗口或 Runner 窗口。
  5. 我的工作区 – 您可以单独或作为团队创建新的工作区。
  6. invite – 通过邀请团队成员在工作空间中进行协作。
  7. 历史记录 – 您过去发送的请求将显示在历史记录中。这样可以轻松跟踪您所做的操作。
  8. collection – 通过创建collection来组织您的测试套件。每个collection可能有子文件夹和多个请求。请求或文件夹也可以复制。
  9. 请求选项卡 – 显示正在打开的请求标题。默认情况下,对于没有标题的请求,将显示“无标题请求”。
  10. HTTP 请求 – 单击此按钮将显示不同请求的下拉列表,例如 GET、POST、COPY、DELETE 等。在 Postman API 测试中,最常用的请求是 GET 和 POST。
  11. 请求URL – 可以在此处输入 API 。
  12. 保存 – 如果请求有更改,必须单击“保存”,以免新更改丢失或被覆盖。
  13. params – 可以在此处写入请求所需的参数,例如键值。
  14. 鉴权 – 为了访问 API,需要适当的授权。它可以是用户名和密码、不记名令牌等形式。
  15. headers – 可以根据组织的需要设置标头,例如内容类型 JSON。
  16. body – 可以在此处自定义 POST 请求中常用的请求中的详细信息。
  17. 请求预处理脚本 – 这些脚本将在请求之前执行。通常,设置环境的预请求脚本用于确保测试将在正确的环境中运行。
  18. 测试模块 – 这些是在请求期间执行的脚本。进行测试很重要,因为它设置检查点来验证响应状态是否正常、检索到的数据是否符合预期以及其他测试。

使用 GET 请求

Get 请求用于从给定 URL 信息。我们将在本 Postman 教程中的所有示例中使用以下 URL

https://jsonplaceholder.typicode.com/users		

在工作区中

  1. 将HTTP 请求设置为 GET。
  2. 在请求 URL 字段中输入链接
  3. 单击发送
  4. 将看到 200 OK 消息
  5. body 中应该有 10 个用户结果,这表明写的测试已成功运行。

处理 POST 请求

Post 请求与 Get 请求不同,因为用户将数据添加到端点时会进行数据操作。

步骤 1) 单击新选项卡以创建新请求。

步骤 2) 在新选项卡中

  1. 将 HTTP 请求设置为 POST。
  2. 在请求网址中输入相同的链接: https://jsonplaceholder.typicode.com/users
  3. 切换到“body”选项卡

步骤3)在body中,

  1. 单击原始
  2. 选择 JSON

步骤 4)仅复制并粘贴上一个获取请求的一个用户结果,如下所示。确保已使用成对的大括号和方括号正确复制代码。将 id 更改为 11,将 name 更改为任何所需的名称。您还可以更改其他详细信息,例如地址。

[
    {
        "id": 11,
        "name": "Krishna Rungta",
        "username": "Bret",
        "email": "Sincere@april.biz",
        "address": {
            "street": "Kulas Light",
            "suite": "Apt. 556",
            "city": "Gwenborough",
            "zipcode": "92998-3874",
            "geo": {
                "lat": "-37.3159",
                "lng": "81.1496"
            }
        },
        "phone": "1-770-736-8031 x56442",
        "website": "hildegard.org",
        "company": {
            "name": "Romaguera-Crona",
            "catchPhrase": "Multi-layered client-server neural-net",
            "bs": "harness real-time e-markets"
        }
    }
]

步骤 5) 接下来,

  1. 单击发送。
  2. 状态:显示201 created
  3. 发布的数据显示在body中。

如何参数化请求

数据参数化是 Postman 最有用的功能之一。可以使用带有参数的变量,而不是使用不同的数据创建相同的请求。这些数据可以来自数据文件或环境变量。参数化有助于避免重复相同的测试,并且迭代可用于自动化测试。

参数是通过使用双大括号创建的:{{sample}}。让我们看一下之前请求中使用参数的示例:

现在让我们创建一个参数化 get 请求。

步骤1)

  1. 将 HTTP 请求设置为 GET
  2. 输入此链接: https://jsonplaceholder.typicode.com/users。将链接的第一部分替换为参数,例如 {{url}}。请求 url 现在应为 {{url}}/users。
  3. 单击发送。

因为我们还没有设置参数的来源,所以不应该有任何响应。

步骤2)使用参数需要设置环境变量

  1. 单击“眼睛”图标
  2. 单击编辑将变量设置为可在所有collection中使用的全局环境。

步骤3) 在变量中,

  1. 将名称设置为 url,即 https://jsonplaceholder.typicode.com
  2. 单击“save”。

步骤 4)如果看到下一个页面,请单击“关闭”

步骤 5)返回请求,然后单击发送,展示请求结果。

如何创建Postman测试

Postman 测试是添加到请求中的 JavaScript 代码,可帮助用户验证结果,例如成功或失败状态、预期结果比较等。它通常以 pm.test 开头。它可以与其他工具中可用的断言、验证命令进行比较。

让我们使用 Postman 对上一课中的参数化请求进行一些基本的API 测试。

步骤 1)转到上一教程中的 GET 用户请求。

  1. 切换到测试选项卡,右侧是片段代码。
  2. 在代码片段部分中,单击“状态代码:代码为 200。

该窗格是自动填充的

步骤 2)现在单击发送,显示测试结果。

步骤 3)返回测试选项卡,让我们添加另一个测试。这次我们将预期结果与实际结果进行比较。

在代码片段部分中,单击“响应body:JSON 值检查”。我们将检查 Leanne Graham 是否具有用户 ID 1。

步骤4)

  1. 将代码中的“您的测试名称”替换为“检查 id1 的用户是否是 Leanne Graham”,以便测试名称准确指定我们要测试的内容。
  2. 将 jsonData.value 替换为 jsonData[0].name。要获取路径,请先检查获取结果中的body。由于 Leanne Graham 的用户 ID 为 1,因此 jsonData 位于第一个结果中,该结果应从 0 开始。如果您想获取第二个结果,请使用 jsonData[1] 等获取后续结果。
  3. 在 eql 中,输入“Leanne Graham”
pm.test("Check if user with id1 is Leanne Graham", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData[0].name).to.eql("Leanne Graham");
});

步骤 5)单击发送。现在有两个针对请求已通过的测试结果。

如何创建collections

collection在组织测试套件中发挥着重要作用,它可以导入和导出,从而可以轻松地在团队之间共享collection。在本教程中,我们将学习如何创建和执行collection。

让我们开始创建一个collection:

步骤1)点击页面左上角的新建按钮。

步骤 2)选择collection,弹出创建collection窗口。

步骤3)输入所需的collection名称和描述,然后单击创建。

步骤4)返回之前的Get请求,单击“保存”

步骤5)

  1. 选择Postman测试collection。
  2. 单击“保存到 Postman Test collection”

步骤 6) Postman Test collection现在包含一个请求。

步骤 7)对之前的 Post 请求重复步骤 4-5,以便collection现在有两个请求。

如何使用 Collection Runner 运行collection

运行collection有两种方法,即 Collection Runner 和 Newman。让我们首先在 Collection Runner 中执行collection。

步骤 1)单击页面顶部“import”按钮旁边的“Runner”按钮。

步骤 2) Collection Runner 页面应如下所示,以下是各个字段的说明

步骤 3)通过设置以下内容来运行 Postman 测试collection:

  • 选择Postman Test collection-设置迭代次数为3
  • 设置延迟为2500毫秒
  • 单击运行 ...按钮

步骤 4) 单击“运行”按钮后,应显示“运行结果”页面,可以看到测试的执行情况。

  1. 测试完成后,可以查看测试状态(通过或失败)以及每次迭代的结果。
  2. 会看到获取请求的通过状态
  3. 由于我们没有对 Post 进行任何测试,因此有一条消息表明该请求没有进行任何测试。

如何使用 Newman 运行collection

运行collection的另一种方式是通过 Newman。Newman 和 Collection Runner 之间的主要区别如下:

  1. Newman 是 Postman 的附加组件。您需要将其与本机应用程序分开安装。
  2. Newman 使用命令行,而 Collection Runner 有 GUI。
  3. Newman可用于持续集成。

要安装 Newman 并从中运行我们的collection,请执行以下操作:

步骤1)使用此链接安装nodejs:Index of /download/

步骤2)打开命令行并输入

npm install -g newman

Newman 现在应该已安装在您的计算机上。

步骤 3)安装 Newman 后,让我们返回 Postman 工作区。在“collection”框中,单击三个点,现在应该出现选项,选择export。

步骤 4)选择将collection导出为collection v2.1(推荐),然后单击导出。

步骤 5)选择所需的位置,然后单击“保存”。建议为 Postman 测试创建一个特定的文件夹。

步骤 6)我们还需要导出我们的环境。单击“全局”中环境下拉列表旁边的眼睛图标,选择“下载为 JSON”。选择所需保存的位置,然后单击“保存”。建议环境与collection位于同一文件夹中。

步骤 7)现在应该将环境导出到与 Collection 相同的本地目录。

步骤 8)现在返回命令行并将目录更改为保存collection和环境的位置。

 cd C:\Users\Asus\Desktop\Postman Tutorial

步骤 9)使用以下命令运行collection:

 newman run PostmanTestCollection.postman_collection.json -e Testing.postman_globals.json

运行结果现在应如下所示。

作为指导,请参考一些用于执行的基本纽曼代码:

  1. 仅运行collection。如果没有环境或测试数据文件依赖性,则可以使用此方法。
newman run <collection name>
  1. 运行collection和环境。-e 指示符用于环境。
newman run <collection name> -e <environment name>
  1. 使用所需的编号运行collection。迭代次数。
newman run <collection name> -n <no.of iterations>
  1. 使用数据文件运行。
newman run <collection name> --data <file name>  -n <no.of iterations> -e <environment name>
  1. 设置延迟时间。这很重要,因为如果由于请求在端点服务器上的前一个请求完成处理之前就启动而没有延迟地运行,则测试可能会失败。
newman run <collection name> -d <delay time>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文搞定Postman(菜鸟必看) 的相关文章

  • 如何在多个Lua State(多线程)之间传递数据?

    我在中启动Redis连接池redis lua 通过从 C 调用 我得到了redis lua state 此 Lua 状态全局启动一次 仅在其他线程中启动get从中 当有一个 HTTP 请求 工作线程 时 我需要从redis lua stat
  • 十六进制常数 = 格式错误的数字?

    我有一个 Lua 脚本 我试图在其中使用十六进制数字 0x 如果我使用官方 Windows 二进制文件在控制台中运行此脚本 它可以正常工作 但是如果我在我的应用程序中运行它 简单的 dofile 我得到 malformed number n
  • 了解静态链接嵌入式lua环境中lua扩展dll的构建/加载

    我有一个相对复杂的 lua 环境 我试图了解以下内容如何工作 起始设置包括以下两个模块 主要应用 无lua环境 DLL 静态链接到lua lib 包括解释器 该 dll 被加载到主应用程序中 并运行 lua 控制台解释器和可从控制台访问的
  • Lua中如何对数字表求和?

    Lua有内置的吗sum 功能 我似乎找不到一个 我几乎翻遍了文档中的所有地方 或许table sum 或类似的东西 以遵循当前的约定 但由于我找不到它 我不得不实现它 function sum t local sum 0 for k v i
  • 为什么 LuaJIT 和 Lua 中的数字舍入格式不同?

    Using string format 据说遵循 Csprintf 在 LuaJIT 轮次中格式化数字与我尝试过的所有其他 Lua 解释器不同 lua v Lua 5 4 1 Copyright C 1994 2020 Lua org PU
  • corona sdk中拖动物理对象

    我尝试在场景中拖动重力 0 0 的动态主体 我有一个主体类型为动态的正方形 以及一个主体类型为静态的图像 但是当将方形拖动到图像上时 它会产生一点力 但是可以超出图像并传递到另一边 如图所示 这是我拖动正方形的代码 local functi
  • lua_resume 的 from 参数的含义

    From Lua 5 2 参考手册 http www lua org manual 5 2 manual html lua resume int lua resume lua State L lua State from int nargs
  • 如何在 Lua 中实现 OO?

    Lua 没有内置对 OO 的支持 但它允许您自己构建它 您能否分享一些实现面向对象的方法 请为每个答案写一个例子 如果您有更多示例 请发布另一个答案 我喜欢将 OOP 视为容器 对象 内的数据封装以及可以使用该数据完成的操作子集 还有很多内
  • 如何在Conky中实现一个基本的Lua功能?

    我正在尝试向我的 Conky 添加一个函数 该函数打印字符串的长度以用于调试目的 代码位于名为的文件内test lua 非常简单 function test word return string len word end 我这样加载它 在我
  • 尝试将 nil 与数字堆栈回溯进行比较?

    我正在通过以下链接玩 Lua https www lua org pil 4 2 html https www lua org pil 4 2 html并对某一点感到困惑 Lua 5 2 4 Copyright C 1994 2015 Lu
  • Lua中如何获取表中的最大整数?

    Lua中如何获取表中的最大整数 在Lua 5 1及更早版本中 你可以使用 math max unpack 1 2 3 4 5 这受到Lua堆栈大小的限制 在 PUC Lua 5 1 上 该值的最大值可达 ca 8000 个数字 如果堆栈空闲
  • lua中的权限问题

    是否需要在 corona build settings 中设置一些特定权限才能将高分永久保存在文件中 每次运行代码时都会出现 权限被拒绝 的错误 如何纠正这个错误 这是我尝试过的代码 function read score local f1
  • 如何使用 srlua 制作可执行的 Lua 脚本?

    我的主要目标是使我的 lua 文件成为可执行文件或使其成为咬代码 最好是两者皆有 我正在尝试 srlua 但在自述文件中它告诉我要做的事情 对于Windows 您需要首先创建srlua exe和glue exe 然后为每个 你想把Lua程序
  • 如何在我的 Lua 脚本中添加“睡眠”或“等待”?

    我正在尝试通过更改一天中的时间来为游戏制作一个简单的脚本 但我想快速完成 这就是我要说的 function disco hour minute setTime 1 0 SLEEP setTime 2 0 SLEEP setTime 3 0
  • Lua 访问表的键和值

    我想在关卡编辑器中读取 Lua 文件 这样我就可以以可视化格式显示其数据供用户编辑 如果我有一个像这样的 Lua 表 properties Speed 10 TurnSpeed 5 Speed显然是关键并且10价值 我知道如果我知道像这样的
  • 如何终止Lua脚本?

    如何终止 Lua 脚本 现在我在 exit 方面遇到问题 我不知道为什么 这更像是一个 Minecraft ComputerCraft 问题 因为它使用了包含的 API 这是我的代码 while true do if turtle dete
  • Lua 的标准(或最好支持的)大数(任意精度)库是什么?

    我正在处理大量无法四舍五入的数字 使用 Lua 的标准数学库 似乎没有方便的方法来保持精度超过某些内部限制 我还看到有几个库可以加载以处理大数字 http oss digirati com br luabignum http oss dig
  • 克隆一个lua状态

    最近 我在使用C 和Lua进行开发时遇到了很多困难 我的情况是 由于某种原因 我的 C 程序中可能有数千个 Lua 状态 但这些状态在初始化后应该是相同的 当然 我可以为每个状态执行 luaL loadlibs 和 lua loadfile
  • Lua(命令行)执行后保持打开状态

    我已经广泛寻找这个但我似乎找不到它 有什么方法可以执行Lua通过双击脚本 在中执行它 Lua Command Line 并在执行后保持打开状态 例如 print Hello World 该代码可以编译并运行 但是如果我双击hello lua
  • 如何从表成员中引用lua表成员?

    我在 lua 有一张表 enUS LOCALE STHOUSANDS Thousands separator e g comma patNumber d LOCALE STHOUSANDS d regex to find a number

随机推荐

  • [搭建CLI效率工具] Rollup + TypeScript 搭建CLI工程

    环境搭建 工欲善其事必先利其器 使用Rollup搭建Typescript开发环境 毕竟Typescript是大势所趋并且Rollup相比较webpack对于node模块来说比较优化 创建项目目录并初始化 mkdir
  • vue中自定义链接的href内容,设置动态链接,动态添加请求头

    在http js页面定义好了需要动态添加的接口请求头 OPEN UR 如下 列如下 需要给点击下载模板时的 a 标签动态添加请求头和接口 html部分 a size middle class middleBtn 下载模板 a js部分 im
  • 如何更改element-ui自定义主题

    element ui总结 一 如何更改element ui的主题 1 在src下创建element variables scss文件 改变主题色变量 color primary a0c69d 改变 icon 字体路径变量 必需 font p
  • 树莓派安装openCV做图像识别

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 本文转自 新机器视觉 有时候我们会使用树莓派和摄像头去做图像识别 在树莓派和LINUX系统中最常用opencv去做图像识别 这次来介绍下树莓派安装opencv和用树莓派做
  • SD卡存储程序

    把采集的ad的数据存到SD卡中 int main void u16 fwrite counter 0 unsigned char Temp 11 data ok flag 1 for i 0 i lt 12 i ad i 0 for i 0
  • vtk创建点

    使用vtk库创建三维空间中的点 引言 开发环境 示例一 项目结构 实现代码 运行效果 示例二 项目结构 实现代码 运行效果 总结 引言 本文仅适合初学者 本文不提供vtk动态库的生成 以及在QtCreator中的引进vtk时的配置 本文先由
  • 牛人项目失败的总结

    tom lt 遇到的失败项目比较多 让人郁闷 仔细分析原因 主要在于 1 项目开始需求不明确 领导决定动手 就开始启动项目 造成和客户需要差距太大 导致失败 2 需求变更没有控制 客户提出新的需求 或者改变原来的需求 没有一个好的控制流程
  • 【模式识别4】YOLO目标检测数据集xml格式转txt格式

    YOLO目标检测数据集xml格式转txt格式 1 转换前的xml格式 2 xml格式转txt格式代码 2 1 源代码 2 2 需要修改的地方 3 转换后的txt格式 代码资源 voc2txt py 1 转换前的xml格式 如果我们使用Lab
  • 男人必读 --看了永不后悔,女人想看也可以进去……

    1 事业永远第一 虽然金钱不是万能的 但没有钱是万万不能的 虽然这句话很俗 但绝对有道理 所以30岁之前 请把你大部分精力放在你的事业上 事业远比爱情重要 如果说事业都不能永恒 那么爱情只能算是昙花一现 记 得那首 没有钱你会爱我吗 的歌吗
  • 基于Koa的微信第三方平台使用及搭建说明(一)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 前言 公司内部使用说明文档 记录一下 目的在于使内部人员了解和熟悉项目 不在于搭建教程 看不明白的就别看了 一 关于 Node Node是什么 官网上给出的定义是 一个搭建
  • Mac 好用的shell终端

    1 搜索关键词 my zsh 2 http ohmyz sh
  • 【docker】docker-compose实战之MySQL安装与配置

    唠嗑部分 首先说一下 MySQL是否适合容器化 数据库首先要解决数据的持久化问题 以确保服务宕机之后数据不会丢失 docker提供的数据卷虽然可以让数据保存在宿主机上 但是容器的 volumn数据卷的设计是围绕 Union FS镜像层提供持
  • scratch颜色实验(R+G+B)/自制素材/少儿编程scratch教研教案课件课程素材脚本

    scratch颜色实验 wmv
  • 在线接口文档管理工具推荐,支持在线测试,生成漂亮的http文档

    易文档 英文名叫easydoc 是新出来的文档管理平台 跟市面的那些有所不同 这个不管是编写体验还是预览 专业性和美观性都会大大超越其他的 看下他的预览效果 市面很多http接口文档的编写都是直接写markdown文档 这种编写起来特别麻烦
  • VBA 向文件写入编码为UTF-8的数据

    Sub Test 需要引入 ActiveX Data Objects ADO 组件 即 Microsoft ActiveX Data Objects 2 5 Library 或者 Microsoft ActiveX Data Objects
  • qt右键弹出菜单的一些实现方法

    在qt中 关于右键弹出菜单 有几种实现方法 1 在窗口初始化时 修改指定控件的右键菜单策略 然后把右键点击信号和某个槽函数连接 设置btnNew按钮的右键菜单策略 ui gt btnNew gt setContextMenuPolicy Q
  • 有趣的telnet站点

    这个都能做电影 不知道他们花了多长的时间 telnet towel blinkenlights nl 下面这个是其他的一些站点 我没有看过 留个链接 http www telnet org htm places htm
  • 记第一次拆机

    两周前的周日 也不知道抽了什么风萌生了拆笔记本电脑的想法 可能是由于从购买之后风扇都没清理过的原因吧 笔记本电脑品牌联想 型号G480 2013年大一暑假购置的机子 也就是普通的上网本吧 玩游戏确实有点卡 比如剑灵 好了 言归正传 下面开始
  • 卡西欧计算机的闹铃怎么取消,卡西欧g-shock怎么关闹钟

    卡西欧g shock怎么关闹钟 连续按mode按键 通常是左下角按键 直至液晶屏幕出现al1 al2 al3等等字样 然后 第二显示屏会显示 on 按 adjust 就可以改为 of 就关闭了 卡西欧g shock闹钟怎么设置 1 按MOD
  • 一文搞定Postman(菜鸟必看)

    什么是Postman Postman是一个可扩展的 API 测试工具 可以快速集成到 CI CD 管道中 它于 2012 年作为 Abhinav Asthana 的一个副项目启动 旨在简化测试和开发中的 API 工作流程 API 代表应用程