Postman 是一款功能强大的接口调试工具。
官网:https://www.postman.com/
集合 是 Postman 对请求进行组织的一种方式,方便管理和维护。
我们可以给集合设置一些变量,在请求中进行复用。
在集合变量中添加 baseUrl ,值为:http://localhost:8080/api/v1
每一个请求就是我们对 api 的一次调用及测试。
在请求的一些配置(参数)中,我们可以使用 {{baseUrl}} 来调用我们在上面集合配置中设置的变量。
postman 内置提供了许多的随机数据生成器,帮助我们自动生成各种数据。
https://learning.postman.com/docs/postman/scripts/postman-sandbox-api-reference/#dynamic-variables
我们可以根据请求的类型,把他们通过文件夹的形式有序的进行组织。
在我们的后续的应用中,许多的接口是需要登录授权后才能访问的。我们所使用的验证方式是 JWT ,同时我们是基于 Header 来对授权 token 进行传输的。根据以上规则,我们可以在 Postman 中对这种授权方式进行统一处理。
我们可以给每个接口请求添加断言测试脚本,来帮助我们对接口响应进行测试反馈,减轻人力。
Postman 提供了一个内置对象 pm 。通过该对象,我们可以发送请求,断言测试也是通过它来完成。下面介绍几个我们这里会用到的几个 API:
JSON Schema 定义了一套词汇和规则,这套词汇和规则用来定义 JSON 元数据,且元数据也是通过 JSON 数据形式表达的。JSON 元数据定义了 JSON 数据需要满足的规范,规范包括成员、结构、类型、约束等。使用它我们就可以对 JSON 数据进行合法性校验。
参考:http://json-schema.org/draft/2019-09/json-schema-validation.html
const Ajv = require('ajv'); const ajv = new Ajv({logger: console}); const schema = { required: ["id","name", "createAt"], properties: { id: { type: "number" }, name: { type: "string" }, createAt: { type: "string", format: "date-time" } } }; pm.test('Schema is valid', function() { pm.expect(ajv.validate(schema, { "id": 5, "name": "Aryanna", "createAt": "2020-03-27T16:00:47.464Z" })).to.be.true; });Postman 内置安装了许多的一些常用第三方库,比如上面的 ajv ,还包括:
ajv → v6.6.2atob → v2.1.2btoa → v1.2.1chai → v4.2.0cheerio → v0.22.0crypto-js → v3.1.9-1csv-parse/lib/sync → v1.2.4lodash → v4.17.11 (when used with require, the inbuilt _ object is for v3.10.1)moment → v2.22.2 (sans locales)postman-collection → v3.4.0tv4 → v1.3.0uuid → (the module loaded is a shim for original module)xml2js → v0.4.19还有一些 NodeJS 模块
path
assert
buffer
util
url
punycode
querystring
string-decoder
stream
timers
events
https://www.chaijs.com/api/
我们不仅仅可以对单个的请求进行测试,还可以对文件夹,整个集合进行批量的测试,提高效率。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AW2oiFqx-1601722086740)(C:\Users\秋天花枝丸\AppData\Roaming\Typora\typora-user-images\image-20201003180723046.png)]
最后,我们还可以把请求测试进行导出和导入。