Script zum Test einer Webapplikation
Script zum Test einer Webapplikation
Hallo Forum,
ich möchte ein Script schreiben dass sich auf einer https seite als user mit passwort einlogged und im internen bereich über verschiedenen menues eine bestellung vornimmt und sich wieder auslogged. hat mir jemand einen tip mit welcher sprache ich das in angriff nehmen soll und eventuell einen link zu basisinfo?
vielen dank
ich möchte ein Script schreiben dass sich auf einer https seite als user mit passwort einlogged und im internen bereich über verschiedenen menues eine bestellung vornimmt und sich wieder auslogged. hat mir jemand einen tip mit welcher sprache ich das in angriff nehmen soll und eventuell einen link zu basisinfo?
vielen dank
--
kallisti!
kallisti!
Hi zorn,
ich würd sowas mit Python machen, aber nicht nur weil Python dafür so gut geeignet ist, sondern auch weil ich mich mit Python recht gut auskenne. Im Prinzip geht es auch mit perl oder ruby oder sogar ganz allein mit bash-scripting.
Gruß
Dookie
ich würd sowas mit Python machen, aber nicht nur weil Python dafür so gut geeignet ist, sondern auch weil ich mich mit Python recht gut auskenne. Im Prinzip geht es auch mit perl oder ruby oder sogar ganz allein mit bash-scripting.
Gruß
Dookie
dann würd ichs mit perl versuchen, und zu den entsprechenden Formularseiten mit den entsprechenden get- bzw. post-variablen einen request senden. Wie das mit dem Einloggen geht weiß ich auch nicht, habs noch nicht probiert. Eventuell mal im Perl-Cookbook suchen.
Gruß
Dookie
Gruß
Dookie
okok - ich machs in perl
mein perl ist aber noch extrem holprig:
soweit bin ich schon mal:
{
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common;
$ua = LWP::UserAgent->new;
$ua->request(POST 'https://einesite.de/unterverzeichnis/', [name => bla, password => blubber ]);
}
jetzt mein versändnissproblem:
anscheinend brauche ich eine session-id. wenn ich die page ziehe steht im code folgendes: Set-Cookie: JSESSIONID=blubberblubberblubber
baue ich die so ein (habs versucht, aber ich bekomme ja keinen output)?
$ua->request(POST 'https://einesite.de/unterverzeichnis/', [name => bla, password => blubber, jsessionid => blubberblubberblubber ]);
falls ja: wie kann ich die page die nach dem login kommt abrufen?
will meinen: wenn ich normal mit dem bowser die page besuche und auf login klicke werde ich auf eine neue site geleitet. wie rufe ich die ab?
dazu kann ich leider nichts finden.
VIELEN DANK!
(fänds immer noch in shellscript gut weil das parsen noch auf mich zu kommt und mir sed + awk wesentlich besser gefällt als perl - aber das ändert sich ja wahrscheinlich im laufe dieses projekts...)
mein perl ist aber noch extrem holprig:
soweit bin ich schon mal:
{
#!/usr/bin/perl
use LWP::UserAgent;
use HTTP::Request::Common;
$ua = LWP::UserAgent->new;
$ua->request(POST 'https://einesite.de/unterverzeichnis/', [name => bla, password => blubber ]);
}
jetzt mein versändnissproblem:
anscheinend brauche ich eine session-id. wenn ich die page ziehe steht im code folgendes: Set-Cookie: JSESSIONID=blubberblubberblubber
baue ich die so ein (habs versucht, aber ich bekomme ja keinen output)?
$ua->request(POST 'https://einesite.de/unterverzeichnis/', [name => bla, password => blubber, jsessionid => blubberblubberblubber ]);
falls ja: wie kann ich die page die nach dem login kommt abrufen?
will meinen: wenn ich normal mit dem bowser die page besuche und auf login klicke werde ich auf eine neue site geleitet. wie rufe ich die ab?
dazu kann ich leider nichts finden.
VIELEN DANK!
(fänds immer noch in shellscript gut weil das parsen noch auf mich zu kommt und mir sed + awk wesentlich besser gefällt als perl - aber das ändert sich ja wahrscheinlich im laufe dieses projekts...)
--
kallisti!
kallisti!
Man kann auch mit dem consolen browser lynx das Aufrufen und Testen einer Seite automatisieren. Dazu ruft man ihn einfach mit der Option -cmd_log=file auf. Dabei wird nu ein macro aufgenommen, was heisst das jeder klick und jede Eingabe in eine Datei mitgeschrieben wird. Wenn man dies gemacht hat, kann man lynx mit der Option -cmd_script=file aufrufen, was lynx dazu bewegt genau das selbe wieder zu tun. Damit kann man wunderbar testfälle schreiben.
-cmd_log=FILENAME
write keystroke commands and related information to the
specified file.
-cmd_script=FILENAME
read keystroke commands from the specified file. You can use
the data written using the -cmd_log option. Lynx will ignore
other information which the command-logging may have written to
the logfile. Each line of the command script contains either a
comment beginning with "#", or a keyword:
exit causes the script to stop, and forces lynx to exit
immediately.
key the character value, in printable form. Cursor and other
special keys are given as names, e.g., "Down Arrow".
Printable 7-bit ASCII codes are given as-is, and hexadecimal
values represent other 8-bit codes.
set followed by a "name=value" allows one to override values set
in the lynx.cfg file.
christian
Doch noch ne Frage zum Thema:
Mein Ziel ist es ja zu testen ob die Seiten korrekt aufgerufen werden. Zu diesem Zweck loge ich mich dort ein, klicke ein bischen rum, und logge mich wieder aus. Das ganze per lynx-macro. Lynx frägt aber die gifs und jpgs nicht ab! Kann ich Lynx so konfigurieren dass die Grafiken übertragen werden und falls ja, kann ich auch sagen wirf einen error aus falls eine nicht kommt?
Ansonsten hilft mir das Macro nämlcih doch nur bedingt weiter. Ich kann die Funktion testen, nicht aber die korrekte Darstellung.
Thx
Mein Ziel ist es ja zu testen ob die Seiten korrekt aufgerufen werden. Zu diesem Zweck loge ich mich dort ein, klicke ein bischen rum, und logge mich wieder aus. Das ganze per lynx-macro. Lynx frägt aber die gifs und jpgs nicht ab! Kann ich Lynx so konfigurieren dass die Grafiken übertragen werden und falls ja, kann ich auch sagen wirf einen error aus falls eine nicht kommt?
Ansonsten hilft mir das Macro nämlcih doch nur bedingt weiter. Ich kann die Funktion testen, nicht aber die korrekte Darstellung.
Thx
--
kallisti!
kallisti!