Forvent

Forvent

Informasjon
Utviklet av Don Libes
Siste versjon 5.44.1.15 (11. mars 2011)
Skrevet i Forvent, Tcl
Operativsystem POSIX og Microsoft Windows
Miljø GNU / Linux , FreeBSD , NetBSD , OpenBSD , MS Windows
Type Kommandolinjespråk ( d ) Auto clicker
programmeringsspråk ( en )
Tillatelse Offentlig domene
Nettsted core.tcl.tk/expect/index

Expect er et ikke-regresjonstestings- og automatiseringsverktøy skrevet av Don Libes som en utvidelse av Tcl- skriptspråket for testing av interaktive applikasjoner som telnet , ftp , passwd , fsck , rlogin , ssh og mer.

Eksempler

Et enkelt eksempel på et skript som automatiserer en Telnet- økt  :

# 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 eof

Et annet eksempel på et skript som tester 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 eof

Og til slutt nedenfor, et eksempel på SFTP- test , med passord:

#!/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

Merknader og referanser

  1. (in) US Funding - National Institute of Standards and Technology .

Se også

Relaterte artikler

Eksterne linker