Я пытаюсь добавить бэкэнд-слушатель JMeter в свой проект JMeter, чтобы я мог иметь все показатели в реальном времени в Graphite.Мои тесты выполняются на нескольких узлах, и я хочу знать имя хоста как часть пути графита.Я попытался включить сценарии JSR223, но они не оцениваются до запуска слушателей, поэтому я использовал метод __groovy()
для поля rootMetricsPrefix
, например:
${__groovy(vars.get(vars.get("environment")+".graphiteprefix"))}.server.
${__groovy(InetAddress.getLocalHost().getHostName()
.replaceAll(/^([^.]*).*$/){m,host->return host})}.
myappbucket.jmeter.
Первая часть получает переменнуюс именем «environment», чтобы получить корневой префикс для среды («test», «load» и т. д.).Сценарий секунд __groovy()
должен получить первую часть имени хоста.Это работает, если я добавляю его как сэмплер JSR223 (для проверки), но если я пытаюсь использовать его как переменную, я получаю следующую ошибку:
Script13.groovy: 1: expecting '}', found '' @ line 1, column 67.
me().replaceAll(/^(^\.).*$/){m
^
1 error
at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:158) ~[groovy-all-2.4.13.jar:2.4.13]
at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:233) ~[?:1.8.0_152]
at org.apache.jmeter.functions.Groovy.execute(Groovy.java:121) [ApacheJMeter_functions.jar:4.0 r1823414]
at org.apache.jmeter.engine.util.CompoundVariable.execute(CompoundVariable.java:137) [ApacheJMeter_core.jar:4.0 r1823414]