问题描述:
1.在postman里面调试接口,做断言的时候通过{{变量名}}的方式引用全局变量失败,提示not defined
产生问题的原因:
1.在断言里面引用全局变量的时候需要提前获取,以及在字符串里面全局变量的写法不一样
postman里面不同位置引用全局变量会有变化
# 提前定义全局变量
// 1.提前定义全局变量
pm.globals.set("ip12", "192.168.0.1") // 定义全局变量ip12
// 2.引用全局变量
// 1)在body和url里面引用全局变量,直接用两个大括号引用{{变量1}}
// 例如:http://{{ip}}/fafa/index.php?ctl=user&act=doregister
1.在url的位置和body里面去引用全局变量的时候可以直接使用{{变量名}}的方法去引用
2.在tests断言里面去引用全局变量
1)先获取全局变量的值并赋值给一个新的变量
2)如果是在字符串里面去引用,就需要用`${变量名}`的方法去引用
3)例如:"这是一个字符串,"+`${ip14}`+"是服务器的ip地址" # ip地址引用全局变量,后面的数据需要用+号去拼接,代码如下:
// 正确的写法先获取全局变量的值并赋值给变量,之后去引用
var ip14 = pm.globals.get("ip12") // 获取全局变量ip12的值,赋值给新的变量ip14
console.log(ip14) // 输出ip14的值
var ip15 = "这是一个字符串,"+`${ip14}`+"是服务器的ip地址"
console.log(ip15)
// 1.在前后置处理器中引用全局变量需要提前获取全局变量的值
// 例如:var 新的变量名 = pm.globals.get("全局变量名")
// 2.在字符串里面引用变量的时候用 `${变量名}`
// 特别注意,因为在字符串里面,所以前后需要用+号去把前后字符串拼接起来