【问题标题】:How to use @CompileStatic for pure groovy scripts in JMeter environment?如何在 JMeter 环境中将 @CompileStatic 用于纯 groovy 脚本?
【发布时间】:2019-07-10 17:02:42
【问题描述】:

我想在 jmeter 环境中的 groovy 脚本中利用 @CompileStatic 注释。在编译时发现问题有很大帮助。

我已经开始在我的课程中使用它,但我不知道如何在普通的 groovy 脚本中使用它。例如,我有下面的脚本,其中有 logvars 变量,它们是 JMeter 环境中的一种全局变量。所以,最终它们会被使用。

如果我在下面的方法中添加@CompileStatic 注解,IntelliJ 会将所有内容都涂成红色,编译将失败,因为编译器不知道这些变量是什么。

那么,问题是如何在脚本的情况下告诉编译器这些变量具有类型以及它们具有什么类型,以及如何为脚本提供实例?

抱歉,我根本不是一个出色的专家。

void checkingInputParameters() {

    log.info("variable value:" + vars.get("some_variable_name"))
}
checkingInputParameters()

【问题讨论】:

    标签: groovy jmeter


    【解决方案1】:

    我认为你走错了路, 因为CompileStatic 是一个groovy 编译器 选项

    让 Groovy 编译器使用 Java 风格的编译时检查,然后执行静态编译,从而绕过 Groovy 元对象协议。

    JMeter(我假设您在 Intellij 中的测试)正在使用 java 编译器

    我认为你不应该混合它们进行测试。

    在 JMeter 中使用 Cache compiled 复选框/功能

    如果可用,检查缓存编译脚本

    【讨论】:

    • 我没有提到它是一个存储 JSR 233 脚本的 groovy maven 模块。当它编译时,它会很时髦。 IntelliJ 知道它很时髦。
    • @SayusiAndo 最终你想在 JMeter 环境中执行它,不是吗?这将是通过 ScriptEngine 执行 groovy 的 Java 代码
    • 是的,没错。但是,在 groovy 进入 JMeter 实例并将被编译为字节码之前,maven 将其编译为 groovy 代码,这是我想捕获所有可能的错字、没有向函数添加足够的参数等问题的阶段。就像强类型语言一样。
    • @SayusiAndo 好的,要回答您的问题,请添加 ApacheJMeter_core.jar 作为依赖项,以便 IntelliJ 识别 JMeterVariables 类和 slf4j-api-1.7.25.jarLogger
    • 如果方法上没有@CompileStatic,它会这样做。如果方法上有@CompileStatic 注释,则它们的每个场合都被标记为错误。一切都是红色的意思是很难确定哪个红色标记是错误哪个不是。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多