Web应用程序的集成测试

我想对Web应用程序进行完全集成测试。 我想测试很多东西,比如AJAX, 使用多个浏览器定位和存在某些短语和HTML元素。 我正在寻找一种工具来进行这种自动化测试。

另一方面; 这是我第一次使用集成测试。 进行此类测试时是否有任何具体建议? 还有任何教程吗?

(注意:我的后端代码是使用Perl,Python和Django完成的。)

谢谢!

如果您需要进行全面测试,包括利用AJAX等浏览器function,那么我会推荐Selenium 。 Selenium启动浏览器并控制它以运行测试。

它支持所有主要平台和浏览器 。 Selenium本身是用Java实现的,但如果它用于通过其用户界面测试Web应用程序,那么这并不是真正的问题。

Selenium测试是HTML表中的一系列命令,支持的命令有详细记录 。 还有一个IDE实现为Firefox插件,可用于记录和运行测试。 但是,在IDE中创建的测试脚本可用于针对任何支持的浏览器进行测试。

Selenium是一种很好的方式。 要将它与Perl一起使用,请使用Test::WWW::Selenium CPAN模块。

以下是其pod中的一个示例 :

 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; 

以下是一些可能有用的其他链接:

  • Selenium + Perl维基
  • 使用Selenium自动化浏览器活动
  • 使用WWW :: Selenium测试或自动化Ajax网站

/ I3az /

在本文中 ,Noah Gift为Web应用程序集成测试提供了三个主要替代方案:Windmill,Selenium和Twill。 Twill不做Javascript,所以让Selenium和Windmill成为您的主要可能性; 礼物充分展示了使用它们的含义,因此您可以选择。

礼物没有提到的一件事是Selenium更受欢迎 – 如果你只是网上搜索风车和selenium这两个词,那就不明显了,但那是因为每个人得到(不同数量的;-)假命中。 [windmill javascript]给出了325k的点击量,[selenium javascript]给出了1.2M的点击率,这个比例更具代表性。 无论如何,重点是,如果你发现它们同样容易和强大,足以满足你的需求,那么你很难选择一个,然后选择selenium(即,与人群一起)可能有优势(更多专家,例如,在SO上回答问题;-)选择一些不那么受欢迎的选择。

您还可以使用Selenium-RC的python绑定来控制selenium。 例如:

 from selenium import selenium selenium = selenium("localhost", 4444, "*firefox", "http://www.google.com/") selenium.start() selenium.open("/") # open google.com selenium.type("q", "selenium rc") selenium.click("btnG") selenium.wait_for_page_to_load("30000") selenium.failUnless(selenium.is_text_present("Results * for selenium rc")) selenium.stop() 

Selenium是一个非常好的自动化浏览器测试工具

既然您在标签中提到了Ruby,我也推荐使用Webrat ,它是Ruby中一个不错的浏览器内测试解决方案。

这是另一个选项,全部用Python和跨浏览器编写,用于运行和录制测试: Windmill

我也推荐Selenium。 它有一个非常好的Firefox插件,您可以用它来创建集成测试。

TestPlan是通用Web测试的绝佳工具。 它提供了无显示的后端和Selenium。 Selenium后端应该在所有流行的浏览器中进行测试。 它也有自己的脚本语言,可以快速编写和测试,但也可以使用Java。

例如,这将转到页面并提交搜索表单并检查它是否找到了正确的结果。

 GotoURL http://myapp.com/ SubmitForm with %Params:search% some term end Check //div[@id='results'][contains(text(),'some term'] 

另一个用于浏览器测试的好工具是构建为Ruby库并使用Ruby进行脚本编写的Watir 。 还有一个用于watir的firefox插件就像selenium一样
Firewatir托管在谷歌代码上