本节主要介绍下 Postman 这款非常好用的 api 测试工具,不从头开始说了,一是没时间,二是没必要,网上资料太多了,本文主要围绕下面几点做个记录笔记:
-
请求时间戳变化
-
请求参数要动态签名
-
正式/测试环境切换
-
请求响应Test
时间戳
在调试 api 请求时 timeStamp 过期是不是非常让人不愉快,那么我们有没有办法提前生成一个时间戳,而不是每次都要去 copy 呢?答案是肯定的, Pre-request 提供了这个能力,当然我们在发请求之前需要提前生成好的参数,都可以在 Pre-request 中自动实现。
在使用 Pre-request 前,我们可以定义一个环境变量文件,并在内部添加上请求需要的参数:
之所以将参数放在环境变量中,而不是直接写死在 url 内,这样的好处是,我们可以随时改变变量值,就像下面的时间戳一样:
动态签名
动态签名是 api 很常见的检验手段了,通常参与计算签名的是一个随机字串和时间戳,所以这就会导致生成后的签名具有实效性,我们通过 postman 调试时,就会很麻烦,如我现在有一个这样的签名规则:
那么这种情况下,我们该怎么办呢?我们能不能在请求前,直接计算好,在请求时动态拿取新的签名呢?答案是肯定的,根据时间戳的思路,我们只需要在环境变量中添加一个 sig 参数,再根据签名要求动态生成并为 sig 赋值即可:
这是 Pre-request 中计算签名的方法,都有注释,就不细说了:
上面我们动态计算了时间戳和签名,那么我们怎么将请求时的参数打印出来呢,这在调试阶段是很重要的,我们直接可以通过 console 方法打印,在控制台查看,控制台通过 view->show postman console 打开:
服务环境切换
我们可以直接通过上面的占位符思路,来动态切换正式/测试环境。将域名通过 {{hostPath}} 定义即可,当然我们也可以直接定义一个新的 EnvironmentTest2 文件,创建一组新的环境参数:
请求响应Test
和 Pre-request 相比,Test 的能力就丰富多了,可以完成状态码检查、响应串检查、header检查、JSON验证、限制应答时间等。在请求完成之后,会自动执行 Test 内的逻辑,我以常用的响应时间和状态码校验为例:
好了,到这里本文就结束了,内容不是很多.