2009-11-17 6 views
8

Je souhaite effectuer des tests d'intégration complets pour une application Web. Je veux tester beaucoup de choses comme AJAX, le positionnement et la présence de certaines phrases et des éléments HTML en utilisant plusieurs navigateurs. Je cherche un outil pour faire un tel test automatisé.Test d'intégration pour une application Web

D'autre part; C'est la première fois que j'utilise les tests d'intégration. Existe-t-il des recommandations spécifiques lors de ces tests? Un tutoriel aussi?

(Comme une note:. Mon code back-end est fait en utilisant Perl, Python et Django)

Merci!

Répondre

11

Si vous avez besoin de faire des tests complets, y compris l'exploitation des fonctionnalités du navigateur comme AJAX, alors je recommanderais Selenium. Selenium lance un navigateur et le contrôle pour exécuter les tests. Il supporte toutes les principales platforms and browsers. Le sélénium lui-même est implémenté en Java mais ce n'est pas vraiment un problème s'il est utilisé pour tester une application web via son interface utilisateur.

Les tests sélénium sont une séquence de commandes dans un tableau HTML, les commandes prises en charge sont bien documented. Il y a aussi un IDE implémenté comme un plugin Firefox qui peut être utilisé pour enregistrer et exécuter des tests. Cependant, les scripts de test créés dans l'EDI peuvent être utilisés pour générer des tests sur n'importe lequel des navigateurs pris en charge.

+0

On dirait qu'il ne supporte que FF. Tout bon tutoriel pour l'utiliser? – khelll

+0

Selenium prend en charge plusieurs navigateurs pour exécuter des tests, voir http://seleniumhq.org/about/platforms.html#browsers. C'est seulement l'enregistrement des tests (en utilisant Selenium IDE) qui est FF seulement. – codeape

+0

Non, il prend également en charge IE 7 et 8 et Safari. Personnellement, je l'ai seulement utilisé avec FF et IE. Il y a une bonne documentation sur le site, c'est un outil très bien documenté. –

1

Je recommande également le sélénium. Il a eu un plugin Firefox vraiment sympa, que vous pouvez utiliser pour créer vos tests d'intégration.

2

Selenium est un très bon outil pour automatiser les tests du navigateur

Puisque vous avez mentionné Ruby dans vos balises, je vous recommande également Webrat qui est une solution de test agréable dans le navigateur en Ruby.

+2

Webrat ne fonctionne pas avec JavaScript. – brainfck

4

Vous pouvez également contrôler le sélénium en utilisant la liaison python de Selenium-RC. Par exemple:

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() 
11

Selenium est un bon chemin à parcourir. Pour l'utiliser avec Perl, utilisez le module CPAN Test::WWW::Selenium.

Voici one example de son 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; 

Et voici quelques liens supplémentaires qui peut-être utile:

/I3az/

2

Voici une autre option, tous écrits en Python et les navigateurs croisées pour les tests en cours d'exécution et l'enregistrement: Windmill

6

En this article, Noah cadeau fait un bon travail présentant trois principales alternatives pour les tests d'intégration d'applications web : Moulin à vent, sélénium et sergé. Twill ne fait pas Javascript, ce qui laisse Selenium et Windmill comme principales possibilités; Cadeaux montre assez sur ce que l'utilisation de chacun d'eux signifie, de sorte que vous pouvez choisir. Une chose que Don ne mentionne pas, c'est que le Selenium est beaucoup plus populaire - ce n'est pas évident si vous faites juste une recherche sur le web pour chacun des termes windmill et selenium, mais c'est parce que chacun obtient (différents nombres de; . [windmill javascript] donne 325k hits, [selenium javascript] donne 1.2M hits, et ce ratio est plus représentatif. Quoi qu'il en soit, si vous les trouvez à la fois assez faciles et puissants pour vos besoins, si vous avez du mal à en choisir un, alors choisir du sélénium (c'est-à-dire aller avec la foule) peut avoir des avantages. par exemple sur SO pour répondre aux questions ;-) en choisissant l'alternative un peu moins populaire.

0

Un autre excellent outil pour les tests de navigateur qui est construit en tant que bibliothèque Ruby et utilise Ruby pour les scripts est Watir. Il y a aussi un plugin Firefox pour watir comme le sélénium appelé
Firewatir hébergé sur google code

1

TestPlan est un excellent outil pour usage général test web. Il fournit à la fois un backend sans écran et du sélénium. Le backend Selenium devrait prendre soin de tester dans tous les navigateurs populaires. Il a également son propre langage de script qui le rend rapide à écrire et à tester, bien que Java puisse également être utilisé. Par exemple, cela va à une page et soumet un formulaire de recherche et vérifie qu'il a trouvé le bon résultat.

GotoURL http://myapp.com/ 

SubmitForm with 
    %Params:search% some term 
end 

Check //div[@id='results'][contains(text(),'some term'] 
Questions connexes