postman高级应用
对工具研究往往都是懒惰触发的。有时我们会发现,工具的基本用法在一些场合比较麻烦,我们就不得不抽些时间加深对工具的了解,让自己更加高效工作避免进行一些重复低效的无聊事情。
本文全部内容参考postman官方文档,可自行查阅。
https://learning.postman.com/docs/getting-started/introduction/
授权方式
调用接口一般需要授权,http请求授权信息大多都是在请求头加上一串授权码,过去我的做法是直接加到请求头,很直接。
但是这种做法有有时比较麻烦,比如Basic授权
Basic授权的授权码计算方式是base64(username:password),比如username=zhansan,password=123456,授权码的计算方式是
1、拼接zhangsan:123456
2、进行base64编码产生结果aaaaa
3、请求头加上 Authorization=Basic aaaaa
更方便的操作是我们可以直接在Authorization窗口选择Basic Auth直接输入username和password就能使用。
实际发送的请求和直接填充请求头的做法是一样的
postman支持的授权方式还有很多,以后用到再说。可以参考官方文档:
https://learning.postman.com/docs/sending-requests/authorization/
使用变量
postman中可以使用变量,变量的优点有很多,可以保存数据,可以重复利用,更重要是变量加上Script可以让我们的请求成为动态的,让一个请求功能更加强大。
变量作用域
postman中的变量有五种作用域
Global变量可以作用于所有的请求集合,请求,测试脚本,和环境,在整个工作空间都是有效的。
Collection变量作用于一个请求集合中的所有请求
Environment变量应用所选择环境,请求可以通过选择环境来使用不同的变量
Data变量来自于外部文件
Local变量只能在请求脚本中使用
本文目前只讨论Environment变量。
定义Environment变量
点击最左侧Environment,选择一个环境添加环境变量
使用Environment变量
{{}} 中间加变量名就能应用变量
单纯只使用这个变量没有任何意义,我的目的是每次发送请求都要带上13位的时间戳,只靠环境变量无法完成任务,这就需要postman的script的帮助了。
补充说明:postman提供一些动态变量,比如$timestamp可以获取当前的UNIX时间戳秒级。可以参考
https://learning.postman.com/docs/writing-scripts/script-references/variables-list/
使用Script
postman中可以编写Script脚本,请求在发送前和发送后执行一些脚本,完成一些重要工作。本文目前只讨论pre-request scripts(请求前脚本)。
我的需求是每次请求携带13位当前时间戳,需要在请求发送前获取当前时间戳,保存到环境变量中,请求体中引用此环境变量(见前文)。
pm.environment.set("ct",Date.now());
postman script本质上就是JavaScript,可以参考js相关手册进行开发。
调试Script
可以使用console对象调试代码
https://learning.postman.com/docs/sending-requests/troubleshooting-api-requests/#using-the-console