Postman
Postman 是一个支持 HTTP 协议的接口测试工具,它简单易上手,是接口测试的首选工具之一。
HTTP 协议
在介绍 Postman 的使用之前,我们先了解下什么是 HTTP 协议。
比如我们登录 https://www.csdn.net/,我们知道这是一个 URL,也就是统一资源定位符。为什么叫统一,是因为它是有统一格式的,这样当你输入网址的时候才知道如何进行统一的处理。
HTTP (超文本传输协议)则是一种可以获取网络资源的协议。目前使用的 HTTP 协议大部分都是 1.1。在 1.1 的协议里面,默认是开启了 Keep-Alive 的,这样建立的 TCP 连接,就可以在多次请求中复用。
HTTP 的报文大概分为三大部分。第一部分是请求行,第二部分是请求的首部,第三部分才是请求的正文实体。
- 请求行
方法spURLsp版本crlf
注:sp-空格,cr-回车,lf-换行。
上面是请求行的格式,可以知道 URL 则是 https://www.csdn.net/,版本为 1.1,方法又是什么呢,我们在 Postman 工具里常用的 GET、POST 则是方法。这里介绍一些方法的作用。
GET: 从服务器获取资源。
POST: 在服务器新建资源,它需要主动告诉服务端一些信息,而非获取。
PUT: 在服务器更新资源。
DELETE: 在服务器删除资源。
HEAD: 获取资源的元数据。
OPTIONAL: 查询对指定的资源支持的方法。
- 首部
首部字段名:sp字段值crlf首部字段名:sp字段值crlf
首部是 key:value,这里面,往往保存了一些非常重要的字段。
比如,Content-Type 是指正文的格式。例如,我们进行 POST 的请求,如果正文是 JSON,那么我们就应该将这个值设置为 JSON。
Postman 接口调试
了解了 HTTP 协议,我们就可以来看 Postman 的接口调试了。下面是 Postman 的界面。
可以知道输入框即是我们上面所说的 URL,左边是方法的下拉选项,我们输入 URL 后点击 send 即可完成一次请求。我们随便找个 URL,https://www.csdn.net/?spm=1011.2415.3001.4476,可以看到 net 后面有个 ‘?’,? 的后面部分我们称为查询参数,多个参数之间用 & 符号隔开。
我们通过点击 可以看到,这就是一个方法为 GET,Content-Type 为,正文实体为 spm=1011.2415.3001.4476 的请求。
接下来我们看下发送 POST 请求。在 Postman 中,你可以使用 Body 标签页来发送 POST 请求。在 Body 中,你可以选择不同的数据格式,例如 JSON、XML、form-data 等。然后,你可以在 Body 中添加请求参数,然后点击 Send 按钮来发送 POST 请求。
GET 和 POST 是 HTTP 协议中最常用的两种请求方式,也是 API 测试中最常用的两种请求方式。在使用 Postman 进行 API 测试时,可以根据具体的需求选择不同的请求方式,并设置相应的请求参数和请求头。
Postman 怎么批量执行
Postman 的 Collection 是一组请求的容器。Collection 可以将多个请求组合在一起,以便在单个请求中运行它们。Collection 还可以包含测试、脚本和变量。
我们可以选中 Collection 进行新建集合,根据接口测试需求进行命名,接着我们可以添加请求 Add Request,添加方法如上述所述一致。
完成了这些,就可以进行批量执行了,点击刚所创建的 Collection 旁的冒号,选择 Run Collection,即可看到如下界面
- Iterations 迭代次数,也就是参数化数据的次数
- Delay 延迟毫秒,每次迭代中间的延迟时间 我们选择要迭代的次数后就可以完成批量执行了。
批量执行怎么设置变量
Postman 提供了一些动态变量,可看 Postman 官方文档 Dynamic variables,列举几个比较常用的变量:
- {{$guid}}: v4 风格的 GUID,例 “611c2e81-2ccb-42d8-9ddc-2d0bfa65c1b4”
- {{$timestamp}}: 当前的 Unix 时间戳,以秒为单位,例 1562757107
- {{$randomInt}}: 0 到 1000 之间的随机整数
假如我们现在有个接口是生成一个订单,那么 订单Id 参数可以通过使用 {{KaTeX parse error: Expected 'EOF', got '}' at position 5: guid}̲} 变量实现,订单时间戳可以通…timestamp}} 来实现。
如果现在批量执行中有个参数需要递增,需要怎么处理呢?
可以通过 Pre-request Script 来进行实现。Postman 支持 JS 脚本,我们可以在 Pre-request Script 设置一个全局变量。
var temp = parseInt(postman.getGlobalVariable("index"));
temp += 1;
postman.setGlobalVariable("index", temp);
接在在 Body 参数里添加该变量名
如果我们向设置该全局变量的值,也是可以做到的,点击右边的眼睛图标,即可对全局变量进行一个设置。
Postman 还可以使用断言等,后面可以展开说说。
Postman 支持并发测试吗?
Postman 不支持并发测试,我们搜索可以看到很多 Postman 怎么进行并发测试的文章,但实际上它并不支持,它的批量测试是串行的,也就是请求得到响应后才会进行下一个。
那如果我们要进行并发测试该怎么做呢,这就引出其他工具了。如 Apache、JMeter,具体使用我们下期再见。
版权归原作者 i_i_unlimited 所有, 如有侵权,请联系我们删除。