Exemple de test selenium avec une popup

Rédigé par Dominique Mereaux le 26 mai 2012

Il est possible de se créer un compte viadeo via google mail. Une popup s'ouvre alors. Nous allons faire un enregistrement de cette procédure et voir pourquoi on ne peut l'utiliser tel quel.




Si on sélectionne google la popup suivante apparait :



Après enregistrement de cette procédure on obtient :





Si je rejoue le test tel quel il ne fonctionnera pas. En effet dans les commandes waitForPopUp et selectWindow l'identifiant est variable (généré automatiquement) et donc aucune chance pour que selenium trouve l'élément suivant.


Que faire?


Si on regarde en détail la commande waitForPopUp qui permet de se synchroniser sur l'apparition du popup on apprend qu'à la place de l'identifiant javascript de la fenêtre on peut utiliser null et dans ce cas c'est le premier popup qui est pris en compte


Pour la deuxième commande selectWindow qui permet de rendre la fenêtre active pour selenium, on apprend que l'on peut également sélectionner la fenêtre en utilisant le nom de la fenêtre ici "Comptes Google" .


Finalement le code devient:

Il n'est pas toujours possible de réutiliser tel quel un code enregistré.

Classé dans : Automatisation - Mots clés : selenium - aucun commentaire

Faire le lien entre testlink et mantis

Rédigé par Dominique Mereaux le 27 avril 2012

Il est possible de faire le lien entre Testlink et Mantis. Vous pourrez ainsi enrichir vos rapports de test.


Côté Mantis : Modifier le fichier config_inc.php :
Création d’un compte anonyme

# --- anonymous login -----------
# Allow anonymous login
$g_allow_anonymous_login = ON;
$g_anonymous_account = 'dummy';
Remplacer dummy par un compte que vous aurez créé avec accès en lecture à tous les projets.

Ce compte permettra de se connecter comme invité à Mantis et limite ainsi les accès.
Configurer l’interface Mantis côté testlink :

Wamp → repertoire htdocs/Testlink/cfg : Modifier le fichier mantis.cfg.php:
/** The DB host to use when connecting to the mantis db */
define('BUG_TRACK_DB_HOST', 'localhost');
/** The name of the database that contains the mantis tables */
define('BUG_TRACK_DB_NAME', 'bugtracker');
/** The DB type being used by mantis */
define('BUG_TRACK_DB_USER', root');
/** The DB password to use for connecting to the mantis db */
define('BUG_TRACK_DB_PASS', 'root');
/** link to the bugtracking system, for viewing bugs */
define('BUG_TRACK_HREF', "http://localhost:8888/mantis/view.php?id=");
/** link to the bugtracking system, for entering new bugs */
define('BUG_TRACK_ENTER_BUG_HREF',"http://localhost:8888/mantis/");

Intégrer Mantis

Copier les lignes suivantes de config.inc.php vers custom_config.inc.php :
$g_interface_bugs = 'NO';
→ $g_interface_bugs = 'MANTIS';

Exécution d’un test :



→ Sous Mantis créer une anomalie et utiliser l’identifiant de l’anomalie pour faire le lien :



Le lien est ajouté :


Si vous cliquez sur l'anomalie vous êtes automatiquement redirigé vers Mantis.

Classé dans : Outil de test - Mots clés : aucun - 4 commentaires

Selenium : Identifier avec xPath

Rédigé par Dominique Mereaux le 24 avril 2012

Le moyen le plus simple et le plus rapide de retrouver un élément d'une page web (pour cliquer dessus par exemple) est l'id. Malheureusement l'id n'est pas toujours présent. Dans ce cas on peut également utiliser les requêtes xPath (navigation dans un document XML) pour retrouver un élément.


Soit la page web suivante:


Je voudrais accéder au deuxième lien "détail" pour le cliquer.


L'IDE de selenium nous propose plusieurs possibilités comme par exemple par position absolue: //tr[3]/td[5]/a

soit:
  1. tr[3] Accéder à la troisième ligne
  2. td[5] Accéder à la cinquième cellule
  3. a Accéder à l'élément lien



Le test selenium sera à réécrire si par exemple un autre tableau est ajouté en début de cette page web.

De façon relative: //table[@id='maTable']/tbody/tr[3]/td[5]/a
  1. table[@id='maTable'] Accéder au tableau identifié par l'id "maTable"
  2. tr[3] Accéder à la troisième ligne
  3. td[5] Accéder à la cinquième cellule
  4. a Accéder à l'élément lien


Intéressant pour tester des tableaux générés dynamiquement.



Recherche sur un attribut : xpath=(//a[@name='lien'])[2]
  • Le deuxième lien ayant pour attribut nom = 'lien'.


Pour plus d'informations sur la construction de ce type de requêtes :
w3schools xpath

Classé dans : Automatisation, Outil de test - Mots clés : selenium - aucun commentaire

Une API Java pour s'interfacer avec testlink

Rédigé par Dominique Mereaux le 21 avril 2012

Si vos tests automatiques sont codés en java vous pouvez à l'aide d'une API reporter les résultats correspondants dans votre plan de test sous testlink.


Cette API se trouve à l'adresse suivante : api testlink

Elle permet de :

  • Création de projet
  • Création de test suite
  • Création de cas de test
  • Ajout de cas de test à un plan de test
  • Rapport de résultat


Dans cet article je vais surtout m'intéresser à la dernière fonctionnalité partant du principe que :

  • On conçoit les tests dans TestLink
  • On écrit le code automatique correspondant
  • On lance les tests et les résultats sont stockés automatiquement

Pour commencer il faudra importer:

import testlink.api.java.client.TestLinkAPIClient;
import testlink.api.java.client.TestLinkAPIException;
import testlink.api.java.client.TestLinkAPIConst;

Puis créer une instance de l'API :

TestLinkAPIClient apiClient = new
TestLinkAPIClient("26f77ac152f2622f097a894ada8ec368",
"http://localhost:8888/testlink/lib/api/xmlrpc.php");

Voici la signature de la méthode :
TestLinkAPIClient(devKey, url)
l'Url pointe sur l'interface xml-rpc de testlink et permet la connection.

devKey: cette clef est lié à un utilisateur de testlink. Il faut dans un premier temps autoriser les tests automatiques:

Puis vous pouvez récupérer la devkey sur la page affichant vos paramètres:


Assigner le résultat dans Testlink :

apiClient.reportTestCaseResult("FirstProject","TP1","UN-1","Build 2",
"essai", TestLinkAPIConst.TEST_BLOCKED);
Dans l'ordre on trouve :
  • Le nom du projet
  • L'identifiant du plan de test
  • L'identifiant du cas de test (il apparait sur la page) ou le nom du test
  • L'identifiant du build
  • un texte pour commenter l'exécution
  • Le résultat du test

Testlink + l'api java vous permettront d'avoir un outil de gestion de test complet. Il est à noter que vous pouvez également interfacer testlink avec différents outils de gestion d'anomalies. De même les scripts "Selenium" qui permettent d'automatiser les tests d'interfaces web, peuvent être écrits en java. Vous pourrez donc intégrer également les résultats de tests automatiques d'interface WEB.

Classé dans : Automatisation, Outil de test - Mots clés : aucun - aucun commentaire

Présentation rapide d'outil de test de charge : The Grinder

Rédigé par Dominique Mereaux le 12 février 2012

The Grinder est un outil open source qui permet de réaliser des tests de charges pour du WEB.
Il s'installe facilement (zip) et se lance tout aussi facilement.


Les processus « Worker »

  • Interprètent les scripts de test et les exécutent. Chaque processus peut exécuter plusieurs tests en parallèle en utilisant des threads « worker «.

Les processus « Agent »

  • Processus qui démarrent et arrêtent les processus de type « worker » tels que spécifiés.
  • Maintient un cache local des scripts de tests distribués à partir de la console.

La Console

  • Coordonnent les autres processus.
  • Collecte et affiche les statisques.
  • Fournit un service d’édition et de distribution des scripts.

Lancer la console :

java –cp ./lib/grinder.jar net.grinder.Console •lancer les agents sur les PC «

injecteurs » :

java -cp ./lib/grinder.jar net.grinder.Grinder ./examples/grinder.properties


La console permet de gérer les scripts et en particulier de modifier le grinder.properties qui définit le paramétrage comme par exemple le nombre de processus en parallèle, le script qui va être exécuté etc.

Un ensemble d'icônes permet de transmettre les scripts aux processus, de les lancer, démarrer les mesures etc.


Ci dessous un exemple de résultats collectés pendant les tests


Les scripts sont écrits en python. Dans le package téléchargé on trouve pléthore de scripts permettant des injections avec diverses configurations.


Plus d'infos : http://sourceforge.net/projects/grinder/

Classé dans : Outil de test - Mots clés : Charge - aucun commentaire

Fil Rss des articles

page 1 sur 2suivante

Catégories

Archives

Mots clés

Derniers articles

Derniers commentaires