在《Postman接口自动化测试实例》一文中,我是在获取随机因子的接口的Tests中对用户的密码进行加密处理的。其实正常做法应该是在请求验证接口前,即在Pre-request Script中对密码进行加密处理。
下面对上一文的进行简单的修改处理。
一.获取随机数接口的Tests内容
tests["Status code is 200"] = responseCode.code === 200 tests["Response time is less than 200ms"] = responseTime < 200; var respData = JSON.parse(responseBody); tests["respCode"] = respData.code === ‘0‘; tests["respMsg"] = respData.msg === ‘成功‘; if(respData.code === ‘0‘) { var respRadomNum = respData.data.radomNum; var respRadomNumCode = respData.data.radomNumCode; postman.setGlobalVariable("respRadomNum", respRadomNum); postman.setGlobalVariable("respRadomNumCode", respRadomNumCode); //下面方式也可以 //pm.globals.set("respRadomNum", respRadomNum); //pm.globals.set("respRadomNumCode", respRadomNumCode); }
在Tests中把接口返回的随机数和随机数码通过postman.setGlobalVariable设置到全局变量中,以便后面的验密接口可以从全局变量中获取到。
Headers、Body和Pre-request Script和上一文中的获取随机因子的接口是一样的。
二.验密接口的Pre-request Script内容
从全局变量中获取随机数也可以用:var radomNum = pm.globals.get("respRadomNum");
Headers、Body和Tests和上一文中的密码验证的接口是一样的。
三.执行效果依然是一样正确的
获取随机因子运行效果:
密码验证效果:
四.在pre-request和tests中获取变量的方法
变量可以被使用在pre-request和test script中,因为这些部分是通过JavaScript来写的,你可以以不同的方式初始化和检索这些变量,可以在脚本中初始化变量,并将它们放在特定的范围内。
1.定义一个变量在脚本中
在脚本中设置一个变量可以根据变量预定的范围通过如下方式设置变量。
pm.environment.set("variable_key", "variable_value"); postman.setGlobalVariable("variable_key", "variable_value"); postman.setEnvironmentVariable("variable_key", "variable_value"); pm.globals.set("variable_key", variable_value);
当你发送请求的时候(请求前或后),脚本将会执行,值将会保存在变量中,如下图:
2.取一个预定义的变量
一旦一个变量被设置,你可以使用如下方式去获取变量的值
//获取variable_key的环境变量 pm.environment.get("variable_key"); postman.getEnvironmentVariable("variable_key"); //获取variable_key的全局变量 pm.globals.get("variable_key"); postman.getGlobalVariable("variable_key");
根据适合的范围去获取变量值,这些方法要求提供一个变量名作为参数去检索储存的值,如下图:
3.设置一个变量在作用域中
可以访问环境变量在相应的环境模板,全局变量可以广泛的访问,不管选择的作用域。
参考文章:https://www.cnblogs.com/JHblogs/p/6418802.html