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

回到顶部