Top 55+ Most Asked Postman Interview Questions and Answers

2025年3月17日 | 阅读 14 分钟

1) Postman 是什么?

Postman 是一款免费的基于 HTTP 客户端的软件应用程序,也是一个用于 API 开发的协作平台。它主要用于执行 API 测试。它是一个非常流行的 API 客户端,可以方便开发者,并提供一个平台来设计、构建、共享、测试和记录 API。Postman 支持通过 GUI(图形用户界面)进行 HTTP 请求的测试,之后我们可以执行并验证响应。

Postman 工具还方便我们向服务发送 HTTP/s 请求并获取其响应。我们可以通过使用该工具来确保服务已启动并正在运行。


2) Postman 最初是如何开发的?

Postman 最初开发时是一个 Chrome 浏览器插件。它为 Mac 和 Windows 都提供了本地版本,扩展了其解决方案。


3) 我们为什么要使用 Postman?

Postman 工具已成为超过 800 万用户的选择。以下是使用 Postman 的主要原因:

  • 免费: Postman 是一款免费软件,可用于 API 测试。对于任何规模的团队,都可以免费下载和使用。
  • 易于使用: Postman 是一款易于使用的软件工具。我们可以发送各种类型的 HTTP 请求(如 GET、POST、PUT、PATCH 等)。只需下载它,几分钟内就可以发送第一个请求。它还使我们能够保存环境以供将来使用。
  • 社区与支持: 它拥有一个庞大的社区论坛用于客户支持和广泛的文档。
  • 可扩展性: Postman 允许我们通过 Postman API 根据我们的需求对其进行自定义。
  • API 支持: 它使我们能够进行任何 API 调用(REST、SOAP 或纯 HTTP),并轻松检查即使是最大的响应。它还帮助管理 API 的整个生命周期 - 从设计到模拟,再到测试,最后维护 API。
  • 运行时服务: Postman 提供运行时服务,帮助我们管理 API 集合、环境、工作区和不同的示例。
  • 集成: Postman 方便我们轻松地将测试套件集成到我们首选的 CI/CD 工具和服务中,例如与 Newman(命令行集合运行器)集成。

4) 什么是 API?

API 是“应用程序编程接口”的缩写。它是一组用于构建软件应用程序的例程、协议和工具。API 是一个接口,因此它规定了一个软件程序应如何与其他软件程序交互。

换句话说,我们可以说 API 是一个应用程序编程接口,它充当两个软件应用程序之间的接口,并允许这两个软件应用程序相互通信。API 是另一个软件程序可以执行的一组软件函数。


5) Postman 提供了哪些授权方法?

Postman 提供以下 API 请求授权选项:

  • API 密钥
  • Oauth 1.0
  • Oauth 2.0
  • Bearer Token
  • 基本认证
  • 摘要认证
  • Hawk 认证
  • AWS 签名
  • NTLM 认证

6) Postman 中的集合有什么用?

在 Postman 中,集合用于对相似的请求进行分组。它将请求系统地组织到文件夹中。


7) 用于 API 测试的各种工具有哪些?

以下是一些用于 API 测试的工具列表:

  • Postman
  • SoapUI
  • Katalon Studio
  • Tricentis Tosca
  • Apigee
  • Jmeter 等。

8) 如何访问 Postman 变量?

我们可以使用变量名 {{variable_name}} 来访问 Postman 变量:


9) Postman 支持哪些不同类型的 API 请求?

以下是 Postman 支持的不同类型的 API 请求列表:

  • GET
  • POST
  • PUT
  • PATCH
  • COPY
  • DELETE
  • HEAD
  • OPTIONS
  • LINK
  • UNLINK
  • PURGE
  • LOCK
  • UNLOCK
  • PROPFIND
  • VIEW

10) 什么是 HTTP 请求?给出一个 HTTP 请求的例子。

HTTP 请求是客户端向服务器上命名主机发出的编程请求。HTTP 在客户端和服务器之间充当通信接口或请求-响应协议。HTTP 请求的主要目的是访问服务器上的资源。为了发出 HTTP 请求,客户端使用 URL(统一资源定位符)的组件,其中包括访问资源所需的信息。

HTTP 请求的例子:

客户端(浏览器)向服务器发送 HTTP 请求,然后服务器响应客户端。服务器发送的响应包含有关请求的状态信息,并且还可以包含请求的内容。


11) HTTP 请求的核心组件是什么?

以下是 HTTP 请求的五个核心组件:

  • HTTP 方法:它是一组请求方法,用于对给定资源执行所需的操作(GET、PUT、POST 和 DELETE)。
  • 统一资源标识符 (URI):它是一种描述资源的地址。
  • HTTP 版本:它指定 HTTP 的版本。例如:HTTP v1.1
  • 请求头:它指定请求的内容类型和内容长度。例如:**Content-type:** application/ JSON, Content-Length: 511
  • 有效载荷:它用于指定包含消息内容的请求正文。

12) 为什么 Postman 只接受 Base64 编码?

Postman 只接受 Base64 编码,因为它将数据转换为文本形式,并以更易于处理的形式发送,例如 HTML 表单数据。这也更受青睐,因为我们可以依赖任何我们想使用的编码语言中的相同的 64 个字符。


13) Postman 接受哪种类型的编码进行授权凭证,为什么?

Postman 只接受 Base64 编码的授权凭证。这是 Postman 内置的,或者您可以参考第三方网站将凭证转换为 base64。Base64 授权凭证通常被使用,因为它们将数据转换为文本形式,并以更易于处理的形式发送,例如 HTML 表单数据。


14) HTTP 响应的核心组件是什么?

以下是 HTTP 响应的四个核心组件:

  • 状态/响应码:服务器在客户端发出请求时生成状态码或响应码。例如,404 表示“未找到页面”,200 表示“响应正常”。
  • HTTP 版本:它描述了 HTTP 版本。例如:HTTP v1.1、HTTP v1.3 等。
  • 响应头:响应头包含 HTTP 响应消息的信息。例如,Content-type、Content-length、date、status 和 server type。
  • 响应正文:响应正文包含客户端从服务器请求的数据。

15) Postman 中“环境”一词的含义是什么?

在 Postman 中,“环境”是一组键值对。您可以在 Postman 中创建多个环境,并通过按一个按钮快速在它们之间切换。环境有两种类型:全局和局部。


16) Postman 中是否可以有两个同名的全局作用域变量?

全局变量是全局的,所以我们不能在没有环境的情况下设置重复的名称,因为它会造成软件混淆。另一方面,局部变量可以有相同的名称,但在不同的环境中。


17) 在 Postman 中,更倾向于使用全局变量还是局部变量?

在 Postman 中,如果两个变量具有相同的名称(一个为局部,另一个为全局),则局部变量的优先级更高。局部变量将覆盖全局变量。


18) 如何在 Postman 中记录变量值?

在 Postman 中,我们可以使用以下命令将变量值记录到控制台:


19) Postman 监控有什么用?

Postman 监控用于运行集合。集合会运行到用户指定的停止时间。它需要用户登录,并且用户会每日或每月通过电子邮件共享监控报告。


20) 你对 Postman 中的团队工作区有什么理解?

正如我们所知,工作区是用户开发和测试 API 的协作环境。同样,团队工作区是整个团队在同一组请求上工作时共享的工作区。通常,通过外部驱动器或其他方式共享集合非常耗时且困难,团队工作区在一个地方同步并协作团队的所有工作。


21) 查询参数和路径变量有什么区别?

查询参数(Query Params)或查询参数用于对资源进行排序或过滤。另一方面,路径变量(Path Variables)用于标识特定资源。


22) Postman 集合运行器有什么用?

Postman 集合运行器用于执行数据驱动测试。它以不同的数据集运行一组 API 请求,进行多次迭代。


23) Postman 中的基本认证是什么?

在 Postman 中,基本认证是一种授权技术,用于 HTTP 用户代理(如 Web 浏览器)输入用户名和密码。输入用户名和密码后,它将与请求相关联。


24) 可以在 Postman 监控中导入本地变量吗?

是的,我们可以在 Postman 监控中导入本地变量,但不允许导入全局变量。


25) Postman 的主要局限性是什么?

以下是 Postman 的主要局限性列表:

  • Postman 无法处理 1000 多个 API 请求。
  • 对于大型项目,管理集合和请求变得困难。
  • Postman 不适合以代码的形式管理工作区。这是因为对于动态 API 请求会有大量的代码重复。

26) POST 方法中的二进制形式是什么?它的用途是什么?

在 POST 方法中,二进制形式设计用于以一种无法手动输入数据的格式轻松发送数据。这主要用于在 POST 请求中发送大文件,如图片、CSV 文件等。二进制表示是用于通过请求发送复杂数据的最简单的表示之一。


27) 在公司工作时,Postman 云有什么用?

Postman 云是公司访问 Postman 集合的公共存储库。这就是为什么我们在公司工作时会使用它。登录后,我们可以立即将工作保存在 Postman 云中。它方便团队成员从任何地方访问数据/集合。


28) Postman 中的摘要认证是什么?

摘要认证或摘要授权是 Postman 提供的一种授权技术。这项技术允许客户端首先向 API 发送请求,并从服务器获取响应,包括一个只能使用一次的数字、一个真实值和 401 未授权的响应。之后,客户端可以发送回一个包含用户名和密码以及之前从服务器收到的数据的加密数据数组。现在,服务器使用这些数据生成一个加密的数据字符串,并将其与发送的数据进行比较,以验证请求。


29) 为什么不建议将工作保存在 Postman 云中?

不建议也不推荐将您的工作保存在 Postman 云中,因为公司的事务不允许泄露并保持机密。在 Postman 云上保存您的工作可能会导致安全漏洞,因为它需要登录。因此,不建议使用 Postman 云来保存工作,并且强烈推荐使用团队工作区。


30) 状态码 201 的含义是什么?

状态码 201 表示“已创建”,表示您已使用 POST 或 PUT 请求成功创建了资源。它使用 location 头返回新创建资源的链接。


31) 删除局部变量的步骤是什么?

一旦执行并完成测试,局部变量就会自动删除。


32) 将 API 响应保存到 Postman 文件中的步骤是什么?

在 Postman 中,有两种方法可以将 API 响应保存到文件:

  • 首先,点击响应部分中的下载按钮。
  • 其次,点击发送按钮旁边的箭头。在这里,您会看到发送和下载的选项。点击之后,Postman 会提示您选择保存响应的位置(在请求成功执行后)。

33) 状态码 304 的含义是什么?

状态码 304 表示“未修改”。它用于在条件 GET 请求中最小化网络带宽使用。响应正文应为空。头部应包含日期、位置等。


34) Postman 中 301 状态码的用途是什么?

在 Postman 中,301 状态码用于指定页面已从一个网站永久重定向到另一个网站。它告诉搜索引擎旧页面已过期,并且搜索引擎需要索引新页面 URL。


35) 组织 Postman 中请求的方法是什么?

我们可以使用集合来组织 Postman 中的请求。


36) Postman 提供的各种变量作用域有哪些?

以下是 Postman 提供的几种变量作用域列表:

  • 全局变量:全局变量允许在不同的集合、请求和脚本之间访问数据。它们在整个工作区都可用。
  • 局部变量:局部变量是临时变量,只能在请求脚本的作用域内访问。根据需求,这些变量可以限定为单个请求或单个集合。脚本执行完成后,这些变量将不可用。
  • 环境变量:环境变量允许我们根据不同的开发环境(如本地测试、暂存测试或生产测试)定制请求。
  • 集合变量:集合变量独立于环境,并且作用域限定为在集合内的所有请求中可用。
  • 数据变量:数据变量来自外部 JSON 或 CSV 文件,并定义了在集合运行器或 Newman 中运行集合所需的数据集。

37) form-data 和 x-www-form-urlencoded 之间有什么区别?

form-data 和 x-www-form-urlencoded 之间的主要区别在于,当通过 x-www-form-urlencoded 发送时,URL 将被预先格式化。


38) 在什么条件下我们应该使用全局、集合和局部变量?

全局变量是通用变量。它们用于将数据传递给其他请求,并且非常适合快速获得结果和原型设计。

集合变量通常用于存储在集合执行期间不会更改的常量。这些变量用于在执行期间不会更改的常量以及仅存在一个环境的 URL/身份验证凭证。

局部变量是临时变量,仅在设置它们的请求内部可用,或在使用 Newman/Collection runner 进行脚本执行时可用。每当我们必须覆盖所有其他变量作用域时,就会使用这些变量。


39) 如何访问 Postman 中的请求历史记录?

在 Postman 中,我们可以通过 Postman 应用程序上提供的“历史记录”选项卡来访问请求的历史记录。当您登录 Postman 帐户时,历史记录将在您登录的设备之间同步。单击“历史记录”选项卡中的任何请求后,视图将打开您之前在处理请求时保存的请求。历史记录还包含已执行的集合运行的摘要版本。

当您单击请求上的“查看更多选项”时,您将看到保存、记录、监控、删除或模拟请求的选项。您还可以通过使用 Command 或 Control 按钮然后单击请求来选择多个请求。


40) 如何停止执行请求或停止集合运行?

我们可以使用以下命令停止执行请求或停止集合运行:


41) 是否可以为多个请求重用身份验证令牌?

是的,可以为多个请求重用身份验证令牌。我们可以创建一个集合,并将所有具有相同身份验证令牌的请求添加到该集合中,然后将身份验证令牌分配给该集合。通过在“授权”选项卡中选择“继承父级授权”选项,可以将其应用于单个请求。


42) 在 Postman 的 GET 请求中,查询参数存储在哪里?

在 GET 请求中,查询参数存储在 Postman 的 URL 中。


43) 在集合运行中,什么先被执行?

集合运行中的预请求脚本首先被执行。


44) 如何访问 Postman 变量?

我们可以通过输入变量名 {{var}} 来访问 Postman 变量。


45) 哪个工具可用于在 Jenkins 中运行 Postman 集合?

我们可以使用 Newman 工具在 Jenkins 中运行 Postman 集合。


46) Postman 中最常见的状态码有哪些?

以下是 Postman 中最常见状态码的列表:

  • 200 (OK):状态码 200 指定请求正确。
  • 201 (Created):状态码 201 指定请求中包含的值已在数据库中创建。这里很明显,请求是正确的。
  • 204 (No Content):状态码 204 指定请求正确并已收到,但没有内容可以发送。这意味着服务器没有响应可以发送给客户端。
  • 400 (Bad Request):状态码 400 指定“请求无效”。无效请求意味着请求的语法不正确。当我们发送错误的参数以及请求 URL 或请求正文时,会出现此错误。
  • 401 (Unauthorized request):状态码 401 指定“请求未经授权”。未经授权的请求是您未获得访问权限的请求。当您未获授权访问服务器或输入错误凭证时,会出现此状态码。
  • 404 (Not Found):状态码 404 指定服务器已连接,但找不到请求的内容。它仅仅意味着“未找到请求”。当请求服务器上不存在的网页时,通常会出现此状态码。

47) 什么是草稿板 (Scratch Pad)?

Postman 提供了一个称为草稿板的空间。草稿板方便我们在不连接 Postman 服务器的情况下进行工作,并提供了利用 Postman 一些功能进行离线操作的灵活性。这些功能包括集合创建、请求创建以及发送请求的能力。草稿板存储在本地,一旦登录;工作将保存到工作区。


48) Postman 中有哪些不同的请求方法类型?

Postman 中不同的请求方法类型如下:

  • Get
  • Post
  • Put
  • 删除
  • PATCH
  • 负责人
  • 删除

49) 如何在 Postman 中将一个请求迭代 100 次?

我们可以使用集合运行器(Collection Runner)在 Postman 中将一个请求迭代 100 次。


50) Postman 中可用的 JS 库有哪些示例?

Postman 中可用的 JS 库的一些示例是 Lodash、Moment、GUID 等。


51) GUID 的完整形式是什么?在哪里使用?

GUID 是“全局唯一标识符”的缩写。它是一组用连字符分隔的十六进制数字,解决了唯一性的问题。

在 Postman 中,它用于生成随机值并将其发送到 API。

示例


52) Postman 测试使用哪种编程语言?

Postman 测试使用 JavaScript。


53) 如何在 Postman 中生成给定范围内的随机数?

在 Postman 中,我们可以使用一些脚本生成给定范围内的随机数。假设您想生成 1 到 N 之间的数字,请使用以下预请求脚本:

现在,在 URL 中将此变量用作 {{randomNumber}}


54) 如何在 Postman 中查看请求日志和响应日志?

我们可以通过 Postman Console 窗口在 Postman 中查看请求日志和响应日志。


55) Postman 的 POST 方法中的二进制形式是什么?

在 Postman 中,二进制形式用于以一种无法手动输入数据的特定格式发送信息。例如,图片、文件等。计算机中的一切都会被转换为二进制。


56) 如何组织 Postman 中的请求?

在 Postman 中,我们可以使用集合来组织请求。


57) 写入测试首选的方法是?JavaScript 还是 Functional?

在 Postman 中编写测试时,建议使用 Functional 方法。虽然我们可以使用 JavaScript 方法,但目前没有通知会终止对 JavaScript 方法的支持。