一、前言
PostMan是我们在测试过程中最重要的工具,通过填写参数连接以及相关请求信息后对接口发起请求,我们观察接口返回值来对接口进行测试。
使用PostMan做最简单的参数恒定的请求非常简单,只需要在参数列表里填写参数,设置请求类型是Post还是Get或者是Put等等,点击Send即可,非常简单。
但是对于有一些参数是变量的我们怎么办呢,比如比较常见的传递一个时间戳,一个随机数,并且利用时间戳+随机数等生成一个数字签名传给接口,我们无法在参数列表里直接写入时间戳和数字签名,因为接口方一般会对时间戳等参数做检验,你填写进去的时间戳一定是过去的一个时间点,因为接口会给你返回报错。
所以有没有办法动态的让postMan取一个当前时间作为时间戳,然后取得时间戳后再算出一个加密后的数字签名,这样不就可以模拟真实场景下的请求了么。
PostMan内部内嵌了Node.js,因此post支持所有js语法,我们可以编写js脚本来进行参数的模拟。
二、步骤
我们使用最简单的步骤来描述,你需要掌握一定的js语法es5、es6的新规则。
1.新建一个请求,选择请求类型,输入地址,在参数中设置连接中的参数,如图,需要我们使用变量的我们加{{}}声明为变量。
2.填写请求体,也就是你传递的数据,可以以多种方式传播,这里使用json格式,这里也可以设置变量。
3.选择Pre-request Script,这里编写你的js脚本,声明全局变量,构造数据,调用内置函数,这里使用了CryptoJS这个工具包,这个工具包包含了多种加解密算法以及格式的转换,代码部分不过分讲解,需要你会写js语法。
4.点击PostMan底部的Console打开控制台,可以对脚本进行调试等工作,可以观察参数的取值变化情况。
5.发起请求观察结果