Строка `match` не работает в утверждении JSR223 - PullRequest
0 голосов
/ 15 мая 2018

У меня есть следующий код подтверждения ...

Boolean result = prev.getResponseDataAsString().matches(".*Close.*")
System.out.println(result)
if(!result){
    BufferedWriter writer = null;
    try{
        writer = new BufferedWriter( new FileWriter("I:\\failedpayload.txt"))
          writer.write(prev.getResponseDataAsString())
     }
     catch(Exception ex){
        System.out.println(ex.getMessage())
     }
     finally{
        writer.close()
     }
    // System.out.println("Response:"+prev.getResponseDataAsString());
}
AssertionResult.setFailure(!result); 

Тест не пройден, и результат в итоге оказывается ложным. Однако, когда я смотрю на файл, который создается, я вижу там строку поиска.

Почему Close в файле, который создается, но не при создании логического значения?

Ответы [ 2 ]

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

Если вы хотите Groovy - вы можете использовать оператор совпадения , например:

def text = 'I Was Close Enough' 
def matcher = (text ==~ /.*Close.*/)
log.info('Matches: ' + matcher)

JMeter GRoovy Matches

Если вы хотите многострочный -Вы можете использовать оператор (?m), в Groovy он обрабатывает ввод как многострочный:

JMeter Groovy Regex

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

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

Это сработало ...

import java.util.regex.*
...
Pattern aPattern = Pattern.compile(".*Close.*",Pattern.MULTILINE);
Matcher aMatcher = aPattern.matcher(prev.getResponseDataAsString());
Boolean result = aMatcher.find();

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

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