/
Test BD et API

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:
CommentaireMot cléArgument

Connect To Database(DatabaseLibrary)dbapiModuleName=psycopg2dbName=petclinicdbUsername=petclinicdbPassword=rootdbHost=ct-demo.askida.landbPort=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: jaydebeapidbConnectString: '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=jaydebeapidb_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 :

  • Il est très important d’inclure le point-virgule (;) à la fin de la requête SQL.
  • Le paramètre « sansTran » doit être à « True » pour la plupart des bases de données. Sinon il peut faire échouer un test dans Alithya GoTest si la BD est configurée pour sauvegarder automatiquement et de façon permanente tous les changements.

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=jaydebeapidb_connect_string='com.ibm.db2.jcc.DB2Driver', 'jdbc:db2://${DATABASE_SERVER_NAME}:50000/SAMPLE', ['db2inst1', 'askidact']
@{query_result}Query(DatabaseLibrary)select * from employeesansTran=true

Log(BuiltIn)${query_result}

Disconnect From Database(DatabaseLibrary)

Revenir au début

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  :
  • Azure SQL Managed Instance
  • SQL Server 2017
  • SQL Server 2016
  • SQL Server 2014
  • PDW 2008R2 AU34
  • Azure SQL Database

  • SQL Server 2012  

  • SQL Server 2008R2

  • Exemple 1:

Valeur de retour Mot CléArgument

Connect To Database Using Custom Params(DatabaseLibrary)dbapiModuleName=jaydebeapidb_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 AccountssansTran=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=jaydebeapidb_connect_string='com.microsoft.sqlserver.jdbc.SQLServerDriver', 'jdbc:sqlserver://sql-dev-mmq.askida.lan\\MMQSQLSERVER;database=Claims_MMQ', ['sa', 'password_xxx']

Revenir au début

MySQL

Mot Clé: Connect To Database Using Custom Params (DatabaseLibrary)

dbApiModuleName: jaydebeapidbConnectString: '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=jaydebeapidb_connect_string='com.mysql.cj.jdbc.Driver', 'jdbc:mysql://ct-prod-test2.askida.lan:3306/askida', ['root', 'password']
@{query_result}Query(DatabaseLibrary)select * from projectsansTran=true

Log(BuiltIn)${query_result}

Disconnect From Database(DatabaseLibrary)

Revenir au début


MariaDB

Pour connecter à MySQL vous pouvez utiliser les pilotes MySQL ou MariaDB

Mot Clé: Connect To Database Using Custom Params (DatabaseLibrary)

dbApiModuleName: jaydebeapidbConnectString: '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=jaydebeapidb_connect_string='org.mariadb.jdbc.Driver', 'jdbc:mariadb://ct-prod-test2.askida.lan:3306/askida', ['root', 'password']
@{query_result}Query(DatabaseLibrary)select * from projectsansTran=true

Log(BuiltIn)${query_result}

Disconnect From Database(DatabaseLibrary)

Revenir au début

SAP HANA

  • Library.Mot Clé: DatabaseLibrary.Connect To Database Using Custom Params

    dbApiModuleName: jaydebeapidbConnectString: '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=jaydebeapidb_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)

Revenir au début


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.


PostGresOracle DB2SQL Server
Special Mot Clé 

Connect to PostGresSQL database

Connect to Oracle database

Connect to DB2 database

 Connect to SQL Server database

dbName postgres


dbUsernamepostgressystemuserroot
dbPasswordadminoraclepassadmin
dbHost127.0.0.1127.0.0.1127.0.0.1127.0.0.1
dbPort543249161500003306

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 :

  • Il est très important d’inclure le point-virgule (;) à la fin de la requête SQL.
  • Le paramètre « sansTran » doit être à « True » pour la plupart des bases de données. Sinon il peut faire échouer un test dans Alithya GoTest si la BD est configurée pour sauvegarder automatiquement et de façon permanente tous les changements.
 Exemple #1 : Envoyer une requête SQL pour obtenir les noms de toutes les tables de la base de données.


 Exemple #2 : Extraire un élément de donnée précis des résultats SQL.
 Exemple #3 : À l’aide d’une méthode alternative, enregistrer des éléments de données précis des résultats SQL.

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 :

  • Il est très important d’inclure le point-virgule (;) à la fin de la requête SQL.
  • Le paramètre « sansTran » doit être à « True » pour la plupart des bases de données. Sinon il peut faire échouer un test dans Alithya GoTest si la BD est configurée pour sauvegarder automatiquement et de façon permanente tous les changements.

Exemple:

Mot CléArguments
Execute Sql String(DatabaseLibrary)COMMIT;True

Revenir au début

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 retourMot CléArguments 

Comment(BuiltIn)Fetches a JSON file 

Create Session(RequestsLibrary)githubAliashttp://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]}

Revenir au début

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:

 Exemple JSON simplifié

Valeur de retourMot CléArguments 

Comment(BuiltIn)Fetches a JSON file from URL adress

Create Session(RequestsLibrary)githubAliashttp://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.

 Exemple JSON

Revenir au début


Valeur de retourMot CléArguments 

Comment(BuiltIn)Fetches a JSON file from URL adress

Create Session(RequestsLibrary)githubAliashttp://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.

 Example #2: Get the value deeper than the first level of the first object.

Valeur de retourMot CléArguments 

Create Session(RequestsLibrary)githubAliashttp://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}
Valeur de retourMot CléArguments 

Create Session(RequestsLibrary)githubAliashttp://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}
 Exemple #3: Obtenir la valeur de la clé « id » des trois premiers objets.

Valeur de retourMot CléArguments 

Create Session(RequestsLibrary)githubAliashttp://api.github.com
${resp}Get Request(RequestsLibrary)githubAlias/events

Should Be Equal As Strings(BuiltIn)${resp_status_code}200
${value1}Get From Dictionary(Collections)${resp.json()[0]}id
${value2}Get From Dictionary(Collections)${resp.json()[1]}id
${value3}Get From Dictionary(Collections)${resp.json()[2]}id

Log (BuiltIn)The extracted id value are : ${value1}, ${value2}, ${value3}
Mot Clé: Get From List (for JSON extraction)

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 :

 Fichier JSON

Valeur de retourMot CléArguments 

Create Session(RequestsLibrary)githubAliashttp://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

Revenir au début

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 retourMot CléArguments 

Create Session(RequestsLibrary)githubAliashttp://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

Revenir au début

    


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 »


Revenir au début

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 ».

Revenir au début


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.

Revenir au début

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.


Revenir au début

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== »


Revenir au début

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

Version 3.5.0 (2024/03/14)
Version 3.5.0 (2024/03/14)
Read with this
DB and API Tests
DB and API Tests
More like this
BrowserStack
Read with this
Version 2.11.5
Version 2.11.5
More like this
Frequently Asked Questions (FAQ)
Frequently Asked Questions (FAQ)
Read with this
Version 2.15.0 
Version 2.15.0 
More like this

©️2023 Alithya GoTest - Tous Droits Réservés
Besoin d'aide? Vous avez une suggestion?