Web应用的集成测试

10 投票
9 回答
6024 浏览
提问于 2025-04-15 16:05

我想对一个网页应用进行全面的集成测试。我想测试很多东西,比如AJAX、某些短语和HTML元素的位置和存在情况,还想用几个不同的浏览器来测试。我在寻找一个可以进行这种自动化测试的工具。

另一方面,这是我第一次进行集成测试。在进行这种测试时,有没有什么特别的建议?有没有相关的教程呢?

(顺便说一下:我的后台代码是用Perl、Python和Django写的。)

谢谢!

9 个回答

6

这篇文章中,Noah Gift很好地介绍了三种主要的网页应用集成测试工具:Windmill、Selenium和Twill。Twill不支持Javascript,所以主要的选择就剩下Selenium和Windmill了。Gift对这两者的使用做了足够的说明,帮助你做出选择。

不过,Gift没有提到的是,Selenium的受欢迎程度要高得多。如果你只是简单地在网上搜索“windmill”和“selenium”,可能看不出来这一点,因为每个词的搜索结果数量不同,可能会出现一些误导性的结果。[windmill javascript]的搜索结果有32.5万,而[selenium javascript]的搜索结果有120万,这个比例更能反映实际情况。总之,如果你觉得这两者在使用上都差不多、功能也足够强大,以至于难以选择的话,选择Selenium(也就是跟大多数人走)可能会有一些好处,比如周围有更多的专家可以帮助你解答问题,这比选择相对不那么受欢迎的工具要好。

12

Selenium 是一个很不错的工具。如果你想用 Perl 来使用它,可以使用 Test::WWW::Selenium 这个 CPAN 模块。

这里有一个来自它的文档的 示例

use WWW::Selenium;

my $sel = WWW::Selenium->new( host => "localhost", 
                              port => 4444, 
                              browser => "*iexplore", 
                              browser_url => "http://www.google.com",
                            );

$sel->start;
$sel->open("http://www.google.com");
$sel->type("q", "hello world");
$sel->click("btnG");
$sel->wait_for_page_to_load(5000);
print $sel->get_title;
$sel->stop;

还有一些额外的链接,可能会对你有帮助:

/I3az/

12

如果你需要进行全面的测试,包括利用浏览器的一些功能,比如AJAX,我推荐你使用Selenium。Selenium可以打开一个浏览器,并控制它来运行测试。

它支持所有主要的平台和浏览器。虽然Selenium本身是用Java写的,但这对通过用户界面测试网页应用并没有太大影响。

Selenium的测试是由一系列命令组成,这些命令以HTML表格的形式呈现,支持的命令都有很好的文档说明。另外,还有一个IDE,这是一个Firefox的插件,可以用来录制和运行测试。不过,在IDE中创建的测试脚本可以用来在任何支持的浏览器上进行测试。

撰写回答