如何在使用脚本模式的katalon中运行时创建GlobalVariable?

时间:2018-08-02 16:17:11

标签: selenium groovy ui-automation katalon-studio

我是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无法识别这些关键字“脚本”,“评估”和静态。

您希望在此块代码上保持清晰,或者可以向我提出其他任何可能的解决方案。

2 个答案:

答案 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”,它将失败。