Rubrique précédente: Didacticiel 8 : test d'un service WebRubrique suivante: Didacticiel 10 : simulation d'un test rapide


Didacticiel 9 : examen et test d'une base de données

Dans ce didacticiel, vous examinez et testez une table de base de données qui fait partie de l'application Web dans le didacticiel 5.

Vous utilisez l'étape SQL Database Execution (JDBC) (Exécution d'une base de données SQL JDBC) pour interagir avec une base de données dans un scénario de test et pour tester la réponse à l'aide d'une assertion. Vous examinez la table Users (Utilisateurs) à partir d'une base de données Derby qui fait partie de l'application.

Tâches de didacticiel

Ce didacticiel vous permet de :

Conditions préalables

Etape 1 : création d'un scénario de test

Procédez comme suit:

  1. Dans le volet Project (Projet), cliquez avec le bouton droit de la souris sur le dossier Tests et sélectionnez Create New Test Case (Créer un scénario de test).
  2. Définissez le nom de fichier sur Didacticiel 9.
  3. Cliquez sur Save (Enregistrer).

Etape 2 : ajout de propriétés de base de données à la configuration

Stockez les propriétés nécessaires à la connexion à la base de données dans la configuration. Cette pratique DevTest standard est recommandée pour augmenter la portabilité des scénarios de test.

Procédez comme suit:

  1. Si project.config n'est pas la configuration active, cliquez avec le bouton droit de la souris sur project.config dans le volet Project (Projet) et sélectionnez Make Active (Activer).
  2. Ouvrez la configuration project.config.
  3. Ajoutez les propriétés suivantes :
    DBDriver

    org.apache.derby.jdbc.ClientDriver

    DBConnect

    jdbc:derby://localhost:1529/lisa-demo-server.db

    DBUserID

    sa

    DBPwd

    sa

    Capture d'écran de l'éditeur de propriétés pour le didacticiel 9

  4. Cliquez sur Save (Enregistrer).

Etape 3 : ajout d'une étape de test SQL Database Execution (JDBC) (Exécution d'une base de données SQL JDBC)

L'étape de test SQL Database Execution (JDBC) (Exécution d'une base de données SQL JDBC) vous permet de vous connecter à une base de données à l'aide de JDBC et d'effectuer des requêtes SQL sur la base de données.

Procédez comme suit:

  1. Cliquez sur l'onglet Didacticiel 9.
  2. Cliquez sur LISA--icon_image_whiteplussignbluecircle Add Step (Ajouter une étape).
  3. Sélectionnez Other Transactions (Autres transactions), puis SQL Database Execution (JDBC).

    JDBC est ajouté à l'éditeur de modèles.

  4. Pour ouvrir l'éditeur d'étapes, double-cliquez sur l'étape JDBC.

    Capture d'écran de l'éditeur JDBC Step Editor (Editeur d'étapes JDBC) pour le didacticiel 9

Etape 4 : connexion à la base de données

Pour entrer les informations de connexion, utilisez les propriétés que vous avez ajoutées à la configuration project.config.

Procédez comme suit:

  1. Entrez les valeurs suivantes dans les zones Connection Info (Informations sur la connexion) et Execution Info (Informations sur l'exécution) de l'éditeur d'étape. Remarquez que lorsque vous entrez le mot de passe, la valeur est masquée.
    JDBC Driver (Pilote JDBC)

    {{DBDriver}}

    Connect String (Chaîne de connexion)

    {{DBConnect}}

    User ID (ID de l'utilisateur)

    {{DBUserID}}

    Password (Mot de passe)

    {{DBPwd}}

    Capture d'écran des zones Connection Info (Informations sur la connexion) et Execution Info (Informations sur l'exécution) de l'éditeur d'étapes pour le didacticiel 9

  2. Cliquez sur Test Connection (Tester la connexion) en bas de l'éditeur d'étapes.

    Un message indique que la connexion est valide.

    Capture d'écran du message de l'éditeur JDBC Step Editor (Editeur d'étapes JDBC) The connection attempt was successful (Connexion établie) pour le didacticiel 9

  3. Cliquez sur OK (Redéployer/déployer).

Etape 5 : exécution d'une requête SQL

Spécifiez et exécutez une instruction SQL qui récupère les données de la table Users (Utilisateurs).

Procédez comme suit:

  1. Dans le volet SQL Statement (Instruction SQL), entrez l'instruction suivante :
    SELECT LNAME, LOGIN FROM Users
    

    Volet SQL Statement (Instruction SQL) pour le didacticiel 9

  2. Cliquez sur Test/Execute SQL (Tester/exécuter l'expression SQL) en bas de l'éditeur d'étapes.

    Un message confirme la validité de la requête et affiche le nombre de lignes renvoyées.

    Capture d'écran du message de l'éditeur JDBC Step Editor (Editeur d'étapes JDBC) sur les résultats Result Set (Ensemble de résultats)

  3. Cliquez sur OK.

    L'onglet Result Set (Ensemble de résultats) est affiché.

    Capture d'écran de l'onglet JDBC Result Set (Ensemble de résultats JDBC) pour le didacticiel 9

Etape 6 : ajout d'une assertion

Ajoutez une assertion pour déterminer la présence d'un nom dans l'ensemble de résultats.

Procédez comme suit:

  1. Dans l'onglet Result Set (Ensemble de résultats), sélectionnez une cellule de la colonne LNAME.
  2. Cliquez sur Icône, page bleue avec une flèche vers une page blanche Generate Assertion for the Value of a Cell (Générer une assertion pour la valeur d'une cellule).

    La boîte de dialogue Generate JDBC Result Set Value Assertion (Générer une assertion de valeur d'ensemble de résultats JDBC) s'ouvre.

    Boîte de dialogue Generate JDBC Result Set Value Assertion (Générer une assertion de valeur d'ensemble de résultats JDBC) pour le didacticiel 9

  3. Dans la liste déroulante, sélectionnez l'option Fail the Test (Faire échouer le test).

    Si le nom que vous avez sélectionné est introuvable, le test échoue.

    Capture d'écran de la boîte de dialogue Generate JDBC Result Set Value Assertion (Générer une assertion de valeur d'ensemble de résultats JDBC) pour le didacticiel 9

  4. Cliquez sur OK (Redéployer/déployer).
  5. Cliquez sur Save (Enregistrer).

Etape 7 : exécution du scénario de test

Procédez comme suit:

  1. A partir de la barre d'outils, cliquez sur Icône de roue dentée bleue Start Interactive Test Run (Démarrer l'exécution d'un test interactif).
  2. Cliquez sur LISA--icon_image_rightarrowtolineingreencircle Execute Next Step (Exécuter l'étape suivante).

    Le test est exécuté. L'ensemble de résultats est affiché dans l'onglet Response (Réponse).

    Capture d'écran de l'onglet ITR Results (Résultats de l'ITR) pour le didacticiel 9

  3. Rétractez la barre d'état de l'ITR.

Etape 8 : modification de l'assertion

Modifiez l'assertion de sorte à faire échouer le test.

Procédez comme suit:

  1. Dans l'éditeur de modèles, cliquez sur l'étape de test JDBC Select Users (Sélection d'utilisateurs JDBC).
  2. Ouvrez l'onglet Assertions dans l'arborescence Element.

    Capture d'écran de l'onglet Assertions pour l'étape JDBC Select User (Sélection d'utilisateurs JDBC) pour le didacticiel 9

  3. Double-cliquez sur l'assertion que vous avez créée antérieurement.

    L'éditeur d'assertions est ouvert. La partie inférieure indique que l'assertion vérifie la première colonne de l'ensemble de résultats pour la valeur spécifiée.

  4. Remplacez la valeur du champ Regular Expression (Expression régulière) par Johns.

    Capture d'écran du volet ResultSet Contents (Contenu de l'ensemble de résultats) pour le didacticiel 9

  5. Démarrez une nouvelle exécution d'un test interactif et exécutez le scénario de test à nouveau.

    Le test échoue.

  6. Rétractez la barre d'état de l'ITR.

Etape 9 : ajout d'un filtre

Ajoutez un filtre de base de données pour capturer la valeur située dans la première colonne et la quatrième ligne de l'ensemble de résultats. La valeur est stockée dans une propriété.

Procédez comme suit:

  1. Dans l'éditeur de modèles, sélectionnez l'étape de test JDBC Select Users (Sélection d'utilisateurs JDBC).
  2. Ouvrez l'onglet Filters (Filtres) dans l'arborescence Element.
  3. Cliquez sur Icône, signe plus Add (Ajouter).
  4. A partir du sous-menu Database Filters (Filtres de base de données), sélectionnez Extract Value from JDBC Result Set (Extraire la valeur de l'ensemble de résultats JDBC).

    L'éditeur de filtres s'ouvre.

  5. Dans le champ Column (Colonne), entrez 1. Vous pouvez également entrer le nom de colonne réel, LNAME.
  6. Dans le champ Row (Ligne), entrez 3.

    Ce champ est en base 0. Par conséquent, la valeur 3 correspond à la quatrième ligne.

  7. Dans le champ Property (Propriété), saisissez DBProperty.

    Capture d'écran de la boîte de dialogue Parse JDBC Result Set for Value (Rechercher une valeur dans l'ensemble des résultats JDBC) pour le didacticiel 9

  8. Cliquez sur Save (Enregistrer).

Etape 10 : test du filtre et de l'assertion

Procédez comme suit:

  1. Démarrez une nouvelle exécution d'un test interactif et exécutez le scénario de test à nouveau.

    Le test échoue, car Johns est introuvable dans l'ensemble de résultats.

  2. Cliquez sur l'onglet Test Events (Evénements de test).
  3. Cliquez sur l'événement Property Set (Propriété définie).

    Remarquez que DBProperty a été défini sur la valeur spécifiée par le filtre.

  4. Cliquez sur l'événement Assertion fired (Assertion déclenchée).

    La zone Long Info Field (Informations détaillées) indique que l'assertion s'est déclenchée, car la première colonne de l'ensemble de résultats ne contient pas la valeur Johns.

    Capture d'écran du champ Long Info (Informations détaillées) de l'ITR pour le didacticiel 9

  5. Cliquez sur l'onglet Properties (Propriétés).
  6. Localisez et vérifiez la ligne DBProperty.

    Capture d'écran des résultats ITR Results (Résultats de l'ITR) pour le didacticiel 9

Didacticiel 9 : résumé

Dans ce didacticiel, vous avez créé un scénario de test pour interroger une base de données. Vous avez utilisé la table Users (Utilisateurs) de la base de données Apache Derby qui accompagne les applications sur le serveur de démonstration. Vous avez appris à :