In den schlechten Zeiten der interaktiven Konsolenanwendungen hat Don Libes ein Tool namens Expect erstellt, mit dem Sie Tcl-Skripte schreiben können Interaktion mit diesen Anwendungen, so viel wie ein Benutzer. Erwarte hatte zwei enorme Vorteile:
Es war möglich, Interaktionen zu schreiben, die sonst mühsam von Hand wiederholt werden mussten. Ein klassisches Beispiel war die Internet-Zugang Hölle (aus den Tagen vor PPP).
Es war möglich, Skripte zu schreiben, um die eigenen interaktiven Anwendungen programmatisch als Teil einer Regressionssuite zu testen.
Heute sind die meisten interaktiven Anwendungen im Web, nicht auf der Konsole. Daher meine Frage: Gibt es ein Tool, das die Möglichkeit bietet, mit Webseiten und Webformularen programmgesteuert zu interagieren, ähnlich wie Expect die Möglichkeit bietet, mit Konsolenanwendungen programmgesteuert zu interagieren?
(Das nächste, was mir bekannt ist, ist Chickenfoot .)
Ich habe Selenium RC in Verbindung mit Python verwendet, um Webseiteninteraktionen programmgesteuert zu steuern. Dies hat mir erlaubt, ziemlich umfangreiche Benutzertests zu schreiben, in denen Formulare und Eingaben gesteuert werden und ihre Ergebnisse gemessen werden.
Sieh dir die IDE Selenium in Firefox an (wie oben erwähnt). Es ermöglicht Ihnen, Tests im Browser aufzuzeichnen und sie entweder über die IDE selbst oder über die Remote Control-App abzuspielen.
Ich habe eine Menge von Expect in einem früheren Leben gearbeitet und dachte immer, Don Libes 'Expect-Buch sei eines der am besten geschriebenen und aufschlussreichsten technischen Bücher, die ich jemals gesehen habe.
Ich würde sagen, dass Perls WWW :: Mechanize-Bibliothek das ist, was Sie wollen. Ich habe oben bemerkt, dass Sie Probleme hatten, eine Dokumentation zu finden. Dafür gibt es eine gute Dokumentation! Schlagen Sie die Verteilung des Moduls auf search.cpan.org nach und sehen Sie, was alles darin enthalten ist. Es gibt eine FAQ, ein Kochbuch mit Beispielen usw. Außerdem konnte ich immer Hilfe im Internet bekommen. Wenn Sie es hier nicht finden können, versuchen Sie es unter use.perl.org oder perlmonks.org. WWW :: Mechanizes Autor, Andy Lester, ist auf Stack Overflow präsent. (Er ist auch ein rundum freundlicher und hilfsbereiter Typ.)
Ich glaube, WWW :: Mechanize hat auch ein Programm, das dem Autoexpect-Programm von Expect ähnelt: Sie richten einen Proxy-Prozess ein, der dieses Programm als Server ausführt, weisen Sie Ihren Browser als Proxy darauf hin und führen Sie die Aktionen durch, die Sie automatisieren möchten und dann gibt das Proxy-Programm ein WWW :: Mechanize-Programm, das Sie als Basis für Ihr Projekt verwenden können. (Wenn es wie autoexpect funktioniert, werden Sie sicherlich von dort aus Änderungen vornehmen wollen.)
Wie bereits erwähnt, ist WWW :: Mechanize ein Browser (genauer gesagt ein Webclient oder ein HTTP-Client), der programmierbar ist. Das letzte Mal, als ich nachgesehen habe, wurde sogar daran gearbeitet, JavaScript zu unterstützen.
Tags und Links testing scripting expect interactive