【问题标题】:Can not print from java to jmeter - double variable scenario无法从 java 打印到 jmeter - 双变量场景
【发布时间】:2017-12-13 07:32:33
【问题描述】:

当我尝试从 Eclipse 打印日志时,我遇到了 jmeter 问题。 我尝试执行一个方法并打印它的值,该值存储在双变量中并在 jmeter 中获取异常。 eclipse 中也不例外,只在 jmeter 中

我检查了我从 jmeter 发送的内容,它是 string offer id , int 0, int 0 我用过:

import org.apache.log4j.Logger;

功能是:

public double get_actual_sensitivity(String Offerid,int suspicius_blocked,int suspicius_not_blocked)
    {
        double sensitivity_results = 0 ;

        if(suspicius_blocked == 0 && suspicius_not_blocked == 0) {
            return sensitivity_results;
        }
        else{
        sensitivity_results = ((double)suspicius_blocked /((double)suspicius_blocked + (double)suspicius_not_blocked ))* 100;
        //sensitivity_results = (sensitivity_results * 100);
        logger.error("The actual percantage that blocked for offer "+ Offerid  +" are: " + sensitivity_results);
        return sensitivity_results;
        }
    }

我得到的例外是

Problem in JSR223 script Get actual sensitivity for offer ${Expected_Offer_Id}, message: javax.script.ScriptException: javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: org.apache.logging.slf4j.Log4jLogger.error() is applicable for argument types: (java.lang.Double) values: [0.0]
Possible solutions: error(java.lang.String), error(java.lang.String, [Ljava.lang.Object;), error(java.lang.String, java.lang.Object), error(java.lang.String, java.lang.Throwable), error(org.slf4j.Marker, java.lang.String), error(java.lang.String, java.lang.Object, java.lang.Object)
javax.script.ScriptException: javax.script.ScriptException: groovy.lang.MissingMethodException: No signature of method: org.apache.logging.slf4j.Log4jLogger.error() is applicable for argument types: (java.lang.Double) values: [0.0]
Possible solutions: error(java.lang.String), error(java.lang.String, [Ljava.lang.Object;), error(java.lang.String, java.lang.Object), error(java.lang.String, java.lang.Throwable), error(org.slf4j.Marker, java.lang.String), error(java.lang.String, java.lang.Object, java.lang.Object)
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:158) ~[groovy-all-2.4.12.jar:2.4.12]

有人可以建议吗?

【问题讨论】:

  • 您是否尝试过在 IDE 中启用注释处理?
  • JMeter 有自己的日志记录,你想在 JMeter 中打印吗?如果不是,它是如何连接到 JMeter 的?
  • 我使用它从 Eclipse 写入 Jmeter 日志。我已经为我的所有函数做了这个,用java编写了复杂的场景,并从jmeter调用它们。这是我唯一一次遇到这个问题
  • 提示:logger.error("The actual percentage that blocked for offer {} are: {}", Offerid, sensitivity_results);

标签: java eclipse logging jmeter


【解决方案1】:

要写入 JMeter 日志总是首选 JMeter 自己的日志系统,使用

log.error("The actual percentage that blocked for offer "+ Offerid  +" are: " + sensitivity_results);

你导入了错误的Logger,查看JSR223日志,你应该导入如下:

import org.slf4j.Logger;

在 JMeter 库的 slf4j-api-1.7.25.jar 中找到。

【讨论】:

  • 嘿 user7294900,你能提供一个下载这个 jar 的链接吗,我看到的只是包含所有文件的 zip
  • 在JMeter库的slf4j-api-1.7.25.jar中找到。
  • 嘿 user7294900 当我导入那个 jar 并编写代码时 private final Logger slf4jLogger = Logger.getLogger(myclass.class); eclipse无法识别get logger功能,请问有什么分步解决方案吗?这就是我写的 import org.slf4j.Logger;然后创建了一个我不能使用的记录器,因为 getLogger 未定义类型 Logger
【解决方案2】:

我找到了解决此问题的解决方法 双 sens_res = 灵敏度_结果; 并打印 sens_res。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多