2 votes

Cadres et outils pour les tests de l'interface utilisateur des applications web basées sur ExtJS

J'aimerais tester une application Web qui a été radicalement remaniée pour utiliser ExtJS dans son interface utilisateur.

J'ai fait quelques recherches en ligne mais je n'ai pas trouvé de recommandation pour un bon cadre de travail permettant de gérer cela correctement.

Jusqu'à présent, nous avons utilisé WatiN pour créer des tests.

Notez que nous ne sommes pas propriétaires du code de l'application web.

Quelles sont les meilleures options actuellement disponibles ?

5voto

mats Points 517

Vous devriez envisager d'utiliser Siesta, un outil de test unitaire et fonctionnel conçu pour vous aider à tester Ext JS et Sencha Touch (et il est également utilisé par Sencha en interne pour tester Ext JS lui-même). Comme Siesta en sait beaucoup sur Ext JS, vous pouvez écrire des tests expressifs en utilisant Component Query au lieu de CSS et obtenir des tests beaucoup plus robustes par rapport aux outils plus simples décrits dans d'autres réponses de ce fil. Voici un exemple de test script en JS simple :

t.chain(
    { click : ">>textfield[name=user]" },

    { type : "Mike[TAB]Password" },

    { click : ">>button[name=loginbutton]" }
);

AVERTISSEMENT : Je travaille pour la société qui l'a créé.

http://www.bryntum.com/products/siesta/

3voto

Jim Holmes Points 1640

Cherchez-vous à faire un test fonctionnel direct de votre page Web ou cherchez-vous à restreindre vos tests spécifiquement au JavaScript dans ExtJS ?

Si c'est le premier cas (fonctionnel au niveau de l'interface utilisateur), alors WatiN/Watir/Webdriver devrait vous convenir. (S'ils ne fonctionnent pas, j'aimerais avoir plus de détails sur les problèmes spécifiques que vous rencontrez).

Dans ce dernier cas, vous pourriez étudier Jasmine, qui offre de nombreuses possibilités intéressantes pour tester votre JavaScript au niveau de la couche UI.

(S'il s'agit de tests fonctionnels, vous pouvez également consulter le site Test Studio de Telerik pour l'automatisation fonctionnelle. Je suis l'évangéliste de cet outil, donc je suis un peu partial...)

2voto

Garrett Fogerlie Points 168

Vous pouvez consulter RIATest .

La version 5.0 prend entièrement en charge les tests ExtJS. Les widgets ExtJS UI sont des citoyens de première classe dans RIATest. Cela signifie que, contrairement à d'autres outils de test HTML, vous n'avez pas besoin d'écrire des tests qui manipulent les éléments HTML DOM. Les tests dans RIATest fonctionnent en termes de widgets ExtJS UI.

Exemples de RIATest scripts qui fonctionnent avec les widgets ExtJS :

Les personnes suivantes cliquent sur un bouton ExtJS avec l'étiquette "Page suivante" :

ExtButton("Next Page")=>click();

Et ce qui suit permet de glisser-déposer une ligne d'un arbre ExtJS à un autre :

ExtRow("Controller.js")=>dragAndDropTo(ExtTreePanel("#tree2")->ExtRow("Custom Ext JS"));

Et ceci réduit l'en-tête d'une boîte ExtJS :

ExtBox("Feeds")->ExtHeader("FeedsВ")->ExtCollapser()=>click();

(Tous les exemples de code ci-dessus proviennent de véritables scripts de test qui s'exécutent sur des exemples d'applications ExtJS).

RIATest sait aussi quand attendre automatiquement la fin de ExtJS AJAX, donc si votre interface utilisateur télécharge du contenu dynamique, les tests attendront automatiquement que les données soient reçues du serveur.

(Avertissement : je suis membre de l'équipe RIATest).

1voto

RVN Points 93

Sahi est un outil d'automatisation et de test que j'ai découvert récemment car je suis dans une recherche similaire à la vôtre.... Selenium n'a pas fonctionné pour moi (comme pour beaucoup d'autres sur le web... je n'ai rien trouvé pour le faire fonctionner... les ID dynamiques et autres particularités liées à Ext le perturbent apparemment)...

Jetez un coup d'œil à sahi, peut-être que cela vous sera utile... www.sahi.co.in (je n'ai aucune relation, je l'ai découvert récemment et l'ai trouvé utile).

0voto

hvgotcodes Points 55375

Vous voulez faire des tests fonctionnels. Sélénium est un bon choix. Il dispose d'API implémentées dans un grand nombre de langages (Java, Ruby, Python) et il utilise Webdriver sous les couvertures.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X