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
Framework de test : Robot Framework
Rédigé par Dominique Mereaux le 17 septembre 2011
- Offrir un langage de haut niveau pour des testeurs fonctionnels
- Possibilités d'écrire des tests de recette avant livraison du produit
- des mots-clefs de base correspondent à des actions unitaires (par exemple "entrer une chaine de caractères dans le champ de login", "entrer une chaine de caractère dans le champ password", "cliquer sur login" ...)
- On peut créer des mots-clefs à partir d'autre mots-clefs, par exemple un mot clef login correspond à la séquence "entrer une chaine de caractères dans le champ de login" + "entrer une chaine de caractère dans le champ password" + "cliquer sur login"
- Ecrire des tests de type "Behavior Test Driven"
- Ecrire des tests de type "Data Test Driven"
- Gestion de variable de test avec des valeurs par défaut
- Fourniture d'un rapport de test html (excellent)
- Possibilités de tagger les tests afin de fournir des résultats par tag
- Library d'action de base Selenium, AutoIt ...
- Possibilité de créer sa propre library
- Library de gestion système (création fichier, directory ....)
- Library dédié test (screenshot, step manuel ...)
- Découpage en test et test suite
- Possibilité d'arborescence pour classer les tests
- Possibilité d'associer des actions de début et fin de test (pré requis, post test)
- Format des tests : html, csv ou texte.
- L'éditeur de test n'est pas terrible voir buggé
- Pas de vrai gestion de test mais il y aurait une possibilité de le connecter à testlink.
Classé dans : Automatisation - Mots clés : robot framework - 1 commentaire
Selenium : Element-filters
Rédigé par Dominique Mereaux le 17 septembre 2011
<p class="clearfix"><span>
<input checked="checked" class="checkbox" id="celsius" name="unit" type="radio" value="celsius"/>
<label for="celsius">degrés Celsius (°C)</label>
</span></p>
<p class="clearfix"><span>
<input class="checkbox" id="fahrenheith" name="unit" type="radio" value="fahrenheith"/>
<label for="fahrenheith">degrés Fahrenheit (°F)</label>
</span>
Tel que on ne peut pas sélectionner l'élément en utilisant le nom (Name=unit), d'où l'intéret d'utiliser les element-filters qui vont permettre de raffiner la recherche :
<tr>
<td>click</td>
<td>link=Options</td>
<td></td>
</tr>
<tr>
<td>click</td>
<td>name=unit index=1</td>
<td></td>
</tr>
Ici on prendra le deuxième élément avec name=unit (index commence à 0).
Il existe deux types d'element-filter:
- index : que l'on vient de voir et
- Value : si l'élément possède une "value" on peut utiliser cette dernière pour préciser la recherche tel que dans l'exemple suivant :
Classé dans : Automatisation, Outil de test - Mots clés : selenium - aucun commentaire
Automatiser oui mais ...
Rédigé par Dominique Mereaux le 17 septembre 2011
Classé dans : Automatisation - Mots clés : aucun - aucun commentaire
Consigner vos résultats de test automatiquement avec Testlink
Rédigé par Dominique Mereaux le 17 juin 2011
mixed reportTCResult( struct $args, string $args["devKey"], int $args["testcaseid"], int $args["testplanid"], string $args["status"], int $args["buildid"], string $args["notes"], bool $args["guess"] )
Parameters:
struct | $args: | |
string | $args["devKey"]: | |
int | $args["testcaseid"]: | |
int | $args["testplanid"]: | |
string | $args["status"]: | - status is $validStatusList |
int | $args["buildid"]: | - optional |
string | $args["notes"]: | - optional |
bool | $args["guess"]: | - optional definiing whether to guess optinal params or require them explicitly default is true (guess by default) |
Return: | [status] => true/false of success [id] => result id or error code [message] => optional message for error message string |
Access: | public |
getTestCaseIDByName [line 1540]
|
Find a test case by its name
Searching is case sensitive. The test case will only be returned if there is a definite match. If possible also pass the string for the test suite name. No results will be returned if there are test cases with the same name that match the criteria provided. Parameters:struct | $args: | |
string | $args["devKey"]: | |
string | $args["testcasename"]: | |
string | $args["testsuitename"]: | - optional |
Access: | public |
getProjectTestPlans [line 1329]
|
Gets a list of test plans within a project
Parameters:struct | $args: | |
string | $args["devKey"]: | |
int | $args["testprojectid"]: |
Access: | public |
Classé dans : Automatisation - Mots clés : testlink - aucun commentaire
Fil Rss des articles de cette catégorie
précédentepage 2 sur 3suivante