Test BD et API
Avec Alithya GoTest, on peut effectuer des tests de base de données et des tests API.
Tests de bases de données (BD)
La bibliothèque de bases de données est déjà incluse et disponible dans Alithya GoTest.
Vous pouvez y accéder directement à partir de la section de rédaction de script d’Alithya GoTest, de la même façon que pour toute autre bibliothèque. Ajoutez une nouvelle ligne de script, puis tapez le mot Database pour afficher automatiquement la liste des options disponibles de cette bibliothèque.
Voici quelques exemples simples d’utilisation de cette bibliothèque pour se connecter à PostgreSQL, Oracle, DB2,SQL Server, MySQL, MariaDB et SAP HANA.
Pour les bases de données Kafka, il y a la bibliothèque KafkaLibrary
PostgreSQL
Mot clé : Connect To Database (DatabaseLibrary)
dbApiModuleName: psycopg2 | dbName: nom de la base de données | dbUsername: nom d’utilisateur utilisé pour se connecter à la BD | dbPassword: mot de passe lié au nom d’utilisateur | dbHost: hôte de la BD | dbPort: port de la BD |
- Exemple:
Commentaire | Mot clé | Argument | |||||
---|---|---|---|---|---|---|---|
Connect To Database(DatabaseLibrary) | dbapiModuleName=psycopg2 | dbName=petclinic | dbUsername=petclinic | dbPassword=root | dbHost=ct-demo.askida.lan | dbPort=9091 | |
Table Must Exist(DatabaseLibrary) | vets | ||||||
Row Count Is Equal To X(DatabaseLibrary) | select * from vets | ||||||
Check If Exists In Database(DatabaseLibrary) | select * from vets where first_name = 'James' | ||||||
Pour se déconnecter de la base de données actuellement connectée. Ce mot clé fonctionne pour toutes les BD mentionnées ci-haut. | Disconnect From Database(DatabaseLibrary) |
Oracle
Mot Clé: Connect To Database Using Custom Params
Un pilote est requis sur le serveur de base de données testé : ojdbc8-21.7.0.0.jar
Compatible avec les versions suivantes : Oracle 21c, 19c, 18.3; Oracle 12.2
dbApiModuleName: jaydebeapi | dbConnectString: 'oracle.jdbc.driver.OracleDriver', 'jdbc:oracle:thin:@HOST:PORT/DB_NAME', ['USERNAME', 'PASSWORD'] |
Exemple:
Commentaire | Valeur de retour | Mot Clé | Argument | |
---|---|---|---|---|
Connect To Database Using Custom Params(DatabaseLibrary) | dbapiModuleName=jaydebeapi | db_connect_string='oracle.jdbc.driver.OracleDriver', 'jdbc:oracle:thin:@${DATABASE_SERVER_NAME}:49161/xe', ['system', 'oracle'] | ||
${first_name_male} | First Name Male(FakerLibrary) | |||
Execute Sql String(DatabaseLibrary) | insert into employee (name) values ('${first_name_male}') | sansTran=true | ||
${first_name_female} | First Name Female(FakerLibrary) | |||
Envoie une requête SQL pour un énoncé SELECT de la BD. Ne fonctionne pas pour la plupart des énoncés tels que : CREATE TABLE, INSERT INTO, etc. Pour éviter les problèmes :
| Execute Sql String(DatabaseLibrary) | insert into employee (name) values ('${first_name_female}') | sansTran=true | |
Execute Sql String(DatabaseLibrary) | insert into employee (name) values ('${first_name_female}') | sansTran=true | ||
@{query_result} | Query(DatabaseLibrary) | select * from employee; | sansTran=true | |
Log(BuiltIn) | ${query_result} | |||
Disconnect From Database(DatabaseLibrary) |
DB2
dbApiModuleName: jaydebeapi | dbConnectString: 'com.ibm.db2.jcc.DB2Driver', 'jdbc:db2://HOST:PORT/DB_NAME', ['USERNAME', 'PASSWORD'] |
- Pilote requis sur le serveur : db2jcc-db2jcc4.jar
- Compatible avec les versions suivantes : DB2 11.1; DB2 10.5; DB2 10.1; DB2 9.7; DB2 9.5
Exemple:
Valeur de retour | Mot Clé | Argument | |
---|---|---|---|
Connect To Database Using Custom Params(DatabaseLibrary) | dbapiModuleName=jaydebeapi | db_connect_string='com.ibm.db2.jcc.DB2Driver', 'jdbc:db2://${DATABASE_SERVER_NAME}:50000/SAMPLE', ['db2inst1', 'askidact'] | |
@{query_result} | Query(DatabaseLibrary) | select * from employee | sansTran=true |
Log(BuiltIn) | ${query_result} | ||
Disconnect From Database(DatabaseLibrary) |
SQL Server
dbApiModuleName: jaydebeapi | dbConnectString: 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://HOST:PORT;database=DB_NAME', ['USERNAME', 'PASSWORD'] |
dbApiModuleName: jaydebeapi | dbConnectString: 'com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://HOST\\INSTANCE;database=DB_NAME', ['USERNAME', 'PASSWORD'] |
- Pilote requis sur le serveur: mssql-jdbc-11.2.1.jre8.jar
- Compatible avec les versions suivantes :
|
|
|
|
Exemple 1:
Valeur de retour | Mot Clé | Argument | |
---|---|---|---|
Connect To Database Using Custom Params(DatabaseLibrary) | dbapiModuleName=jaydebeapi | db_connect_string='com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://sql-dev-mmq.askida.lan:1433;database=Claims_MMQ', ['sa', 'password_xxx'] | |
@{query_result} | Query(DatabaseLibrary) | select * from Accounts | sansTran=true |
Log(BuiltIn) | ${query_result} | ||
Disconnect From Database(DatabaseLibrary) |
Exemple 2:
Valeur de retour | Mot Clé | Argument | |
---|---|---|---|
Connect To Database Using Custom Params(DatabaseLibrary) | dbapiModuleName=jaydebeapi | db_connect_string='com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://sql-dev-mmq.askida.lan\\MMQSQLSERVER;database=Claims_MMQ', ['sa', 'password_xxx'] |
MySQL
Mot Clé: Connect To Database Using Custom Params (DatabaseLibrary)
dbApiModuleName: jaydebeapi | dbConnectString: 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://HOST:PORT/DB_NAME', ['USERNAME', 'PASSWORD'] |
- • Pilote requis sur le serveur: mysql-connector-java-8.0.30.jar
- Compatible avec les versions suivantes :
- MySQL 8.0 / MySQL 5.7 / MySQL 5.6 / MySQL 5.5
Exemple:
Valeur de retour | Mot Clé | Argument | |
---|---|---|---|
Connect To Database Using Custom Params(DatabaseLibrary) | dbapiModuleName=jaydebeapi | db_connect_string='com.mysql.cj.jdbc.Driver', 'jdbc:mysql://ct-prod-test2.askida.lan:3306/askida', ['root', 'password'] | |
@{query_result} | Query(DatabaseLibrary) | select * from project | sansTran=true |
Log(BuiltIn) | ${query_result} | ||
Disconnect From Database(DatabaseLibrary) |
MariaDB
Pour connecter à MySQL vous pouvez utiliser les pilotes MySQL ou MariaDB
Mot Clé: Connect To Database Using Custom Params (DatabaseLibrary)
dbApiModuleName: jaydebeapi | dbConnectString: 'com.mysql.cj.jdbc.Driver', 'jdbc:mysql://HOST:PORT/DB_NAME', ['USERNAME', 'PASSWORD'] |
- Pilote requis sur le serveur: mariadb-java-client-3.0.8.jar
- Compatible avec les versions suivantes :
- MariaDB and MySQL server versions 5.5.3 and later.
Exemple:
Valeur de retour | Mot Clé | Argument | |
---|---|---|---|
Connect To Database Using Custom Params(DatabaseLibrary) | dbapiModuleName=jaydebeapi | db_connect_string='org.mariadb.jdbc.Driver', 'jdbc:mariadb://ct-prod-test2.askida.lan:3306/askida', ['root', 'password'] | |
@{query_result} | Query(DatabaseLibrary) | select * from project | sansTran=true |
Log(BuiltIn) | ${query_result} | ||
Disconnect From Database(DatabaseLibrary) |
SAP HANA
Library.Mot Clé: DatabaseLibrary.Connect To Database Using Custom Params
dbApiModuleName: jaydebeapi dbConnectString: 'com.sap.db.jdbc.Driver', 'jdbc:sap://HOST:PORT/DB_NAME', ['USERNAME', 'PASSWORD']
- Pilote requis sur le serveur: ngdbc-2.14.9.jar
- Compatible avec les versions suivantes :
- All versions of SAP HANA
Exemple:
Valeur de retour | Mot Clé | Argument | |
---|---|---|---|
Connect To Database Using Custom Params(DatabaseLibrary) | dbapiModuleName=jaydebeapi | db_connect_string='com.sap.db.jdbc.Driver', 'jdbc:sap://ct-prod-test2.askida.lan:8080/askida', ['root', 'password'] | |
@{query_result} | Query(DatabaseLibrary) | select * from project; | sansTran=true |
Log(BuiltIn) | ${query_result} | ||
Disconnect From Database(DatabaseLibrary) |
De plus, vous pouvez afficher l’information de chaque mot clé en appuyant sur la touche F1 du clavier. Consultez Mot Clé F1 Help pour davantage de détails.
Ce mot clé spécial contient le mot clé « Connect To Database Using Custom Params » avec la bonne chaîne de connexion afin de faciliter les choses.
PostGres | Oracle | DB2 | SQL Server | |
---|---|---|---|---|
Special Mot Clé | Connect to PostGresSQL database | Connect to Oracle database | Connect to DB2 database | Connect to SQL Server database |
dbName | postgres | |||
dbUsername | postgres | system | user | root |
dbPassword | admin | oracle | pass | admin |
dbHost | 127.0.0.1 | 127.0.0.1 | 127.0.0.1 | 127.0.0.1 |
dbPort | 5432 | 49161 | 50000 | 3306 |
Mot Clé: Query | Mot Clé: Execute SQL String | ||||||
---|---|---|---|---|---|---|---|
Envoie une requête SQL pour un énoncé SELECT de la base de données. Ne fonctionne pas avec la plupart des énoncés tels que CREATE TABLE, INSERT INTO, etc. Pour éviter les problèmes :
| Envoie une commande SQL à exécuter dans la base de données. Cela inclut la plupart des commandes SQL sauf les énoncés SELECT. Pour éviter les problèmes :
Exemple:
|
Tests d'API
Mots clés RequestLibrary – Test de fichier JSON
Vous pouvez afficher l’information de chaque mot clé en appuyant sur la touche F1 du clavier. Consultez Mot Clé F1 Help pour davantage de détails.
Mots clés: Create Session & Get Request
Ces mots clés créent une session et des requêtes HTTP pour récupérer des données. Ils permettent de télécharger tout type de fichier, tels que HTML, JSON ou XML.
Pour cet exercice, il est obligatoire de télécharger le fichier JSON suivant d’Internet.
Selon le contenu du fichier JSON, vous devrez utiliser les mots clés « Get From Dictionary » ou « Get From List » afin d’extraire les données.
Exemple : Fichier JSON téléchargé ici http://api.github.com/events . Les données de ce site sont modifiées lors de chaque accès.
Valeur de retour | Mot Clé | Arguments | |
---|---|---|---|
Comment(BuiltIn) | Fetches a JSON file | ||
Create Session(RequestsLibrary) | githubAlias | http://api.github.com | |
${resp} | Get Request(RequestsLibrary) | githubAlias | /events |
Comment(BuiltIn) | Should verify the HTTP status code is 200 | ||
Should Be Equal As Strings(BuiltIn) | ${resp_status_code} | 200 | |
Log(BuiltIn) | Content of the variable resp : ${resp} | ||
Log(BuiltIn) | Content of the variable resp_statut_code : ${resp_status_code} | ||
Log(BuiltIn) | Content of the variable resp : ${resp.json()[0]} |
Mot Clé: Get Dictionary Keys (for JSON extraction)
Dans le cas d’un fichier JSON téléchargé d’Internet, le mot clé extrait les clés d’une entité JSON.
Exemple:
Valeur de retour | Mot Clé | Arguments | |
---|---|---|---|
Comment(BuiltIn) | Fetches a JSON file from URL adress | ||
Create Session(RequestsLibrary) | githubAlias | http://api.github.com | |
${resp} | Get Request(RequestsLibrary) | githubAlias | /events |
Should Be Equal As Strings(BuiltIn) | ${resp_status_code} | 200 | |
Comment(BuiltIn) | Extract the first "object" | ||
${jsonKeys} | Get Dictionary Keys(Collections) | ${resp.json()[0]} | |
List Should Contain Value(Collections) | ${jsonKeys} | id |
Mot Clé: Get From Dictionary (for JSON extraction)
Dans le cas d’un fichier JSON téléchargé d’Internet, le mot clé extrait la valeur de la clé spécifiée.
Exemple #1: Obtenir la valeur de la clé « publique » du premier objet.
Revenir au débutValeur de retour | Mot Clé | Arguments | |
---|---|---|---|
Comment(BuiltIn) | Fetches a JSON file from URL adress | ||
Create Session(RequestsLibrary) | githubAlias | http://api.github.com | |
${resp} | Get Request(RequestsLibrary) | githubAlias | /events |
Should Be Equal As Strings(BuiltIn) | ${resp_status_code} | 200 | |
Comment(BuiltIn) | Extract the value | ||
${value} | Get From Dictionary(Collections) | ${resp.json()[0]} | public |
Should Be Equal As Strings(BuiltIn) | ${value} | True |
Exemple #2: Obtenir une valeur plus profonde que le premier niveau du premier objet.
Valeur de retour | Mot Clé | Arguments | |
---|---|---|---|
Create Session(RequestsLibrary) | githubAlias | http://api.github.com | |
${resp} | Get Request(RequestsLibrary) | githubAlias | /events |
Should Be Equal As Strings(BuiltIn) | ${resp_status_code} | 200 | |
${subdata} | Get From Dictionary(Collections) | ${resp.json()[0]} | repo |
${value} | Get From Dictionary(Collections) | ${subdata} | name |
Log (BuiltIn) | The curent value of the first repo's name is ${value} |
Dans le cas d’un fichier JSON téléchargé d’Internet, extrait un item si les données sont sous forme de liste.
Exemple :
Valeur de retour | Mot Clé | Arguments | |
---|---|---|---|
Create Session(RequestsLibrary) | githubAlias | http://api.github.com | |
${resp} | Get Request(RequestsLibrary) | githubAlias | /events |
Should Be Equal As Strings(BuiltIn) | ${resp_status_code} | 200 | |
${firstEntireObject} | Get From List(Collections) | ${resp.json()} | 0 |
${secondEntireObject} | Get From List(Collections) | ${resp.json()} | 1 |
Mot Clés: To Json & Get Value From Json (JSONPath)
Le mot clé « To Json » convertit les données textuelles d’un fichier JSON en une structure JSON.
Ensuite, le mot clé « Get Value From Json » permet d’utiliser un JSONPath sur une structure JSON pour obtenir les données.
Le mot clé « Get Value From Json » peut nécessiter l’utilisation des mots clés « Get From Dictionary » ou « Get From List » pour extraire des données plus précises.
Exemple:
Valeur de retour | Mot Clé | Arguments | |
---|---|---|---|
Create Session(RequestsLibrary) | githubAlias | http://api.github.com | |
${resp} | Get Request(RequestsLibrary) | githubAlias | /events |
Should Be Equal As Strings(BuiltIn) | ${resp_status_code} | 200 | |
Comment(BuiltIn) | Convert the data into JSO data structure | ||
${jsonStructure} | To json(RequestsLibrary) | ${resp.content} | 0 |
${secondEntireObject} | Get From List(Collections) | ${resp.json()} | 1 |
Mots clés RESTLibrary – Test de fichier JSON (avec API REST).
La bibliothèque REST permet d’envoyer des requêtes GET, PUT, POST, PATCH, et DELETE vers une API.
Comparativement à RequestLibrary, elle vous permet de facilement extraire dans un fichier JSON les requêtes envoyées et les réponses reçues.
Elle permet également de créer des schémas et de tester les données reçues plus directement.
Les exemples suivants utilisent l’API Postman Echo.
Vous pouvez afficher l’information de chaque mot clé en appuyant sur la touche F1 du clavier. Consultez Mot Clé F1 Help pour davantage de détails.
Mot clé: Get (requête REST API - GET)
Le mot clé « Get » est utilisé pour envoyer une requête GET vers un service d’API REST.
Exemple : Envoyer une requête GET vers https://postman-echo.com/get?foo1=bar1&foo2=bar2 .
Mot clé: Get Value From Json (requête REST API - GET)
Le mot clé « Get » est utilisé pour envoyer une requête GET vers un service d’API REST.
Exemple: Envoyer une requête GET vers https://postman-echo.com/get?foo1=bar1&foo2=bar2 . Puis tester si le statut de la réponse est 200 (OK) et si le champ de la réponse « foo1 » affiche la valeur « bar1 »
Mot clé: Rest Instances (REST API)
Après l’envoi de requêtes API REST, ce mot clé vous permet de rédiger les requêtes envoyées et les réponses reçues dans un fichier de journal JSON.
Exemple : Envoyer trois requêtes GET et utiliser le mot clé « Rest Instances » pour obtenir les requêtes envoyées et les réponses reçues
Mot clé: Output Schema (REST API)
Après l’envoi de requêtes API REST, ce mot clé produit le schéma partiel découvert en se basant sur les réponses reçues jusqu’alors.
Exemple : Envoyer une requête GET et produire le schéma partiel actuel.
Exemple #1: Produit le schéma partiel dans un fichier JSON.
Exemple #2: Produit le schéma partiel sous forme d’une variable pouvant être lue ensuite à l’aide du mot clé « Get Value From Json ».
Mot clé: String (API REST – Affirme la valeur de chaîne)
Le mot clé affirme une valeur de chaîne reçue dans la dernière réponse de l’API. La position à valider dans le fichier JSON peut être déterminée avec JSONPath ou un chemin spécifié personnalisé.
Vous pouvez aussi employer des mots clés comme « Integer », « Boolean », « Object » et « Array » pour l’assertion d’autres types de champs.
Mot clé: Post (requête API REST - POST)
Ce mot clé envoie une requête POST vers l’API REST cible.
Exemple : Envoyer une requête POST à https://postman-echo.com/post . Cet exemple inclut des en-têtes qui sont assignés comme des arguments à la fin du mot clé « Post ».
Cet API devrait renvoyer certaines de ces données d’en-tête dans sa réponse.
Mot clé: Put (requête API REST - PUT)
Le mot clé envoie une requête PUT vers l’API REST cible.
Exemple : Envoyer une requête PUT à https://postman-echo.com/put. Cet exemple inclut des en-têtes qui sont assignés comme des arguments à la fin du mot clé « Put ».
Cet API devrait renvoyer certaines de ces données d’en-tête dans sa réponse.
Mot clé: Patch (requête API REST – PATCH)
Le mot clé envoie une requête PATCH vers l’API REST cible.
Exemple : Envoyer une requête PATCH à https://postman-echo.com/patch. Cet exemple inclut des en-têtes qui sont assignés comme des arguments à la fin du mot clé « Patch ».
Cet API devrait renvoyer certaines de ces données d’en-tête dans sa réponse.
Mot clé: Delete (requête API REST - DELETE)
Le mot clé envoie une requête DELETE vers l’API REST cible.
Exemple : Envoyer une requête DELETE à https://postman-echo.com/delete. Cet exemple inclut des en-têtes qui sont assignés comme des arguments à la fin du mot clé « Delete ».
Cet API devrait renvoyer certaines de ces données d’en-tête dans sa réponse.
Mot clé: Get (Authentification de base pour API REST)
Ce mot clé est un exemple plus avancé d’une requête GET d’authentification de base.
Exemple : Envoyer une requête GET https://postman-echo.com/basic-auth afin d’authentifier le nom d’utilisateur « postman » et le mot de passe « password ».
Dans cet exemple, le nom d’utilisateur et le mot de passe sont convertis en une valeur base64 et envoyés dans les en-têtes comme « Authorization=Basic cG9zdG1hbjpwYXNzd29yZA== »
Articles pertinents
Vous trouverez des informations sur l’API ici https://docs.postman-echo.com/?version=latest.
Postman, un outil pour les tests d’API https://www.postman.com/downloads/
Related content
©️2023 Alithya GoTest - Tous Droits Réservés
Besoin d'aide? Vous avez une suggestion?