Проблема в скрипте JSR223, процессор провайдера - PullRequest
0 голосов
/ 14 января 2019

Проблема в скрипте JSR223, процессор провайдера javax.script.ScriptException: groovy.lang.MissingMethodException: нет подписи метода: org.apache.jmeter.threads.JMeterVariables.put () применимо для типов аргументов: (java.lang.String, java.util.regex.Matcher ) значения: [callbackUri, java.util.regex.Matcher [pattern = (? <= callbackUri =). * (? = &) region = 0,537 lastmatch =]] Возможные решения: put (java.lang.String, java.lang.String), get (java.lang.String), putAt (java.lang.String, java.lang.Object), wait (), dump (), любой () </p>

Ошибка в отличном коде. Ошибка выглядит следующим образом: «Script144.run (Script144.groovy: 2) ~ [?:?]»

Попытка получить значение из ответа предыдущего запроса GET.

def redirect = prev.getRedirectLocation()
def redirectQuery = new URI(redirect).query
def callbackUriMatch = (redirectQuery =~ /(?<=callbackUri=).*(? 
=&)/)[0]
vars.put("callbackUri", callbackUriMatch)

Предполагается, что callbackUri извлекает значение из предыдущего вызова. Но это не удается.

1 Ответ

0 голосов
/ 14 января 2019

Основная точка этой "строки" - =~, то есть оператор сопоставления Groovy , он применяет Регулярное выражение к строке запроса перенаправления, чтобы получить callbackUri параметр из него.

Попробуйте изменить эту строку, чтобы убрать из нее разрыв строки:

def callbackUriMatch = (redirectQuery =~ /(?<=callbackUri=).*(?=&)/)[0]

Если это не поможет - попробуйте добавить некоторые записи в журнале с помощью , поместив операторы log.info() для вывода значений переменных в файл jmeter.log , например:

def redirect = prev.getRedirectLocation()
log.info('Redirect: ' + redirect)
def redirectQuery = new URI(redirect).query
log.info('Redirect query: ' + redirectQuery)
def callbackUriMatch = (redirectQuery =~ /(?<=callbackUri=).*(?=&)/)[0]
vars.put("callbackUri", callbackUriMatch)

Таким образом, вы сможете увидеть некоторые исходные данные для сопоставителей и получить некоторые подсказки относительно того, как решить проблему. Если вы не сможете сделать это самостоятельно - обновите вопрос, указав фактический URL-адрес перенаправления, чтобы мы могли найти правильное регулярное выражение.

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