Telnet: Library Version: 3.2.2 Library Scope: Named Arguments: Supported
Telnet: Library Version: 3.2.2 Library Scope: Named Arguments: Supported
Introduction
A test library providing communication over Telnet connections.
Table of contents
• Connections
• Writing and reading
• Configuration
• Terminal emulation
• Logging
• Time string format
• Boolean arguments
• Importing
• Shortcuts
• Keywords
Connections
The first step of using Telnet is opening a connection with Open Connection
keyword. Typically the next step is logging in with Login keyword, and in the end the
opened connection can be closed with Close Connection.
It is possible to open multiple connections and switch the active one using Switch
Connection. Close All Connections can be used to close all the connections, which is
especially useful in suite teardowns to guarantee that all connections are always
closed.
The ANSI escape codes, like cursor movement and color codes, are normally returned
as part of the read operation. If an escape code occurs in middle of a search pattern it
may also prevent finding the searched string. Terminal emulation can be used to
process these escape codes as they would be if a real terminal would be in use.
Configuration
Many aspects related the connections can be easily configured either globally or per
connection basis. Global configuration is done when library is imported, and these
values can be overridden per connection by Open Connection or with setting specific
keywords Set Timeout, Set Newline, Set Prompt, Set Encoding, Set Default Log
Level and Set Telnetlib Log Level.
Timeout
Timeout defines how long is the maximum time to wait when reading output. It is
used internally by Read Until, Read Until Regexp, Read Until Prompt, and Login
keywords. The default value is 3 seconds.
Connection Timeout
Connection Timeout defines how long is the maximum time to wait when opening the
telnet connection. It is used internally by Open Connection. The default value is the
system global default timeout.
Newline
Newline defines which line separator Write keyword should use. The default value is
CRLF that is typically used by Telnet connections.
Newline can be given either in escaped format using \n and \r or with special LF and
CR syntax.
Examples:
Set Newline \n
Set Newline CRLF
Prompt
Often the easiest way to read the output of a command is reading all the output until
the next prompt with Read Until Prompt. It also makes it easier, and faster, to verify
did Login succeed.
Prompt can be specified either as a normal string or a regular expression. The latter is
especially useful if the prompt changes as a result of the executed commands. Prompt
can be set to be a regular expression by giving prompt_is_regexp argument a true
value (see Boolean arguments).
Examples:
Encoding
To ease handling text containing non-ASCII characters, all written text is encoded and
read text decoded by default. The default encoding is UTF-8 that works also with
ASCII. Encoding can be disabled by using a special encoding value NONE. This is
mainly useful if you need to get the bytes received from the connection as-is.
Notice that when writing to the connection, only Unicode strings are encoded using
the defined encoding. Byte strings are expected to be already encoded correctly.
Notice also that normal text in test data is passed to the library as Unicode and you
need to use variables to use bytes.
Examples:
Default log level specifies the log level keywords use for logging unless they are
given an explicit log level. The default value is INFO, and changing it, for example, to
DEBUG can be a good idea if there is lot of unnecessary output that makes log files big.
Terminal type
By default the Telnet library does not negotiate any specific terminal type with the
server. If a specific terminal type, for example vt100, is desired, the terminal type can
be configured in importing and with Open Connection.
Window size
Window size for negotiation with the server can be configured when importing the
library and with Open Connection.
Telnet protocol allows the USER environment variable to be sent when connecting to
the server. On some servers it may happen that there is no login prompt, and on those
cases this configuration option will allow still to define the desired username. The
option environ_user can be used in importing and with Open Connection.
Terminal emulation
Telnet library supports terminal emulation with Pyte. Terminal emulation will process
the output in a virtual screen. This means that ANSI escape codes, like cursor
movements, and also control characters, like carriage returns and backspaces, have the
same effect on the result as they would have on a normal terminal screen. For
example the sequence acdc\x1b[3Dbba will result in output abba.
As Pyte approximates vt-style terminal, you may also want to set the terminal type as
vt100. We also recommend that you increase the window size, as the terminal
emulation will break all lines that are longer than the window row length.
When terminal emulation is used, the newline and encoding can not be changed
anymore after opening the connection.
Examples:
Open
lolcatho terminal_emulation=T terminal_type=vt1 window_size=400x
Connectio
st rue 00 100
n
As a prerequisite for using terminal emulation, you need to have Pyte installed. Due to
backwards incompatible changes in Pyte, different Robot Framework versions support
different Pyte versions:
• Pyte 0.6 and newer are supported by Robot Framework 3.0.3. Latest Pyte
version can be installed (or upgraded) with pip install --upgrade pyte.
• Pyte 0.5.2 and older are supported by Robot Framework 3.0.2 and earlier. Pyte
0.5.2 can be installed with pip install pyte==0.5.2.
Logging
All keywords that read something log the output. These keywords take the log level to
use as an optional argument, and if no log level is specified they use the configured
default value.
The valid log levels to use are TRACE, DEBUG, INFO (default), and WARN. Levels below
INFO are not shown in log files by default whereas warnings are shown more
prominently.
The telnetlib module used by this library has a custom logging system for logging
content it sends and receives. By default these messages are written using TRACE
level, but the level is configurable with the telnetlib_log_level option either in
the library initialization, to the Open Connection or by using the Set Telnetlib Log
Level keyword to the active connection. Special level NONE con be used to disable the
logging altogether.
Boolean arguments
Some keywords accept arguments that are handled as Boolean values true or false. If
such an argument is given as a string, it is considered false if it is an empty string or
equal to FALSE, NONE, NO, OFF or 0, case-insensitively. Other strings are considered
true regardless their value, and other argument types are tested using the same rules as
in Python.
True examples:
False examples:
Considering string NONE false is new in Robot Framework 3.0.3 and considering also
OFF and 0 false is new in Robot Framework 3.1.
Importing
Arguments Documentation
timeout=3
Telnet library can be imported with optional configuration
seconds,
parameters.
newline=CRLF,
prompt=None,
prompt_is_regex Configuration parameters are used as default values when new
p=False, connections are opened with Open Connection keyword. They
encoding=UTF- can also be overridden after opening the connection using the Set
8, ... keywords. See these keywords as well as Configuration,
encoding_errors= Terminal emulation and Logging sections above for more
ignore, information about these parameters and their possible values.
default_log_level
=INFO, See Time string format and Boolean arguments sections for
window_size=No information about using arguments accepting times and Boolean
ne, values, respectively.
environ_user=No
ne, Examples (use only one of these):
terminal_emulati
on=False, Sett Val Com
Value Value Value
terminal_type=N ing ue ment
one, #
telnetlib_log_lev Libr Tel defaul
el=TRACE, ary net t
connection_time values
out=None
# set
Libr Tel only
5 seconds
ary net timeo
ut
# set
newli
ne and
encod
Libr Tel encoding=IS ing
newline=LF
ary net O-8859-1 using
name
d
argum
ents
# set
Libr Tel
prompt=$ promp
ary net
t
# set
promp
t as a
Libr Tel prompt_is_re
prompt=(> |# ) regula
ary net gexp=yes
r
expres
sion
# use
termin
al
emula
tion
with
Libr Tel terminal_emulat terminal_type window_size define
ary net ion=True =vt100 =400x100 d
windo
w size
and
termin
al
type
#
disabl
e
loggin
Libr Tel telnetlib_log_le
g
ary net vel=NONE
messa
ges
from
the
underl
ying
telnetl
ib
Shortcuts
List style: Compact Expanded
Close All Connections
Close Connection
Execute Command
Login
Open Connection
Read
Read Until
Read Until Prompt
Read Until Regexp
Set Default Log Level
Set Encoding
Set Newline
Set Prompt
Set Telnetlib Log Level
Set Timeout
Switch Connection
Write
Write Bare
Write Control Character
Write Until Expected Output
Keywords
Keyword Arguments Documentation
Closes all open connections and empties
the connection cache.
Examples:
Read Until
(#|$)
Regexp
Read Until
first_regexp second_regexp
Regexp
Read Until \\d{4}-\\d{2}-
DEBUG
Regexp \\d{2}
Sets the default log level used for logging
in the current connection.
Example:
Set 2 minute 30
${old} =
Timeout seconds
Do
Something
Set Timeout ${old}
Switch Example:
index_or_alias
Connection
Open
Connectio myhost.net
n
Login john secret
some
Write
command
Open
yourhost.co 2nd
Connectio
m conn
n
passwor
Login root
d
Write another cmd
${old Switch #
1
index}= Connection index
Write something
Switch
Connectio 2nd conn # alias
n
Write whatever
# back
Switch
${old to
Connectio
index} origina
n
l
[Teardown Close All
] Connections
Open
${index} = myhost.net
Connection
Do Something
Switch
${index}
Connection
Writes the given text plus a newline into
the connection.
Example:
Write Until
ps -ef| grep
Expected myprocess
myprocess\r\n
Output
... 5s 0.5 s
Altogether 20 keywords.
Generated by Libdoc on 2020-09-01 21:22:50.