是否有相当于Don Libes的* expect *工具用于脚本与网页的交互?

时间:2009-03-04 04:04:00

标签: testing scripting interactive expect

在交互式控制台应用程序的旧时代,Don Libes创建了一个名为Expect的工具,它使您能够编写与这些应用程序交互的Tcl脚本,就像用户一样。 Expect有两个巨大的好处:

  • 有可能编写交互式脚本,否则必须手动重复这些交互。一个典型的例子是拨号上网地狱(从PPP之前的几天开始)。

  • 可以编写脚本来以编程方式测试自己的交互式应用程序,作为回归套件的一部分。

今天,大多数交互式应用程序都在Web上,而不是在控制台上。因此我的问题是:是否有任何工具能够以编程方式与网页和Web表单进行交互,就像Expect提供了以编程方式与控制台应用程序交互的能力一样?

(我最接近的是Chickenfoot。)

5 个答案:

答案 0 :(得分:8)

您可能正在寻找Selenium

答案 1 :(得分:5)

我已将Selenium RC与Python结合使用,以编程方式驱动网页交互。这使我能够编写相当广泛的用户测试,其中驱动表单和输入并测量其结果。

查看Firefox上的Selenium IDE(如上所述)。它允许您在浏览器中记录测试并使用IDE本身或远程控制应用程序播放它们。

答案 2 :(得分:5)

Perl Mechanize可以很好地解决这个问题。

HTTPS和一些身份验证问题有时很棘手。我将在未来发布关于这些问题的几个问题。

答案 3 :(得分:5)

我在以前的生活中做了大量的期待工作,并且一直认为Don Libes的Expect书是我见过的最好写和最具启发性的技术书籍之一。

放手我会说Perl的WWW :: Mechanize库就是你想要的。我在上面注意到你找不到文档。它有很好的文档!在search.cpan.org上查找模块的发行版,看看它包含了什么。有一个FAQ,Cookbook和例子等等。另外,我一直能够在网上获得帮助。如果您无法在此处获取,请尝试使用use.perl.org或perlmonks.org。 WWW :: Mechanize的作者Andy Lester是present on Stack Overflow。 (他也是一个友好而乐于助人的人。)

我相信WWW :: Mechanize还有一个类似于Expect的autoexpect程序的程序:你设置一个代理进程来运行这个程序作为服务器,将浏览器指向它作为代理,执行你想要自动执行的操作,然后代理程序为您提供WWW :: Mechanize程序,供您用作项目的基础。 (如果它像autoexpect一样工作,你肯定会想从那里进行修改。)

如上所述,WWW :: Mechanize 一个恰好可编程的浏览器(更准确地说,它是一个Web客户端或http客户端)。我最后一次看,甚至还在进行中,以支持JavaScript。

答案 4 :(得分:1)

除了Selenium之外,如果你正在做Ruby / Rails,那就是Webrat