исключение JavaScript в то время как контроллер в Jmeter - PullRequest
0 голосов
/ 28 июня 2018

Я пробовал JavaScript в jmeter во время контроллера, и я использую функцию ниже

${__javaScript(("${app_status_g1}".indexOf("100") == -1 && ${App_status_counter} < 10),)}

app_status_g1 извлекается из экстрактора регулярных выражений внутри контроллера while

Однако я получаю журналы исключений jmeter:

JavaScript: Error processing Javascript: [("${app_status_g1}".indexOf("100") == -1 && ${App_status_counter} < 10)]
javax.script.ScriptException: <eval>:1:45 Expected ) but found {
("${app_status_g1}".indexOf("100") == -1 && ${App_status_counter} < 10)
                                             ^ in <eval> at line number 1 at column number 45

Пробовал несколько комбинаций с круглыми скобками, но не смог найти причину проблемы. Но похоже, что контроллер все еще работает.

Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Помните, что пользователям JMeter настоятельно рекомендуется использовать JSR223 Test Elements с Groovy языком и / или __ groovy () функцией для любых сценариев в виде JavaScript производительность интерпретатора может стать узким местом и испортить ваш тест.

Итак, рассмотрим переключение на функцию __groovy(), эквивалентный синтаксис будет:

${__groovy((!vars.get('app_status_g1').contains('100') && ((vars.get('App_status_counter') as int) < 10)),)} 
0 голосов
/ 28 июня 2018

Вы должны ввести cast ${App_status_counter} to int из String, поскольку ${App_status_counter} является переменной типа String, и вы не можете сравнить ее напрямую.

использовать parseInt(${App_status_counter})<10

Таким образом, условие в цикле while может быть

${__javaScript(("${app_status_g1}".indexOf("100") == -1 && parseInt(${App_status_counter}) < 10),)}

Для получения дополнительной информации о цикле while перейдите по этой ссылке

а вот ссылка , работающая с несколькими условиями в цикле while

Пожалуйста, дайте мне знать, если это поможет

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