在交互式控制台应用程序的旧时代,Don Libes创建了一个名为Expect的工具,它使您能够编写与这些应用程序交互的Tcl脚本,就像用户一样.Expect有两个巨大的好处:
有可能编写脚本交互,否则必须手动重复这些交互,乏味.一个典型的例子是拨号上网地狱(从PPP之前的几天).
作为回归套件的一部分,可以编写脚本来编程测试一个人自己的交互式应用程序.
今天,大多数交互式应用程序都在Web上,而不是在控制台上.因此我的问题是:是否有任何工具能够以编程方式与网页和Web表单进行交互,就像Expect提供了以编程方式与控制台应用程序交互的能力一样?
(我最了解的是Chickenfoot.)
您可能正在寻找Selenium
我已经将Selenium RC与Python结合使用,以编程方式驱动网页交互.这使我能够编写相当广泛的用户测试,其中驱动表单和输入并测量其结果.
查看Firefox上的Selenium IDE(如上所述).它允许您在浏览器中记录测试并使用IDE本身或远程控制应用程序进行播放.
Perl Mechanize可以很好地解决这个问题.
HTTPS和一些身份验证问题有时很棘手.我将在未来发布有关这些问题的几个问题.
我在以前的生活中做了大量的期望工作,并且一直认为Don Libes的Expect书是我见过的最好写和最具启发性的技术书籍之一.
放下我会说Perl的WWW :: Mechanize库就是你想要的.我在上面注意到你找不到文档.它有很好的文档!在search.cpan.org上查找模块的发行版,看看它包含了什么.有一个FAQ,Cookbook和例子等等.另外,我一直能够在网上获得帮助.如果您无法在此处获取,请尝试使用use.perl.org或perlmonks.org.WWW :: Mechanize的作者Andy Lester 出现在Stack Overflow上.(他也是一个友好而乐于助人的人.)
我相信WWW :: Mechanize还有一个类似于Expect的autoexpect程序的程序:你设置一个代理进程来运行这个程序作为服务器,将浏览器作为代理指向它,执行你想要自动化的动作,然后代理程序为您提供WWW :: Mechanize程序,供您用作项目的基础.(如果它像autoexpect一样工作,你肯定会想从那里进行修改.)
如上所述,WWW :: Mechanize 是一个可编程的浏览器(更确切地说,它是一个Web客户端或http客户端).我最后一次看,甚至还在进行中,以支持JavaScript.