Groovy — различия между версиями
Xakep (обсуждение | вклад) (→expect Matcher) |
Xakep (обсуждение | вклад) (→expect Matcher) |
||
Строка 45: | Строка 45: | ||
* <code>startsWith(String)</code> - Creates a matcher that matches when the input buffer starts with the given string. | * <code>startsWith(String)</code> - Creates a matcher that matches when the input buffer starts with the given string. | ||
* <code>times(int, Matcher)</code> - Creates a matcher that matches if the given <code>Matcher</code> matches the <code>number</code> of times. | * <code>times(int, Matcher)</code> - Creates a matcher that matches if the given <code>Matcher</code> matches the <code>number</code> of times. | ||
+ | |||
+ | Примеры: | ||
+ | * <code>expect contains("vasya")</code> - то же самое, что и <code>expect "vasya"</code> | ||
+ | * <code>expect regexp("# $")</code> - ожидать, пока в output появится строка, соответствующая регулярному выражению "# $" (output будет заканчиваться на решетку и пробел) | ||
+ | * <code>expect times(3, contains("vasya_$num"))</code> - ожидать, пока в output 3 раза встретится строка "vasya_$num" ($num будет интерполировано) | ||
+ | * <code>expect anyOf(contains("vasya"), contains("petya"))</code> - ожидать, пока в output появится либо "vasya", либо "petya" | ||
+ | * <code>expect sequence(contains("vasya"), contains("petya"))</code> - ожидать, пока в output появится "vasya", а затем "petya" (именно в этом порядке) | ||
+ | * <code>expect allOf(contains("vasya"), contains("petya"))</code> - ожидать, пока в output появится "vasya" и "petya" (в любом порядке) |
Версия 12:26, 22 апреля 2016
Общие сведения
Любые строки нужно брать в кавычки, т.к. это язык программирования. В одинарных кавычках все отправляется как есть, в двойных интерполируются имена переменных с долларом (превращаются в значения).
Одни из самых часто используемых команд:
- SendLine "something" - отправить это в телнет-сессию и
добавить в конце <LF>.
- Send "something" - то же самое, но без <LF> в
конце.
- expect "something" - ожидать, пока телнет выведет в
output текст "something".
Переменные вне кавычек пишутся просто без каких-либо символов вначале. т.е. port_name, prompt и т.п.
Доступные команды:
expect "string"
Ожидать, пока telnet-сессия выведет в output string
.
Примеры:
-
expect "#"
-
expect prompt
-
expect "# port_$port_number sn:$onu_sn"
expect Matcher
Ожидать, пока telnet-сессия выведет в output строку, соответствующую Matcher
.
Возможные Matcher-ы:
-
allOf(Matcher, Matcher...)
- Creates a matcher that matches if the examined input matches all of the specified matchers. -
anyOf(Matcher, Matcher...)
- Creates a matcher that matches if the examined input matches any of the specified matchers. -
anyString()
- Creates a matcher that matches when at least one character exists in the input buffer. -
contains(String)
- Creates a matcher ofString
that matches when examined input contains the given substring. -
eof()
- Creates a matcher that matches if input reaches the end of stream (closed telnet session). -
exact(String)
- Creates a matcher that matches when the given string is equal to the input buffer contents. -
matches(String)
- Creates a matcher ofString
that matches when examined input fully matches the given regular expression. -
matches(Pattern)
- Creates a matcher ofPattern
that matches when examined input fully matches the given regular expression. -
regexp(String)
- Creates a matcher ofString
that matches when examined input contains the given regular expression. -
regexp(Pattern)
- Creates a matcher ofPattern
that matches when examined input contains the given regular expression. -
sequence(Matcher, Matcher...)
- Matches the given matchers one by one. Every successful matches updates the internal buffer. The consequent match operation is performed after the previous match has succeeded. -
startsWith(String)
- Creates a matcher that matches when the input buffer starts with the given string. -
times(int, Matcher)
- Creates a matcher that matches if the givenMatcher
matches thenumber
of times.
Примеры:
-
expect contains("vasya")
- то же самое, что иexpect "vasya"
-
expect regexp("# $")
- ожидать, пока в output появится строка, соответствующая регулярному выражению "# $" (output будет заканчиваться на решетку и пробел) -
expect times(3, contains("vasya_$num"))
- ожидать, пока в output 3 раза встретится строка "vasya_$num" ($num будет интерполировано) -
expect anyOf(contains("vasya"), contains("petya"))
- ожидать, пока в output появится либо "vasya", либо "petya" -
expect sequence(contains("vasya"), contains("petya"))
- ожидать, пока в output появится "vasya", а затем "petya" (именно в этом порядке) -
expect allOf(contains("vasya"), contains("petya"))
- ожидать, пока в output появится "vasya" и "petya" (в любом порядке)