Un framework d’automatisation de tests permet entre autre :
– De capitaliser l’expérience.
– D’améliorer la productivité.
Nous allons voir ici comment construire sont propre framework pour QTP. Nous aborderons deux points principaux :
– Ajout de fonction (librairie)
– Ajout de fonctionnalités aux objets
Etape préliminaire :
Créer un fichier .vbs qui va accueillir le code du framework (par exemple : FrameWork_TestLogiciel.vbs)
Dans QTP, aller dans « File », « New », « Function Librairy »
Ajouter une fonction dans le framework :
Pour l’exemple, on reprendra le code d’un ancien billet relatif à la gestion des dates de manière glissante.
On va donc ajouter le code ci-dessous dans notre fichier « FrameWork_TestLogiciel.vbs ».
'Fonction de gestion d'une date glissante 'Retourne une Date Sub Abstraction_De_Date (ByVal Jours) Abstraction_De_Date=formatdatetime(dateadd("d",Jours ,date()) ,vbShortDate) End Sub |
On enregistre (au cas ou …)
Tester la nouvelle fonction de notre framework :
Dans QTP, Créer un nouveau test, puis lui associer ce fichier de ressources : Dans QTP, aller dans le menu : « File » puis sélectionner « Settings … », aller dans l’onglet : « Ressources » et ajouter le fichier via le bouton « + ». Valider.
Ajouter le code suivant au test :
'Essai d'appel d'une fonction du framework Ma_Date_Transforme=Abstraction_De_Date(2) 'On souhaite ici obtenir la date J+2 Print Ma_Date_Transforme 'On affiche dans la console la valeur pour vérifier que cela fonctionne correctement |
Ajouter une fonctionnalité à un objet :
Ici on prendra une WebTable et on va lui ajouter la possibilité de retrouver la propriété BgColor d’une cellule.
Rouvrir notre fichier « FrameWork_TestLogiciel.vbs »
Y ajouter le code ci-dessous :
'---------' 'WebTable '---------' 'Couleur d'une cellule d'un tableau Public Function BgColor_Cellule (ByRef ObjTableau, ByVal IntLigne, ByVal IntColonne) 'Exemple d'utilisation set Ligne_De_La_Table=ObjTableau.Object.all.tags("tr") set Cellule_De_La_Ligne_1=Ligne_De_La_Table(IntLigne).all.tags("td") BgColor_Cellule=Cellule_De_La_Ligne_1(IntColonne).bgColor End Function RegisterUserFunc "WebTable", "BgColor", "BgColor_Cellule", True |
Tester la nouvelle fonction de notre framework :
Dans QTP, Créer un nouveaux test, puis lui associer ce fichier de ressources : Dans QTP, aller dans le menu : « File » puis sélectionner « Settings … », aller dans l’onglet : « Ressources » et ajouter le fichier via le bouton « + ». Valider.
Ajouter le code suivant au test :
'Essai d'appel d'une fonction du framework pour une Webtable BgColor_De_Ma_Cellule_Ligne2_Cellule2=Browser("name:=.*).Page("title:=.*).WebTable("name:=.*").BgColor(2,2) Print BgColor_De_Ma_Cellule_Ligne2_Cellule2 'On affiche dans la console la valeur pour vérifier que cela fonctionne correctement |
Vous avez remarqué : lorsque vous avez saisi
...WebTable("name:=.*"). |
l’auto-complétion vous a proposé la nouvelle fonctionnalité « BgColor »! Il faut remercier :
RegisterUserFunc "WebTable", "BgColor", "BgColor_Cellule", True |
qui a ajouté cela. (pour plus d’informations à propos de cette fonctionnalité : dans QTP appuyer sur F1)
Voilà, il ne reste plus qu’à se lancer.