MeterSphere的使用过程中,全局变量用于多个场景下的参数传递,显得格外重要,例如请求登录中,使用全局变量来存储及更新token;下面关于全局变量,做一下详细的使用说明
一、什么是全局变量
全局变量在MeterSphere中是指“项目设置”下的“环境配置”中,定义的“通用配置”:
创建或者编辑环境,可以看到通用配置:
参数类型说明:
变量类型有五种,分别为:
一、常量
举例说明:定义变量名为 varName,变量值为 varValue 的变量,在后续步骤中通过 ${varName} 引用得到 varValue。
二、列表
举例说明:定义变量名为 listVar,变量值为 value1,value2,value3 的变量,在后续步骤中通过 ${listVar_1} 引用得到 value1,通过 ${listVar_2} 引用得到 value2。
三、CSV
当在循环控制器外引用变量时,变量值为第一个数据值,${name}=Andy,${age}=20;当在循环控制器内引用变量时,每迭代一次都会取下一行的数据值。
四、计数器
举例说明:定义变量名为 counter1 的计数器变量,开始值为 1,结束值为 100,增量为 1。当在循环控制器外引用变量时,变量值不会递增,一直为当前值;当在循环控制器内引用变量时,每迭代一次变量值都会增加一次。
五、随机数
举例说明:定义变量名为 random1,最小值 1,最大值 100,输出格式为 000 的变量。当在循环控制器外引用变量时,多次引用变量值不会重新随机,一直为当前值;当在循环控制器内引用变量时,每迭代一次变量值都会重新随机一次。
全局变量在MeterSphere中是针对当前选择的环境生效的,也就是说,一个全局变量只能针对选择当前环境的接口或者接口自动化场景有效,选择其他环境则不会生效。
二、创建全局变量
选择应用场景、填写变量名、变量值及变量的备注信息,此时的变量值为“zhangsan”
填写好之后,会自动增加一行 ,可以采用批量添加或者导出导入,可以自行尝试。
三、接口、接口CASE及接口自动化中使用该变量
选择某个API接口,在请求头中使用上图中设置的变量name,如下图
实际发出去的内容,就会被真实的变量值给替换
四、重置全局变量
在后置操作中,选择后置脚本:
点击“添加”,出现这个页面之后,选择项目环境
显示的脚本为
vars.put(${__metersphere_env_id}+"key","value");
vars.put("key","value")
其中“${__metersphere_env_id}”为内置环境ID参数,不用做任何修改
“key”是变量名称,修改成项目环境下通用配置定义的变量名称
“value”则是环境下通用配置下的变量值
修改变量值的脚本为
vars.put(${__metersphere_env_id}+"name","哈哈哈哈");
vars.put("name","哈哈哈哈")
执行之后,在环境下的通用配置查看变量值确实已经被重置为“哈哈哈哈”
再次执行原API接口可以看到,环境通用配置下的全局变量已经被替换为脚本重置后的变量值。如此操作之后,可以进行全局变量的重置保存,可以在后续的接口CASE或者接口自动化场景内使用。
当使用场景为接口定义及接口CASE内进行单独调试时,参数无法进行传递,可通过此种方式进行全局变量的重置,以便后续接口及自动化场景使用该变量值去执行调试。