Получить строку после последней двойной косой черты в JSR223 - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть JSR223 Sampler в JMeter, чтобы получить строку после последней //. currentFile Именованная строка содержит имя переменной JMeter, которая содержит путь к файлу.

String filen = vars.get(${currentFile});
filen=filen.replaceFirst(".*//(\\w+)","$1");

Я получаю сообщение об ошибке:

Ответное сообщение: javax.script.ScriptException: org.codehaus.groovy.control.MultipleCompilationErrorsException: Ошибка запуска: Script80.groovy: 8: неожиданный символ: '\' @ строка 8, колонка 36 filen = filen.replaceFirst ( "$ 1" "* // (\ W +)."); ^

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Почему бы не использовать Groovy для этого. Для этого есть хороший оператор:

String filen = vars.get("currentFile");
def result = filen =~ /.*\/\/(.*)/; //matches end of the string after the last //
if (result.hasGroup()) {
    filen = result[0][1]
    log.info("file:"+filen)
}
0 голосов
/ 08 ноября 2018

Согласно Документация JSR223 Sampler

JMeter обрабатывает ссылки на функции и переменные перед передачей поля сценария интерпретатору, поэтому ссылки будут разрешены только один раз.Ссылки на переменные и функции в файлах сценария будут дословно передаваться интерпретатору, что может вызвать синтаксическую ошибку.Чтобы использовать переменные времени выполнения, пожалуйста, используйте соответствующие методы props, например,

props.get("START.HMS");
props.put("PROP1","1234");

Поэтому вам нужно заменить эту строку:

String filen = vars.get(${currentFile});

на эту:

String filen = vars.get('currentFile');

Ознакомьтесь с Apache Groovy - почему и как его использовать * Статья 1017 * для получения дополнительной информации о скриптах Groovy в тестах JMeter.

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