JMeter 5.1.Следующая ссылка дает рабочий код Условный перезапуск пользовательского потока в JMeter , где setTestLogicalAction
вызывается из SampleResult
.метод действительно указан в методах в https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html. Однако, он также указан в https://jmeter.apache.org/api/org/apache/jmeter/threads/JMeterContext.html, но использование org.apache.jmeter.threads.JMeterContext.setTestLogicalAction
дает
ERROR o.a.j.u.BeanShellInterpreter: Error invoking bsh method: eval Sourced file: inline evaluation of: `` import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter . . . '' : Cannot reach instance method: setTestLogicalAction( org.apache.jmeter.threads.JMeterContext$TestLogicalAction ) from static context: org.apache.jmeter.threads.JMeterContext
Почему я не могу использовать setTestLogicalAction
от JMeterContext
?Что мне не хватает в классах в java?
Кроме того, код из вышеупомянутого поста работает в beanshell, но ни этот, ни измененный, как и приведенный выше код, не работают в JSR223 + Groovy.После того, как вы заметили, что методы не являются статичными, код выглядит как показано ниже (оба пути были опробованы, наконец, я перечислил их вместе) в groovy, без ошибок, но поток продолжается, не перезапускается ...
jmco = new org.apache.jmeter.threads.JMeterContext();
jmsr = new org.apache.jmeter.samplers.SampleResult();
jmco.setTestLogicalAction(org.apache.jmeter.threads.JMeterContext.TestLogicalAction.START_NEXT_ITERATION_OF_THREAD);
jmsr.setTestLogicalAction(org.apache.jmeter.threads.JMeterContext.TestLogicalAction.START_NEXT_ITERATION_OF_THREAD);
МожетЯ использую setTestLogicalAction
в groovy script?
PS Интересно, как beanshell может вызывать нестатический метод без создания экземпляров ...
ADDED 2019/04/01:
def mycontext = org.apache.jmeter.threads.JMeterContextService.getContext()
mycontext.setTestLogicalAction(org.apache.jmeter.threads.JMeterContext.TestLogicalAction.START_NEXT_ITERATION_OF_THREAD);
код был изменен на вышеуказанный после предложения в ответе Дмитрия, но код не перезапускает поток.