- L'intérêt des tests réutilisables
- factoriser la base de tests
- réutiliser les tests
- limiter l'écriture de scripts pour concevoir les scénarios
Ces types de tests sont à utiliser en mode test plan
.
Important
Chemin d'accès du test réutilisable /Snippets/Cache/01_Set_Cache.tux
Ce test réutilisable consiste à sauvegarder une valeur dans le cache de données disponible durant l'exécution d'un test.
Paramètre(s) à configurer:
Paramètres |
|
DATAS |
|
Le paramètre DATAS
contient la liste des valeurs à sauvegarder avec le format:
# mon commentaire
[!TO:CACHE:<MA_CLE>:];ma valeur
Exemple
# Save misc data
[!TO:CACHE:EXAMPLE:];hello world
# Save server information in the cache
[!TO:CACHE:SERVER_DESCRIPTION:];[!FROM:INPUT:TEST_PURPOSE:]
Note
Il est possible de sauvegarder plusieurs valeurs avec ce test.
Important
Chemin d'accès du test réutilisable /Snippets/Cache/02_Log_Cache.tux
Ce test réutilisable permet d'afficher la valeur d'une clé présente dans le cache durant l'exécution du test.
Paramètre(s) à configurer:
Paramètres |
|
MESSAGES |
|
# display cache
[!FROM:CACHE:EXAMPLE:]
# log timeout input
[!FROM:INPUT:TIMEOUT:]
Note
Il est possible d'afficher plusieurs valeurs en une seule fois
Important
Chemin d'accès du test réutilisable /Snippets/Cache/03_Reset_Cache.tux
Ce test réutilisable permet de vider totalement le cache. Aucun paramètre à configurer.
Note
Ce test peut être utilise lorsque plusieurs scénarios sont enchainés dans un test global.
Important
Chemin d'accès du test réutilisable /Snippets/Cache/04_Checking_Cache.tux
Ce test réutilisable permet de vérifier la valeur dans une clé présente dans le cache.
Paramètre(s) à configurer:
Paramètres |
|
CHECKING |
|
Les opérateurs disponibles:
Paramètres |
|
contains | Permet de vérifier si la valeur contient une chaîne de caractères |
matches | Permet de vérifier si la valeur correspond à l'expression régulière |
== | Permet de vérifier si la valeur est égal à |
!= | Permet de vérifier si la valeur est différent de |
> | Permet de vérifier si la valeur est supérieur à |
< | Permet de vérifier si la valeur est inférieur à |
>= | Permet de vérifier si la valeur est supérieur égal à |
<= | Permet de vérifier si la valeur est inférieur égal à |
# Vérifie si la valeur contient la chaine de caractère test
[!FROM:CACHE:EXAMPLE:] contains test
Note
Il est possible de vérifier plusieurs valeurs en une seule fois
Important
Chemin d'accès du test réutilisable /Snippets/Cache/05_Delete_Cache.tux
Ce test réutilisable permet de supprimer une clé et sa valeur associée dans le cache.
Paramètre(s) à configurer:
Paramètres |
|
MESSAGES |
|
# supprime la clé EXEMPLE du cache
[!FROM:CACHE:EXEMPLE:]
Note
Il est possible de supprimer plusieurs clés en une seule fois
Mise en attente ~~~~~~~~~~~~~~
Important
Chemin d'accès du test réutilisable /Snippets/Do/01_Wait.tux
Ce test réutilisable permet d'attendre xx secondes durant l'exécution du test.
Paramètre(s) à configurer:
Paramètres |
|
DURATION | durée en secondes |
Arrêt d'un test ~~~~~~~~~~~~~~
Important
Chemin d'accès du test réutilisable /Snippets/Do/02_Terminate.tux
Ce test réutilisable permet de forcer l'arrêt d'un scénario en cas d'erreur. Un message expliquant l'arrêt peut être spécifié avec le paramètre STOP_TEST_MSG
.
Note
Il est possible de personnaliser le message d'arrêt en configurant la variable STOP_TEST_MSG
.
Chargement d'un environnement de test ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Important
Chemin d'accès du test réutilisable /Snippets/Do/03_Initialize.tux
Ce test réutilisable permet de charger dans le cache les données de son environnement de tests (les adresses ip, compte d'accès des serveurs, etc.).
- Un environnement se décrit avec 4 niveaux:
environnement
cluster
noeud
instance
Un environnement
peut être constitué de un ou plusieurs clusters.
{
"PLATFORM": {
"NOM_CLUSTER_1": [ .. ],
"NOM_CLUSTER_2": [ .. ]
}
}
Un cluster
est constitué d'une liste de noeuds.
{
"NOM_CLUSTER_1": [
{ "NOM_NOEUD_1": { .. },
{ "NOM_NOEUD_2": { .. }
]
}
Un noeud
est constitué d'une ou plusieurs instances.
{
"NOM_NOEUD_1": {
"COMMON": { ... },
"INSTANCES": {....}
}
}
Une instance
se constitue de plusieurs clés/valeurs.
{
"INSTANCES": {
"TYPE_INSTANCE_1": {
"NOM_INSTANCE_1": { ...},
"NOM_INSTANCE_2": { ...}
},
"TYPE_INSTANCE_2": { ... }
}
}
Paramètre(s) à configurer:
Paramètres |
|
ENVIRONMENT |
|
Exemple d'un environnement de test contenant un serveur http avec une instance de type rest. Après chargement dans le cache, l'instance REST est accessible en utilisant la clé NODE_HTTP_REST
. L'ensemble des clés présentes dans COMMON
sont automatiquement copiées dans chaque instance.
{
"PLATFORM": {
"CLUSTER": [
{ "NODE": {
"COMMON": {
"HOSTNAME": "httpbin"
},
"INSTANCES": {
"HTTP": {
"REST": {
"HTTP_DEST_HOST": "httpbin.org",
"HTTP_DEST_PORT": 443,
"HTTP_DEST_SSL": true,
"HTTP_HOSTNAME": "httpbin.org",
"HTTP_AGENT_SUPPORT": false,
"HTTP_AGENT": null
}
}
}
}
}
]
},
"DATASET": [ ]
}
La clé DATASET
peut contenir des jeux de données.
Important
Chemin d'accès du test réutilisable /Snippets/Generators/01_Gen_Sha.tux
Ce test réutilisable permet de générer un hash d'une valeur et de la stocker dans le cache.
Paramètre(s) à configurer:
Paramètres |
|
DATA_IN | Chaine de caractères à hasher |
CACHE_KEY | Nom de la clé |
SHA | Type de hash réaliser (sha1, sha256, sha512) |
Important
Chemin d'accès du test réutilisable /Snippets/Generators/02_Gen_Md5.tux
Ce test réutilisable permet de générer un hash md5 d'une valeur et de la stocker dans le cache.
Paramètre(s) à configurer:
Paramètres |
|
DATA_IN | Chaine de caractère à hasher |
CACHE_KEY | Nom de la clé ou le résultat sera sauvegarder dans le cache |
Important
Chemin d'accès du test réutilisable /Snippets/Generators/03_Gen_Uuid.tux
Ce test réutilisable permet de générer un id uuid et de la stocker dans le cache.
Paramètre(s) à configurer:
Paramètres |
|
CACHE_KEY | Nom de la clé pour sauvegarder le résultat dans le cache |
Important
Chemin d'accès du test réutilisable /Snippets/Generators/04_Gen_Base64.tux
Ce test réutilisable permet d'encoder ou décoder une chaine de caractères et de stocker le résultat dans le cache.
Paramètre(s) à configurer:
Paramètres |
|
CACHE_KEY | Nom de la clé pour sauvegarder le résultat dans le cache |
DECODE | A positionner à True pour encoder |
ENCODE | A positionner à True pour décoder |
URLSAFE | A positionner à True si le résulat après encodage doit être utilisé dans une url |
STR_BASE64 | Chaine de caractères à encoder/décoder |
Important
Chemin d'accès du test réutilisable /Snippets/Protocols/01_Send_SSH.tsx
Ce test réutilisable permet d'envoyer un enchainement de commandes ssh. Il est à utiliser conjointement avec le test réutilisable /Snippets/Do/03_Initialize.tux
permet de charger un environnement dans le cache.
Paramètre(s) à configurer:
Paramètres |
|
SERVERS |
|
COMMANDS |
|
TIMEOUT_CONNECT |
|
Le paramètre COMMANDS attend un ou plusieurs blocs de 4 lignes. Chaque bloc doit respecter le formalisme suivant: 1. Un commentaire expliquant l'action, cette information est utilisée pour initialiser l'étape de test 2. La commande à exécuter 3. La chaine de caractères attendue à l'écran, si la valeur attendue n'est pas trouvée alors l'étape sera en erreur. (ligne optionnelle) 4. vide
Warning
Chaque bloc sera exécuté même si le précédent est en erreur.
- L'exemple suivant effectue les actions suivantes:
- Envoi de 3 pings sur la machine distante dont l'ip est stockée dans le cache
DEST_HOST
- Vérification de l'obtention d'un message à l'écran indiquant que les 3 paquets ont été envoyés. Ensuite la valeur mdev est stockée dans le cache avec la clé `STATS
- Le deuxième bloc efface l'écran en envoyant la commande clear.
- Enfin le test attend de trouver le prompt à l'écran
- Envoi de 3 pings sur la machine distante dont l'ip est stockée dans le cache
# send a ping
ping -c 3 [!CACHE:SVR:DEST_HOST:]
.*3 packets transmitted, 3 received, 0% packet loss.*mdev = [!CAPTURE:STATS:] ms.*
# clear the screen
clear
.*root@.*
Note
Il est possible d'exécuter le test plusieurs fois en fournissant une liste de serveurs.
Note
Par défaut, le test attend 20 secondes au maximum pour trouver la chaine de caractères attendue. Il est possible de configurer cette valeur avec le paramètre TIMEOUT
.
Note
Par défaut, le test attend 10 secondes pour effectuer la connexion au serveur distant. Il est possible de configurer cette valeur avec le paramètre TIMEOUT_CONNECT
.
Important
Chemin d'accès du test réutilisable /Snippets/Protocols/02_Send_HTTP_CURL.tsx
Ce test réutilisable permet d'envoyer une requête HTTP en vérifiant la réponse reçue.
Paramètre(s) à configurer pour définir la destination:
Paramètre(s) pour configurer la requête HTTP à envoyer:
Paramètres |
|
HTTP_REQ_HOST | Destination à charger URL |
HTTP_REQ_BODY | Corps de la requête |
HTTP_REQ_HEADERS | Liste des headers à ajouter |
HTTP_REQ_METHOD | Methode HTTP (GET, POST, etc..) |
Paramètre(s) pour configurer la réponse HTTP attendue (et qui permettra de considérer le test comme valide):
Paramètres |
|
HTTP_RSP_BODY | Corps de la réponse attendue. |
HTTP_RSP_BODY_JSON | Json attendu dans le corps de la réponse. |
HTTP_RSP_BODY_XML | XML attendu dans le corps de la réponse. |
HTTP_RSP_CODE | Le code HTTP attendue. 200 par défaut |
HTTP_RSP_HEADERS | Liste des entêtes attendues |
HTTP_RSP_PHRASE | La phrase HTTP attendue. OK par défaut |
HTTP_RSP_VERSION | La version HTTP attendue. HTTP/1.[0|1] par défaut |
Note
L'utilisation des expressions régulières est possible pour vérifier ou enregistrer une valeur dans le corps de la réponse ou bien dans les entêtes.
Important
Chemin d'accès du test réutilisable /Snippets/UI/01_Win_OpenApp.tux
Tests réutilisables permettant d'ouvrir ou de fermer une application sur un poste Windows ou Linux. Ce test nécessite de définir quel agent sera utilisé avec la clé AGENT_GUI
.
Paramètre(s) à configurer:
Paramètres |
|
APP_PATH |
|
Important
Chemin d'accès du test réutilisable /Snippets/UI/02_Win_CloseApp.tux
Test réutilisable permettant d'ouvrir ou de fermer une application sur un poste Windows ou Linux. Ce test nécessite de définir quel agent sera utilisé avec la clé AGENT_GUI
.
Paramètre(s) à configurer:
Paramètres |
|
APP_NAME |
|
Important
Chemin d'accès du test réutilisable /Snippets/UI/03_OpenBrowser.tux
Test réutilisable permettant d'ouvrir ou de fermer une navigateur sur un poste Windows ou Linux. Ce test nécessite de définir quel agent sera utilisé avec la clé AGENT_GUI_BROWSER
.
Paramètre(s) à configurer:
Paramètres |
|
LOADING_URL |
|
- Il est possible de sélectionner le navigateur à ouvrir, les navigateurs suivants sont supportés:
- Firefox
- Chrome
- Internet Explorer
- Opera
- Edge
Note
L'url doit obligatoirement commencer par http://
ou https://
Important
Chemin d'accès du test réutilisable /Snippets/UI/03_CloseBrowser.tux
Tests réutilisables permettant d'ouvrir ou de fermer une navigateur sur un poste Windows ou Linux. Ce test nécessite de définir quel agent sera utilisé avec la clé AGENT_GUI_BROWSER
.
Important
Chemin d'accès du test réutilisable /Snippets/Verify/01_Check_XML.tux
Ce test réutilisable permet de vérifier du contenu de type XML avec l'outil xpath.
Paramètre(s) à configurer:
Paramètres |
|
XML_STR | XML brut à inspecter |
XML_XPATH | xpath qui sera vérifier le test |
XML_NAMESPACES | Définition des namespaces |
Exemple de valeur pour le paramètre XML_STR
:
<NewDataSet>
<Table>
<Country>France</Country>
<City>Le Touquet</City>
</Table>
<Table>
<Country>France</Country>
<City>Agen</City>
</Table>
<Table>
<Country>France</Country>
<City>Cazaux</City>
</Table>
<Table>
<Country>France</Country>
<City>Bordeaux / Merignac</City>
</Table>
<Table>
<Country>France</Country>
<City>Bergerac</City>
</Table>
</NewDataSet>
Exemple de valeur pour le paramètre XML_XPATH
permettant d'enregistrer dans le cache le nom de la ville à la 2ième position dans la liste.
(//NewDataSet/Table)[1]/City [!CAPTURE:CITY:]
La valeur sera accessible dans le cache avec la clé CITY
.
Important
Chemin d'accès du test réutilisable /Snippets/Verify/01_Check_JSON.tux
Ce test réutilisable permet de vérifier du contenu de type JSON avec l'outil jsonpath
Paramètre(s) à configurer:
Paramètres |
|
JSON_STR | Json à inspecter |
JSON_XPATH | jsonpath qui sera vérifié par le test |
Exemple de valeur pour le paramètre JSON_STR
:
{
"args": {},
"headers": {
"Connection": "close",
"Host": "httpbin.org",
"User-Agent": "ExtensiveTesting"
},
"origin": "190.117.217.129",
"url": "https://httpbin.org/get"
}
Exemple de valeur pour le paramètre JSON_XPATH
permettant d'enregistrer dans le cache la valeur de la clé Connection dans le dictionnaire headers.
headers.Connection [!CAPTURE:CX:]
La valeur sera accessible dans le cache avec la clé CX
.