Jmeter Backend Listener отличные проблемы - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь добавить бэкэнд-слушатель 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]

1 Ответ

0 голосов
/ 28 мая 2018

В соответствии с документацией JMeter :

Если параметр функции содержит запятую, то обязательно избегайте этого с помощью "\", в противном случае JMeterбудет рассматривать его как разделитель параметров.Например:

${__time(EEE\, d MMM yyyy)}

Таким образом, вам нужно экранировать запятую между m и host

${__groovy(InetAddress.getLocalHost().getHostName() .replaceAll(/^(^\.).*$/){m\,host->return host})}. myappbucket.jmeter.

Также помните о __ machineName () *Функции 1018 * и __ machineIP () обеспечивают более простой способ получения имени хоста и IP-адреса JMeter Engine.См. Функции Apache JMeter - статья для получения более полной информации о функциях JMeter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...