什么是全局变量
全局变量可以在测试过程中动态取值以及赋值,比如:使用登录接口获取 token,将 token 值赋值给自定义全局变量 global_token,然后在另一个需要使用该token的接口中,使用 {{global_token}} 或者代码来引用该全局变量,实现 token 参数的跨 API 传递。
此外自定义全局变量有以下特性:
- 自定义全局变量不依赖于环境,即使没有选择环境也可以使用。
- 自定义全局变量可以和环境中固定的全局变量同名,比如都叫token,但是自定义全局变量的优先级高于环境的全局变量,比如自定义全局变量token值为1,环境全局变量token值为2,则通过{{token}}取值将得到1。
- 自定义全局变量仅储存在浏览器或者PC客户端中,不会在团队之间共享,并且清除浏览器缓存时也会把自定义全局变量清除。
- 在API自动化测试中,自定义全局变量仅在“一次”测试中有效,无论这一次测试中包含了多少个测试用例、测试步骤,比如单独执行一个测试步骤、执行10个测试用例、执行一个定时测试任务等,都算是一次测试。
- 在 API 研发管理中,可以通过点击页面右上角预览环境按钮来查看当前的自定义全局变量值,如下图。但是在 API 自动化测试中,不会在界面中显示自定义全局变量的值。
使用全局变量
在界面上引用全局变量非常简单,只需要输入:{{全局变量参数名}},在测试的时候系统会自动替换成相应全局变量的值。
如果需要对全局变量赋值,或者进行更复杂的操作,可以在预处理代码中输入以下语句:
//获取某个全局变量的值
eo.globals.get("variable_key");
//为某个全局变量赋值,注意值的类型只能是string、number、boLIST,除此之外会报错。
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。