Jmeter Использование регулярных выражений в Groovy для поиска подстроки - PullRequest
0 голосов
/ 13 июня 2018

в Jmeter Я использую JSR223PostProcessor с Groovy, HTTP-ответ - это блок JSON примерно так:

{
  "A1": 283,
  "XYZ": "123@192.168.12.12",
  "A3": "",
  "A4": {
  "A6": 1,
 }
}

Я заинтересован в поиске ->

"XYZ": "*@*",

Я могу или не могу иметь эту строку и отметить, что * может быть чем угодно. В настоящее время я делаю это, и это работает:

if (response.contains("@"))

, но мне нравится более элегантный способ ->

"XYZ":{any white space}"{any set of digits}@{anychars}",

как мне это сделать в Groovy?

Ответы [ 2 ]

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

Я не думаю, что здесь нужны регулярные выражения, я бы рекомендовал перейти на JsonSlurper и просто полагаться на наличие атрибута XYZ, соответствующий код Groovy будет выглядеть примерно так:

def xyz = new groovy.json.JsonSlurper().parse(prev.getResponseData()).XYZ
if (xyz == null) {
    log.info('XYZ string was not found')
}
else {
    log.info('XYZ value is: ' + xyz)
}
  • В случае отсутствия строки вы получите not found сообщение:

    JMeter Groovy JSON Not Found

    • В случае наличия строки вы получите ее значение:

      JMeter Groovy JSON Found

Дополнительная информация:

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

Вы можете использовать оператор поиска :

def response = prev.responseDataAsString

if ( response =~ /"XYZ":\s*"\d*@.*"/ ) {
    println "found it!"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...