引用全局变量
一、什么是全局变量
全局变量可以在测试过程中动态取值以及赋值,比如:使用登录接口获取 token,将 token 值赋值给自定义全局变量 global_token,然后在另一个需要使用该token的接口中,使用 {{global_token}} 或者代码来引用该全局变量,实现 token 参数的跨 API 传递。
二、变量类型区分
系统中变量有两类:全局变量和环境变量
全局变量
-
全局变量的脚本函数对应 eo.globals.set("key",value)
-
对项目内全局有效,但优先级低于环境变量。即若全局变量和环境变量的变量名均为token,则取环境变量值
-
不依赖于环境,即使没有选择环境也可以使用
环境变量
-
环境变量的脚本函数对应 eo.env.param.set("key",value)
-
仅使用项目下某环境测试时有效,优先级高于全局变量。即若全局变量和环境变量的变量名均为token,则取环境变量值
-
依赖环境,仅在选中该环境测试时方可使用
初始值与本地值
无论全局变量还是环境变量,均有初始值和本地值的两种值类型。
-
初始值
-
存储在云端,可与团队之间进行共享。自动化测试用例的定时任务仅会使用初始值。
-
本地值
-
仅存储在浏览器或PC客户端中,不会在团队之间共享,并且清除浏览器缓存时会把变量的本地值清除。
使用规则
在使用浏览器插件测试和PC客户端本地测试时,若变量有本地值,则使用本地值;若没有本地值,则使用初始值。
在服务器远程测试时,无论是否有本地值,仅会使用初始值进行测试。
在API研发管理中,可以通过点击页面右上角预览环境按钮来查看当前的自定义全局变量值,如下图
三、使用全局变量
在界面上引用全局变量非常简单,只需要输入:{{全局变量参数名}},在测试的时候系统会自动替换成相应全局变量的值。
如果需要对全局变量赋值,或者进行更复杂的操作,可以在预处理代码中输入以下语句:
//获取某个全局变量的值
eo.globals.get("variable_key");
//为某个全局变量赋值,注意值的类型只能是string、number、bool,除此之外会报错。
eo.globals.set("variable_key","variable_value");
//清除某个全局变量
eo.globals.unset("variable_key");
//清除所有全局变量
eo.globals.clear;
比如:
-
在预处理中使用eo.globals.set(“token”,”123456″)语句,设置一个自定义全局变量token,赋值为123456。
-
然后在请求体的表格中使用{{token}}即可引用该token值,即123456。
引用数据集变量
在测试步骤中使用数据集的变量
在用例的执行步骤中,您可以在请求参数、返回结果、校验规则的输入框中,将鼠标聚焦在输入框,此时输入框上方会出现 关联数据集变量 按钮,点击之后在弹窗中可以选择需要使用的数据集变量。您也可以通过手动输入 $dc{变量名} 的方式来引用变量,在测试时会自动将该变量名替换为每个数据集的实际变量值。
测试时选择需要执行的数据集并获取返回结果
在测试流程页面,点击右上角批量操作按钮,会在弹窗中选择需要执行的数据集(如果已经添加了多个数据集),点击确定之后,系统会自动执行用该测试流程执行多次并得到每个数据集的测试报告。