Mar 24

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.

Leave a Reply

You must be logged in to post a comment.

preload preload preload