- Expect
-
Expect Développeur Don Libes Dernière version 5.44.1.15 (11 mars 2011) [+/−] Écrit en Expect, Tcl Environnement GNU/Linux, FreeBSD, NetBSD, OpenBSD, MS Windows Licence Domaine public[1] Site web http://expect.nist.gov/ modifier Expect est un outils d'automation et de tests de non-régression écrit par Don Libes comme extension au langage de script Tcl pour tester des applications interactives comme telnet, ftp, passwd, fsck, rlogin, ssh, ou bien d'autres.
Sommaire
Exemples
Un exemple simple de script automatisant une session telnet:
# Assume $remote_server, $my_user_id, $my_password, and $my_command were read in earlier # in the script.
# Open a telnet session to a remote server, and wait for a username prompt. spawn telnet $remote_server expect "username:"
# Send the username, and then wait for a password prompt. send "$my_user_id\r" expect "password:"
# Send the password, and then wait for a shell prompt. send "$my_password\r" expect "%"
# Send the prebuilt command, and then wait for another shell prompt. send "$my_command\r" expect "%"
# Capture the results of the command into a variable. This can be displayed, or written to disk. set results $expect_out(buffer)
# Exit the telnet session, and wait for a special end-of-file character. send "exit\r" expect eofUn autre exemple de script testant ftp:
# Open an ftp session to a remote server, and wait for a username prompt. spawn ftp $remote_server expect "username:"
# Send the username, and then wait for a password prompt. send "$my_user_id\r" expect "password:"
# Send the password, and then wait for an ftp prompt. send "$my_password\r" expect "ftp>"
# Switch to binary mode, and then wait for an ftp prompt. send "bin\r" expect "ftp>"
# Turn off prompting. send "prompt\r" expect "ftp>"
# Get all the files send "mget *\r" expect "ftp>"
# Exit the ftp session, and wait for a special end-of-file character. send "bye\r" expect eofEt enfin ci-dessou, un exemple de test sftp, avec mot de passe:
#!/usr/local/bin/expect -f #<---insert here your expect program location # procedure to attempt connecting; result 0 if OK, 1 otherwise proc connect {passw} { expect { "Password:" { send "$passw\r" expect { "sftp*" { return 0 } } } } # timed out return 1 } #read the input parameters set user [lindex $argv 0] set passw [lindex $argv 1] set host [lindex $argv 2] set location [lindex $argv 3] set file1 [lindex $argv 4] set file2 [lindex $argv 5] #puts "Argument data:\n"; #puts "user: $user"; #puts "passw: $passw"; #puts "host: $host"; #puts "location: $location"; #puts "file1: $file1"; #puts "file2: $file2"; #check if all were provided if { $user == "" || $passw == "" || $host == "" || $location == "" || $file1 == "" || $file2 == "" } { puts "Usage: <user> <passw> <host> <location> <file1 to send> <file2 to send>\n" exit 1 } #sftp to specified host and send the files spawn sftp $user@$host set rez [connect $passw] if { $rez == 0 } { send "cd $location\r" set timeout -1 send "put $file2\r" send "put $file1\r" send "ls -l\r" send "quit\r" expect eof exit 0 } puts "\nError connecting to server: $host, user: $user and password: $passw!\n" exit 1
Notes et références
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Expect » (voir la liste des auteurs)
Voir aussi
Articles connexes
Liens externes
- (en) Code source Expect la plate-forme d'hébergement SourceForge.net.
- (en) Page web SourceForge.
Wikimedia Foundation. 2010.