PostMan 基础知识
1. PostMan 介绍

Postman 是一款支持 Http 协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好 。无论是开发人员进行接口调试,还是测试人员做接口测试,Postman 都是我们的首选工具之一。

Postman Echo APIs 学习地址:https://postman-echo.com

背景:因为接口测试依赖后端平台(Server),但是受环境限制,并没有这个后端平台(Server)可以使用,所以现在需要使用 PostMan 的 Mock-Server 功能模拟(Mock)一个后端平台(Server)。
Mocking with examples(通过样例创建模拟服务)
模拟服务(Mock Server)搭建过程中用到了许多后续需要学习的概念,例如 Request、Collection、Example、Response、Variable、Environment,这些概念在后续的内容中都会介绍,这里可以不用太在意,按照如下步骤完成搭建就可以。

Step 1: Send a request,创建一个请求,作为后续创建 Mock Server 接口请求基本参照。

Step 2: Save the request to a collection,将请求保存至一个用例集(Collections),因为后续需要基于用例集创建 Mock Server。

Step 3: Save a response as an example,将此次请求和响应(Response)数据保存成一个样例,一定要注意,样例(Example)里面保存了请求地址,参数,响应状态码,响应体等 HTTP 协议数据,因为可以为一个请求(Request )创建多个(Example)样例,每个样例(Example)请求参数和响应结果可以不一致,同样,Mock Server 会根据请求数据的不同,返回对应的数据。

Step 4: Create a mock server for the collection,为用例集(Collection)创建 Mock Server。创建用例集模拟(Mock)服务的时候,建议同时创建一个模拟(Mock)环境(Environment)。当然,如果用例中并没有用到变量(Variable),也就没办法创建对应的模拟环境(Environment)。

Step 5: Send a request to the mock server,修改环境(Environment)或者直接复制 Mock-Server 的访问地址(RUL)。
如果上述文字的内容阅读和理解有那么一点点困难,可以参考如下视频。


3. HTTP 协议基本概念

4. 发送第一个请求
PostMan 软件已经安装完成,后端服务也已经通过 Mock Server 配置好,接下来的事情就是了解 PostMan 软件的基本功能和 HTTP 协议相关的基本概念。

打开 Postman 并尝试以下操作:

在此示例中,Postman 充当客户端应用程序并与 后端接口服务器通信。以下是点击 Send 时发生的情况:

5. 选择请求方法

默认情况下,Postman 将选择GET
新请求的方法。GET
方法通常用于从 API 检索数据。可以使用多种其他方法将数据发送到待测试接口,包括以下最常见的选项。
竞赛题目中会明确给出待测试接口的请求方法,只需要按照要求选择相应的方法即可。
6. 构造请求参数

① URL 参数
可以使用 URL 字段和 “参数” 选项卡随请求发送路径和查询参数。

② Body 参数
当需要添加或更新结构化数据时,您都需要发送带有请求的正文数据。例如,如果您要发送将新客户添加到数据库的请求,您可能会在 JSON 中包含客户详细信息。通常,会将正文数据与PUT
、POST
和PATCH
请求一起使用。
Postman 中的 Body 选项卡允许指定需要随请求一起发送的数据。可以发送各种不同类型的正文数据以适合带测试接口。
如果要发送 Body 数据,请确保选择了正确的请求头(Content-Type)以指示接口可正确处理接收到的数据的内容类型。
③ Content-Type 请求头格式
Content-Type 的格式有四种:分别是 application/x-www-form-urlencoded(这也是默认格式)application/json、text/xml 以及 multipart/form-data 格式。

Collections集合:也就是将多个接口请求可以放在一起,并管理起来。
8. 断言 - Assert
断言主要是在 Test 操作框内进行设置,使用 JavaScript 语言编写,断言的结果在下方响应内容的 TestResult 内。

说明:响应正文必须等于某个字符串或者 JSON 对象。
9. PostMan 变量

变量能够在 Postman 中存储和重用值。通过将值存储为变量,可以在整个集合、环境、请求和测试脚本中引用它。
① 变量范围
Postman 支持不同范围的变量,允许用户针对各种开发、测试和协作任务定制处理。Postman 中的作用域与请求运行的不同上下文相关,不同的变量作用域适用于不同的任务。按照优先级从低到高的顺序分别是:global(全局)、collection(用例集)、environment(环境)、data(数据)和 local(局部)。
② 定义全局变量

③ 定义环境变量
在环境与环境之间可以定义重复的变量;一个环境变量可以包含多个环境变量;

④ 在脚本中定义变量
m.globals
用于定义全局变量。
pm.environment
用于在当前选择的环境中定义一个环境变量。
⑤ 使用变量
可以使用双花括号来引用整个 Postman 中的变量。例如,要在请求授权设置中引用名为 “用户名” 的变量,可以使用以下语法,并在名称周围加上双花括号:
当运行请求时,Postman 将解析变量并将其替换为当前值。例如,您可以有一个引用变量的请求 URL,如下所示:
可以在请求 URL、参数、标头、授权、正文和标头预设中使用变量。

⑥ 在脚本中使用变量
可以使用表示范围级别的对象和方法来检索脚本中变量的当前值.get
:
10. PostMan 中的脚本编码
Postman 包含一个基于 Node.js 的强大运行时,允许您向请求和集合添加动态行为。这允许您编写 API 测试、构建可以包含动态参数的请求、在请求之间传递数据等等。
可以添加 JavaScript 代码以在流程中的 2 个事件期间执行:
在将请求发送到服务器之前,在 Pre-request Script 选项卡下编写 前置脚本。
收到响应后,在 Test 选项卡下的测试脚本(后置脚本)。
脚本的执行顺序,在 Postman 中,单个请求的脚本执行顺序如下所示:前置请求 -> 发送请求 -> 响应返回 -> 测试脚本(后置脚本)。

11. 编写请求前置脚本

请求前置脚本的使用场景:在请求url中需要使用随机数或时间戳;需要对敏感数据进行加密。
前置脚本编写举例:

依赖
1. 接口 1 返回响应数据之后(Tests 标签),将相应数据写入到全局变量 token 中。
2. 接口 2 请求发送之前,将全局变量 token 写入到请求数据中(前置脚本 Pre-request Scrip 标签)或者直接在请求参数、请求体或者请求头中使用。

双击用例集 -> 点击 Run 按钮,打开 Runner 组件,设置相关属性即可
① 执行次数 ② 每次迭代请求的间隔时间 ③ 请求数据


① 数据驱动
执行测试用例的过程,本质上是执行的不同数据,不同输入输出的过程。所以,在计算机中,我们可以使用预先设定好的数据文件,来执行测试用例,实现覆盖测试点。
② 参数化概念
请求参数中,不写实际的值,而是写成 {{变量名}} 的形式,就是参数化。
③ 具体流程

Cookie 是由访问过的网站提供给您的一个基于文本的小型文件,可以帮助您识别到该站点。使用 cookie 可以导航到网站上的不同网页或在以后返回到该网站维护状态信息。
① Cookie 鉴权与状态维护
