Ciao,
vorrei scrivere uno script che mi funge un po’ da robot http. Una
specie di macro, insomma. Dovrebbe collegarsi ad un sito, fare login,
navigare per un po’ di link e cliccare un po’ di bottoni ecc.
Immagino
che potrei farlo con una serie di richieste usando Net::HTTP (farÃ
ben
post e login ecc?), ma in qualche modo mi pare … boh … poco
elegante. Anche perché dopo ogni richiesta dovrei verificare che la
risposta è quella “giusta” (cioè oltre al response code 200) e per
ogni modifica alla pagina web remota potrebbe andare a culo…
Come fareste voi? Mi ci vorrebbe una specie di hpricot del HTTP
tipo…
On 11/29/06, david [email protected] wrote:
Ciao,
vorrei scrivere uno script che mi funge un po’ da robot http. Una
specie di macro, insomma. Dovrebbe collegarsi ad un sito, fare login,
navigare per un po’ di link e cliccare un po’ di bottoni ecc. Immagino
Se l’idea è di fare test di un’applicazione web, ti potrebbe
interessare Selenium (http://www.openqa.org/selenium/) oppure watir
(http://wtr.rubyforge.org/)
che potrei farlo con una serie di richieste usando Net::HTTP (farà ben
post e login ecc?), ma in qualche modo mi pare … boh … poco
elegante. Anche perché dopo ogni richiesta dovrei verificare che la
risposta è quella “giusta” (cioè oltre al response code 200) e per
ogni modifica alla pagina web remota potrebbe andare a culo…
Beh, non dimenticare il potere delle subroutine… definisci un
metodo che richiede una pagina e gestisce i vari possibili status
come serve a te.
Matteo
Selenium no perché gira nel browser e Watir nemmeno perché va solo su
Win…
Hmmm. Peccato però! Entrambi sembrano carini assai, in particolar modo
watir sembra esattamente quello che cercavo… Ma perché non hanno
usato spidermonkey (l’engine JS di mozilla) che è crossplatform e
tutto…
Matteo V. wrote:
On 11/29/06, david [1]<[email protected]> wrote:
Ciao,
vorrei scrivere uno script che mi funge un po' da robot http.
Una
specie di macro, insomma. Dovrebbe collegarsi ad un sito, fare
login,
navigare per un po' di link e cliccare un po' di bottoni ecc.
Immagino
Se l'idea è di fare test di un'applicazione web, ti potrebbe
interessare Selenium ([2]http://www.openqa.org/selenium/) oppure
watir
([3]http://wtr.rubyforge.org/)
che potrei farlo con una serie di richieste usando Net::HTTP
(farà ben
post e login ecc?), ma in qualche modo mi pare ... boh ... poco
elegante. Anche perché dopo ogni richiesta dovrei verificare che
la
risposta è quella "giusta" (cioè oltre al response code 200) e
per
ogni modifica alla pagina web remota potrebbe andare a culo...
Beh, non dimenticare il potere delle subroutine... :-) definisci
un
metodo che richiede una pagina e gestisce i vari possibili status
come serve a te.
Matteo
–
“Remember, always be yourself. Unless you suck.” - Joss Whedon
References
Forse è un pò OT, ma JMeter http://jakarta.apache.org/jmeter/ permette di
fare test di carico di applicazioni web, supporta post e get etc…
se poi hai voglia di esplorare, badboy http://www.badboy.com.au/
registra
le interazioni con il browser ed esporta test in formato JMeter.
Se l’applicazione invece è tua ed è scritta in rails gli IntegrationTest
dovrebbero bastare.
Paolo
On 11/29/06, david [email protected] wrote:
On 11/29/06, david [1]<[email protected]> wrote: interessare Selenium ([2]http://www.openqa.org/selenium/) oppure ogni modifica alla pagina web remota potrebbe andare a culo...
References
Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml
–
Paolo D.’
SeeSaw | Another point of view
Forse è un pò OT, ma JMeter http://jakarta.apache.org/jmeter/
permette di
fare test di carico di applicazioni web, supporta post e get etc…
se poi hai voglia di esplorare, badboy http://www.badboy.com.au/
registra
le interazioni con il browser ed esporta test in formato JMeter.
Ma funziona headless? Cioè, una volta esportato il “test” in formato
JMeter, posso eseguirlo n volte da un demone o cronjob? (ora ci guardo
da me cmq…!)
Se l’applicazione invece è tua ed è scritta in rails gli IntegrationTest
dovrebbero bastare.
Nope. Purtroppo è roba altrui e tocca fare un po’ di reverse engineering
per arrivarci… Praticamente devo
- fare login (un POST con usr/pwd immagino)
- navigare per pagina A, B e C e attivare un link D (salto magari
diritto a C) - nel popup che si apre, spuntare un po’ di checkbox e fare “submit” (un
altro POST?)
Cioè, non è nulla di assurdamente difficile in realtà, ma è un po’
fragile. Mi piaceva farlo in maniera generica e maintainable, ma alla
peggio faccio a manoni…
modo
specie di macro, insomma. Dovrebbe collegarsi ad un sito, fare
(farà ben
come serve a te.
Ml mailing list
[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml
–
“Remember, always be yourself. Unless you suck.” - Joss Whedon
Se l’idea è di fare test di un’applicazione web, ti potrebbe
interessare Selenium (http://www.openqa.org/selenium/) oppure watir
(http://wtr.rubyforge.org/)
Per l’ultimo argomento c’è pure un bel articolo in italiano su The Ruby
Mine
http://www.therubymine.com/articles/2006/11/13/watir-il-tuo-telecomandone
–
Andrea R.
: : i’m a miner : : | therubymine.com
On 11/29/06, david [email protected] wrote:
Selenium no perché gira nel browser e Watir nemmeno perché va solo su
Win…
Hmmm. Peccato però! Entrambi sembrano carini assai, in particolar modo
watir sembra esattamente quello che cercavo… Ma perché non hanno
usato spidermonkey (l’engine JS di mozilla) che è crossplatform e
tutto…
Probabilmente MozRepl (by yours truly) non è altrettanto raffinato, ma
qualcuno in Giappone pare essersi divertito abbastanza a pilotarlo da
Ruby:
http://d.hatena.ne.jp/omochist/20061028/1162045854
http://d.hatena.ne.jp/omochist/20061020/1161334958
http://la.ma.la/blog/diary_200609280045.htm
http://d.hatena.ne.jp/hiboma/20060929/1159477133
Una birra a chi mi dice se ne parlano bene…
–
Massimiliano M.
code: http://dev.hyperstruct.net
blog: http://blog.hyperstruct.net
On 29/nov/06, at 13:02, david wrote:
elegante. Anche perché dopo ogni richiesta dovrei verificare che la
risposta è quella “giusta” (cioè oltre al response code 200) e per
ogni modifica alla pagina web remota potrebbe andare a culo…
Come fareste voi? Mi ci vorrebbe una specie di hpricot del HTTP
tipo…
Net::HTTP per certe cose è paurosamente scomoda, ti consiglio
WWW::Mechanize: http://mechanize.rubyforge.org/ .
Dai uno sguardo agli esempi: http://mechanize.rubyforge.org/files/
EXAMPLES.html .
–
“Remember, always be yourself. Unless you suck.” - Joss Whedon
–
Gabriele M.
Net::HTTP per certe cose è paurosamente scomoda, ti consiglio
WWW::Mechanize: http://mechanize.rubyforge.org/ .
Dai uno sguardo agli esempi:
http://mechanize.rubyforge.org/files/EXAMPLES.html .
Sembra ECCELENTE. Grazie davvero. Ora mi ci butto.
–
“Remember, always be yourself. Unless you suck.” - Joss Whedon