我是katalon studio工具的新手,并尝试通过将“变量名称”和“值”作为输入在运行时添加GlobalVariable。 我遇到了代码块,这将帮助我。但是我很难理解这段代码,因为它使用了Groovy中的元编程。
void addGlobalVariable(String name, def value) {
MetaClass mc = script.evaluate("internal.GlobalVariable").metaClass
String getterName = "get" + name.capitalize()
mc.static."$getterName" = { -> return value }
//mc.static."$name" = value
}
我在运行它时会收到“ InvocationTargetException”。而且katalon IDE无法识别这些关键字“脚本”,“评估”和静态。
您希望在此块代码上保持清晰,或者可以向我提出其他任何可能的解决方案。
答案 0 :(得分:0)
自动导入所需的库。您可以通过按 Ctrl + Shift + O 来实现。
答案 1 :(得分:0)
经过我的测试,以下代码可以达到效果: 1.定义关键字:
import com.kms.katalon.core.annotation.Keyword
package com.becelever.util
public class GlobalVariableUtils {
@Keyword
static void addGlobalVariable(String name, def value) {
GroovyShell shell1 = new GroovyShell()
MetaClass mc = shell1.evaluate("internal.GlobalVariable").metaClass
String getterName = "get" + name.capitalize()
mc.'static'."$getterName" = { -> return value }
mc.'static'."$name" = value
}
}
2。然后调用它并进行验证:
CustomKeywords.'com.becelever.util.GlobalVariableUtils.addGlobalVariable'('localURL', 'katalon.com')
println(GlobalVariable.localURL)
println(GlobalVariable.getLocalURL())
注意:我发现变量的第一个字母不能大写。例如,如果我将其更改为“ LocalURL”,它将失败。