Postman 教程
什么是Postman?
Postman 是一款可扩展的 API 测试工具,能快速集成到 CI/CD 流程中。它始于 2012 年,是 Abhinav Asthana 的一个业余项目,旨在简化测试和开发中的 API 工作流程。API 是应用程序编程接口(Application Programming Interface)的缩写,它允许软件应用程序通过 API 调用相互通信。
为什么要使用 Postman?
如今,Postman 软件拥有超过 400 万用户,因以下原因成为首选工具:
- 易于访问 – 要使用 Postman 工具,只需登录自己的账户,只要电脑上安装了 Postman 应用程序,就能随时随地轻松访问文件。
- 使用集合 – Postman 允许用户为其 Postman API 调用创建集合。每个集合都可以创建子文件夹和多个请求。这有助于组织你的测试套件。
- 协作 – 集合和环境可以导入或导出,便于共享文件。也可以使用直接链接来共享集合。
- 创建环境 – 拥有多个环境有助于减少测试的重复性,因为可以使用相同的集合,但针对不同的环境。这就是参数化将要发挥作用的地方,我们将在后续课程中讨论。
- 创建测试 – 可以为每个 Postman API 调用添加测试检查点,例如验证 HTTP 响应状态是否成功,这有助于确保测试覆盖率。
- 自动化测试 – 通过使用 Collection Runner 或 Newman,测试可以多次迭代运行,从而节省重复测试的时间。
- 调试 – Postman 控制台有助于检查已检索的数据,便于调试测试。
- 持续集成 – 凭借其支持持续集成的能力,开发实践得以维持。
如何使用 Postman 执行 API
下面是 Postman 工作区。让我们一步步探索如何使用 Postman 以及 Postman 工具的不同功能!
- New(新建)– 在这里你可以创建一个新的请求、集合或环境。
- Import(导入)– 用于导入一个集合或环境。有从文件、文件夹、链接或粘贴原始文本等选项。
- Runner(运行器)– 自动化测试可以通过 Collection Runner 执行。这将在下一课中进一步讨论。
- Open New(打开新的)– 通过点击此按钮打开一个新的标签页、Postman 窗口或 Runner 窗口。
- My Workspace(我的工作区)– 你可以单独或以团队形式创建一个新的工作区。
- Invite(邀请)– 通过邀请团队成员在一个工作区上进行协作。
- History(历史记录)– 你过去发送的请求将显示在历史记录中。这使得跟踪你所做的操作变得容易。
- Collections(集合)– 通过创建集合来组织你的测试套件。每个集合可以有子文件夹和多个请求。请求或文件夹也可以被复制。
- Request tab(请求标签页)– 这会显示你正在处理的请求的标题。默认情况下,没有标题的请求会显示“Untitled Request”。
- HTTP Request(HTTP 请求)– 点击这里会显示一个不同请求的下拉列表,如 GET、POST、COPY、DELETE 等。在 Postman API 测试中,最常用的请求是 GET 和 POST。
- Request URL(请求 URL)– 也称为端点(endpoint),你将在这里指定 API 将与之通信的链接。
- Save(保存)– 如果请求有更改,必须点击保存,这样新的更改才不会丢失或被覆盖。
- Params(参数)– 你将在这里编写请求所需的参数,例如键值对。
- Authorization(授权)– 为了访问 API,需要适当的授权。它可能是用户名和密码、bearer token 等形式。
- Headers(请求头)– 你可以根据组织的需求设置请求头,例如内容类型为 JSON。
- Body(请求体)– 在这里可以自定义请求中的详细信息,常用于 POST 请求。
- Pre-request Script(预请求脚本)– 这些是在请求执行前执行的脚本。通常,用于设置环境的预请求脚本确保测试在正确的环境中运行。
- Tests(测试)– 这些是在请求期间执行的脚本。有测试很重要,因为它设置了检查点来验证响应状态是否正常、检索的数据是否符合预期以及其他测试。
使用 GET 请求
Get 请求用于从给定的 URL 检索信息。不会对端点进行任何更改。
在本 Postman 教程的所有示例中,我们将使用以下 URL:https://jsonplaceholder.typicode.com/users
在工作区中
- 将您的 HTTP 请求设置为 GET。
- 在请求 URL 字段中,输入链接
- 点击 Send
- 您将看到 200 OK 消息
- 在响应体中应该有 10 个用户结果,这表明您的测试已成功运行。
*注意: 有时 Get Postman 请求可能会不成功。这可能是由于请求 URL 无效或需要身份验证。
使用 POST 请求
Post 请求与 Get 请求不同,因为用户向端点添加数据,涉及数据操作。使用与上一个 Get 请求教程中相同的数据,我们现在来添加我们自己的用户。
步骤 1) 点击一个新标签页来创建一个新请求。
步骤 2) 在新标签页中
- 将您的 HTTP 请求设置为 POST。
- 在请求 URL 中输入相同的链接:https://jsonplaceholder.typicode.com/users
- 切换到 Body 标签页
步骤 3) 在 Body 中,
- 点击 raw
- 选择 JSON
步骤 4) 从之前的 get 请求中复制并粘贴一个用户结果,如下所示。确保代码已正确复制,花括号和方括号都配对。将 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" } } ]
*注意:在线 Post 请求应具有正确的格式,以确保请求的数据将被创建。一个好的做法是首先使用 Get 来检查请求的 JSON 格式。您可以使用像 https://jsonformatter.curiousconcept.com/ 这样的工具。
步骤 5) 接下来,
- 点击 Send。
- 应显示状态:201 Created
- 提交的数据显示在响应体中。
如何参数化请求
数据参数化是 Postman 最有用的功能之一。您可以使用带有参数的变量,而不是创建具有不同数据的相同请求。这些数据可以来自数据文件或环境变量。参数化有助于避免重复相同的测试,并且迭代可用于自动化测试。
参数是通过使用双花括号创建的:{{sample}}。让我们看一个在我们之前的请求中使用参数的例子。
现在让我们创建一个参数化的 get 请求。
步骤 1)
- 将您的 HTTP 请求设置为 GET
- 输入此链接:https://jsonplaceholder.typicode.com/users。将链接的第一部分替换为一个参数,例如 {{url}}。请求 URL 现在应该是 {{url}}/users。
- 点击 send。
应该没有响应,因为我们还没有设置参数的来源。
步骤 2) 要使用该参数,你需要设置环境
- 点击眼睛图标
- 点击编辑以将变量设置为全局环境,该环境可在所有集合中使用。
步骤 3) 在变量中,
- 将名称设置为 url,其值为 https://jsonplaceholder.typicode.com
- 点击 Save。
步骤 4) 如果您看到下一个屏幕,请点击关闭
步骤 5) 返回到您的 Get 请求,然后点击发送。现在您的请求应该有结果了。
*注意: 务必确保您的参数有来源,例如环境变量或数据文件,以避免错误。
如何创建 Postman 测试
Postman 测试是添加到请求中的 JavaScript 代码,可帮助您验证结果,例如成功或失败的状态、预期结果的比较等。它通常以 pm.test 开头。它可以与其他工具中可用的断言(asserts)、验证(verify)命令相比较。
让我们使用 Postman 对上一课中的参数化请求进行一些基本的 API 测试。
步骤 1) 转到上一个教程中的 GET 用户请求。
- 切换到 tests 标签页。右侧是代码片段。
- 在代码片段部分,点击“Status code: Code is 200”。
窗格会自动填充内容
步骤 2) 现在点击“发送”。测试结果现在应该会显示出来。
步骤 3) 回到测试标签页,让我们添加另一个测试。这次我们将比较预期结果和实际结果。
在代码片段部分,点击“Response body:JSON value check”。我们将检查 Leanne Graham 的 userid 是否为 1。
步骤 4)
- 将代码中的“Your Test Name”替换为“检查 id 为 1 的用户是否是 Leanne Graham”,以便测试名称能准确说明我们想要测试的内容。
- 将 jsonData.value 替换为 jsonData[0].name。要获取路径,请检查之前 Get 请求结果的 body。由于 Leanne Graham 的 userid 是 1,jsonData 在第一个结果中,所以应该从 0 开始。如果你想获取第二个结果,请使用 jsonData[1],后续结果以此类推。
- 在 to 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) 点击发送。现在你的请求应该有两个通过的测试结果。
*注意:在 Postman 中可以创建不同类型的测试。尝试探索该工具,看看哪些测试适合您的需求。
如何创建集合
集合在组织测试套件中扮演着重要角色。它可以被导入和导出,从而便于在团队之间共享集合。在本教程中,我们将学习如何创建和执行一个集合。
让我们开始创建一个集合
步骤 1) 点击页面左上角的“New”按钮。
步骤 2) 选择 Collection。创建集合窗口应该会弹出。
步骤 3) 输入所需的集合名称和描述,然后点击创建。一个集合现在应该被创建了。
步骤 4) 返回到之前的 Get 请求。点击保存
步骤 5)
- 选择 Postman 测试集合。
- 点击保存到 Postman 测试集合
步骤 6) Postman 测试集合现在应该包含一个请求。
步骤 7) 对之前的 Post 请求重复步骤 4-5,这样集合现在将有两个请求。
如何使用 Collection Runner 运行集合
有两种方式可以运行一个集合,分别是 Collection Runner 和 Newman。让我们从在 Collection Runner 中执行集合开始。
步骤 1) 点击页面顶部“Import”按钮旁边的“Runner”按钮。
步骤 2) Collection Runner 页面应如下所示。以下是各个字段的描述
步骤 3) 通过设置以下内容来运行您的 Postman 测试集合
- 选择 Postman 测试集合 - 将迭代次数设置为 3
- 将延迟设置为 2500 毫秒
- 点击 Run Postman Test... 按钮
步骤 4) 点击运行按钮后,应显示运行结果页面。根据延迟时间,您应该能看到测试的执行过程。
- 测试完成后,你可以看到测试状态是“通过”还是“失败”,以及每次迭代的结果。
- 您会看到 Get 请求的通过状态
- 由于我们没有为 Post 请求设置任何测试,应该会有一条消息提示该请求没有任何测试。
你可以看到在请求中加入测试是多么重要,这样你就可以验证 HTTP 请求状态是否成功,以及数据是否被创建或检索。
如何使用 Newman 运行集合
另一种运行集合的方式是通过 Newman。Newman 和 Collection Runner 之间的主要区别如下:
- Newman 是 Postman 的一个附加组件。你需要从原生应用中单独安装它。
- Newman 使用命令行,而 Collection Runner 有一个图形用户界面。
- Newman 可用于持续集成。
要安装 Newman 并从它运行我们的集合,请执行以下操作:
步骤 1) 使用此链接安装 nodejs: https://node.org.cn/download/
步骤 2) 打开命令行并输入
npm install -g newman
Newman 现在应该已经安装在您的计算机上了。
步骤 3) 一旦 Newman 安装完毕,让我们回到 Postman 工作区。在 Collections 框中,点击三个点。现在应该会出现选项。选择 Export。
步骤 4) 选择“将集合导出为 Collection v2.1 (推荐)”,然后点击“导出”。
步骤 5) 选择你想要的位置,然后点击保存。建议为你的 Postman 测试创建一个专门的文件夹。现在,一个集合应该已经导出到你选择的本地目录了。
步骤 6) 我们还需要导出我们的环境。点击全局环境下拉菜单旁边的眼睛图标,选择下载为 JSON。选择你想要的位置,然后点击保存。建议将环境与你的集合放在同一个文件夹中。
步骤 7) 环境现在应该已经导出到与集合相同的本地目录中。
步骤 8) 现在返回命令行,并将目录更改为您保存集合和环境的位置。
cd C:\Users\Asus\Desktop\Postman Tutorial
步骤 9) 使用此命令运行您的集合
newman run PostmanTestCollection.postman_collection.json -e Testing.postman_globals.json
运行结果现在应如下所示。
以下是一些基本的 Newman 执行代码作为参考指南
- 仅运行一个集合。 如果没有环境或测试数据文件依赖,可以使用此方法。
- 运行一个集合和环境。 -e 指示符表示环境。
- 使用期望的迭代次数运行集合。
- 使用数据文件运行。
- 设置延迟时间。 这很重要,因为如果测试在没有延迟的情况下运行,可能会失败,原因是请求在先前请求在端点服务器上完成处理之前就已启动。
newman run <collection name>
newman run <collection name> -e <environment name>
newman run <collection name> -n <no.of iterations>
newman run <collection name> --data <file name> -n <no.of iterations> -e <environment name>
newman run <collection name> -d <delay time>
我们的 Postman 面试问题指南将帮助您通过面试,并助您获得理想的软件测试工作。
摘要
- 使用 Postman 进行 API 测试:Postman 是一个用于测试 API 的应用程序。Postman 是 API 测试中最受欢迎的工具之一,它通过向 Web 服务器发送请求并获取响应来进行测试。
- 易用性、集合的使用、协作、持续集成,是 Postman 中需要学习的一些关键特性。
- 建议您在 Postman 中创建一个账户,这样您的集合就可以在线使用了。
- 您可以在 Postman 中参数化请求。
- 您可以创建测试来验证 postman 请求。
- 集合可以使用 Newman 或 Collection Runner 运行。