Jmeter日志不够丰富
我在Jmeter日志中遇到了一个问题,我一起运行10个测试,它们都有相同的步骤,但具有不同的参数。 当我检查Jmeter日志时,我在步骤中看到异常,但未在哪个测试中提及,那么如何知道哪个场景正在执行此问题?Jmeter日志不够丰富
2017-12-18 14:56:10,223 ERROR o.a.j.e.JSR223PostProcessor: Problem in JSR223 script, Short_tt_cid javax.script.ScriptException: javax.script.ScriptException: java.lang.NullPointerException: Cannot invoke method substring() on null object
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:158) ~[groovy-all-2.4.12.jar:2.4.12]
at javax.script.AbstractScriptEngine.eval(Unknown Source) ~[?:1.8.0_141]
步骤short_tt_cid是在所有测试中,当我用它来打印ID它不是在日志显示, 另外的问题就是,当我运行几个测试在一起,所以,我怎么能知道什么是问题?我怎样才能让Jmeter告诉我更多的日志信息,例如测试名称。我用{test_name}调用了该步骤,并且它不显示在日志中 问题是如果我只运行一次测试,所有测试都会通过
回答:
您可以添加变量,即使在测试计划水平,这将节省测试计划文件使用功能TestPlanName功能使用它需要的时候:
${__TestPlanName}
的TestPlanName函数返回当前测试计划的名称(可以包括计划用于了解调用测试计划的名称)。
组名称使用ctx.getThreadGroup().getName()
例如:
${__BeanShell(ctx.getThreadGroup().getName())}
将它添加到一个变量在1 User Parameters
每个线程组,并使用该变量时,你需要
回答:
这不是关于JMeter,而是关于您的Groovy代码。原因是您试图在未定义(或空值)变量上调用substring()
函数。
如果您需要这是更多的信息 - 实现是完全取决于你,可能的选项之一是把你的代码try block,如:
try { def myObj = null
myObj.substring()
}
catch (Exception ex) {
log.info('Problem in ' + ctx.getCurrentSampler().getName() + ' in ' + ctx.getThreadGroup().getName() + ' Thread Group')
throw ex
}
这样,您将有至少在Thread Group和Sampler的名字jmeter.log文件中。在上面的例子ctx
代表JMeterContext类的实例,看看Java文档的详细信息,Groovy脚本在JMeter的
Apache Groovy - Why and How You Should Use It
以上是 Jmeter日志不够丰富 的全部内容, 来源链接: utcz.com/qa/263691.html