最全最详细Postman 的实用功能详解,建议收藏
Posted 何包包
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最全最详细Postman 的实用功能详解,建议收藏相关的知识,希望对你有一定的参考价值。
- 前言
- 基础使用
- Collection
- Environment
- Test
- Collection Runner
- 参考资料
- 关于我
我是一个 Android 开发工程师,日常开发中最免不了的就是使用 Postman 进行网络调试,Postman 也很方便,URL、Header 都能设置。下面就来分享几个有用的功能,来看看有没有你没用过的。
基础使用
初次打开 Postman,就会显示上图这样的页面。需要测试一个请求的时候,新开一个 Tab,填写 URL、选择请求方式,还要按照接口的要求设置响应的 Header、Params,然后点击 Send 发送请求,观察响应。
Collection
这就是最简单一次网络请求,我之前一直是这么用的,没有毛病。直到有一天,老大给我一个 JSON 文件,让我导入到 Postman,说是这是你后面要接手的项目的所有的网络请求。我导入之后,大概是下面这样的。老大告诉我,导入的这个就是一个 Collection,你可以在 Postman 中创建多个 Collection。
这是我第一次接触 Collection,还是挺兴奋的,跑到一旁去研究这些接口去了,用了一阵子我发现,Collection 还可以在内部创建文件夹,用分包的形式对 Collection 里的请求进行归类整理,就像这样。
Environment
用了没多久,我发现了一个问题,每次我访问的接口 token 变了,我就需要把每个请求的 header 中的 token 那个值改一下,这样弄太麻烦了。我就想 Postman 能不能设置全局变量,然后我只需要在一个地方更新 token,其他地方自动设置。查了一下还真有这个功能。
不过 Postman 把变量这个概念放在了 Environment 中,如果把变量看做是请求,那么 Environment 就是变量的 Collection。
① 当前的 Environment ② 查看当前 Environment 中的值 ③ 设置 Environment「可以添加、删除 Environment 或编辑其中的变量」
点击 ③ 可以打开下面这个面板,这个面板是列出当前所有的 Environment,点击每一个 Environment 的名称可以进入并编辑所属的变量。
点击 ④ 可以新建一个 Environment,并创建、编辑、删除变量;点击 ⑤ 则是直接对全局变量进行创建、编辑、删除,这里的全局的意思是在发起一个请求时不设置 Environment 也能使用的变量。
点击上图的 ④ 或 ⑤ 都会打开一个设置参数的面板,区别就在于 ⑤ 无需设置 Environment 的名称。
需要注意啊,如果你把变量设置在了 Environment 而不是全局的,需在发送请求之前,设置当前所使用的 Environment,点击 ① 处就能选择 Environment 了。
我就这么用了一阵子,也没什么事,老老实实的开发我的 APP,直到测试找上门来,说不对啊,你这 App 上的数据不对啊,还有有的时候半天都没数据,那个 Loading 动画一直在转,人家 iOS 都是好的。这我哪能忍,经过我一番排查,结果发现是服务器的问题,于是我就让测试再遇到这种情况,自己用 Postman 测试一下,自己去看数据。可人家又嫌每次都得用一下 Postman 太麻烦,于是我又发现了一个 Postman 功能,Test。
Test 可以对每个请求及响应执行相应的测试逻辑,比如延迟是否超过 200ms,服务器响应是否为 200 等等,测试逻辑所采用的编程语言是 JavaScript。
每个请求都有一个 Tests 的 Tab,在 Tests 下方的编辑框中可以自行编写代码,相应的每个响应也都有一个 TestResult,在这里展示每一个 Test 的执行结果,是通过还是失败,如果是失败还有具体的原因。
下面就来简单测试一下,测试的项目是响应时间少于 200ms 和是否成功响应「是否成功响应,直接判断服务器返回的状态码是否为 200」。
可以看到,这次的测试有一个通过,一个失败的,失败的原因是请求时间为 1891ms 高于我们设置的 200ms 的目标值。
嘿,你是不是在想测试哪些东西?Postman 都提供示例了,你看上图 Tests 编辑框右侧我框柱的区域,那是 Postman 提供的几个模板。直接拿来用就好了。如果模板不够用的,还可以自己写呢,Header 和 Body 都可以进行测试。
比如我们一般把服务器的响应规定为下面这种类型,而客户端需要先判断 status 是否正确,然后再进行取值,那么我们需要拿到 status,然后进行判断。下面就是数据示例及测试样例代码。
{ "data": { "isAgency": "0", "token": "456789......" }, "msg": "OK", "oK": true, "status": 200 } 复制代码 var data = JSON.parse(responseBody) var statusCode = data.status pm.test("测试接口是否异常", function () { pm.expect(200).to.equal(statusCode) }) 复制代码
还记得,我们利用 Environment 进行设置变量,然后在请求的 Header 中进行使用吗?Test 也可以对变量进行操作的。利用下面这四个方法就能对 Environment 或全局的变量进行取值和赋值操作。
pm.environment.get("variable_key"); pm.environment.set("variable_key", "variable_value"); pm.globals.get("variable_key"); pm.globals.set("variable_key", "variable_value"); 复制代码
这样一来,我们还可以利用,Test 来对 Token 进行自动更新,当我们检查出当前的接口返回数据正常,就把 Token 写入到 Environment 变量即可。
if (statusCode == 200) { var token = data.data.token pm.environment.set("token", token) } 复制代码
Collection Runner
这个功能也挺好,针对单个请求的,但是如果要测试很多呢?那测试人员肯定还不愿意用这个,有没有批量测试的工具呢。答案是有的,就在 Collection 里面,Collection 是一些请求的合集,它提供了一个叫 runner 的功能。
依次点击箭头所指的图标就能进入 Collection runner 面板。
看上图,A 区当前 Collection 所有的接口,可以选择执行范围,默认是整个 Collection,B 区则是选择的将要进行测试的接口,每个请求还可以进行拖动排序;C 区就是对整个测试的配置,比如执行几遍,每个请求间隔多少毫秒,是否保存响应等等,配置完成后就可以执行了。
这个是测试结果,我对单个 Collection 中的单个接口进行了三次的请求。在这个页面上,也是可以对每一次的请求查看每个请求的信息,包括请求地址、Header、Response、响应 Header、响应 Body。
而且还能导出,把单次请求结果进行导出,导出的文件也是 JSON 格式的,很方便查看。
没想到 Postman 还挺好用的哈,赶紧推荐给测试,下次数据再出问题,让他直接找后台去,还有数据摆在面前,想跑都到不掉。
对了,如果登录 Postman,Postman 还会把 Collection 和变量 Environment 保存在云端,多个设备之间会自动同步。
软件测试小dao,更多技术持续输出
以上是关于最全最详细Postman 的实用功能详解,建议收藏的主要内容,如果未能解决你的问题,请参考以下文章