Spécifications¶
Cycle des versions¶
L’ensemble des paquets logiciels de la solution respecte les rêgles suivantes pour le nommage des versions.
- La version se découpe en 3 chiffres (A.B.C)
- A: le 1er chiffre indique la version majeure. L’incrémentation de ce chiffre implique
- l’ajout de fonctionnalités majeures (avec pottentiellement une perte de compatibilité avec la version précédente)
- l’ajout de fonctionnalités mineures
- la correction de bug
- B: Le 2ième chiffre indique une version mineure. L’incrémentation de ce chiffre indique
- l’ajout de fonctionnalités mineures
- la correction de bug
- C: le 3ième chiffre indique une version de maintenance. L’incrémentation de ce chiffre indique
- la correction de bug
Arborescence du serveur¶
L’ensemble des fichiers manipulés par le serveur sont stockés dans le répertoire [...]/var/
.
scripts/
serverengine/
servercontrols/
serverinterfaces/
serverrepositories/
libs/
testcreatorlib
testexecutorlib/
sutadapters/
var/
tests/
testsresult/
logs/
tasks/
Les tests sont stockés dans le répertoire [...]/var/tests/
, ils sont organisés par identifiant de projet.
Modèle de données¶
- Une base de donnée est utilisée par le serveur pour stocker :
- les utilisateurs de la solution
- la liste des projets
- les données de tests (variables projets)
- des statistiques
- l’historique des exécutions
Tables | Description |
xtc-config | Configuration du serveur |
xtc-projects | Liste des projets |
xtc-relations-projects | Relation entre les projets et les utilisateurs |
xtc-users | Liste des utilisateurs |
xtc-test-environment | Liste des variables au format JSON |
xtc-tasks-history | Historique des tâches exécutées sur le serveur |
Gestion des mots de passes¶
Aucun mot de passe (en clair) est stocké dans la base de donnée. L’utilisation d’un hash est par contre utilisé. Le hash du mot de passe est stocké dans la table xtc-users.
L’algorithme utilisé:
Format des fichiers¶
- Les tests sont au format
XML
. Il existe plusieurs formats de tests: - Test Unit Xml
- Test Suite Xml
- Test Plan Xml
- Test Global Xml
Structure XML partagée
<?xml version="1.0" encoding="utf-8" ?>
<file>
<properties>
<descriptions>...</descriptions>
<inputs-parameters>...</inputs-parameters>
</properties>
</file>
Test Unit Xml
<?xml version="1.0" encoding="utf-8" ?>
<file>
<properties>....</properties>
<testdefinition><![CDATA[pass]]></testdefinition>
<testdevelopment>1448190694.813723</testdevelopment>
</file>
Test Suite Xml
<?xml version="1.0" encoding="utf-8" ?>
<file>
<properties>...</properties>
<testdefinition><![CDATA[pass]]></testdefinition>
<testexecution><![CDATA[pass]]></testexecution>
<testdevelopment>1448190717.236711</testdevelopment>
</file>
Test Plan Xml
<?xml version="1.0" encoding="utf-8" ?>
<file>
<properties>...</properties>
<testplan id="0">
<testfile>
<id>1</id>
<color />
<file>Common:Defaults/testunit.tux</file>
<enable>2</enable>
<extension>tux</extension>
<alias />
<type>remote</type>
<parent>0</parent>
<properties>....</properties>
<description />
</testfile>
</testplan>
<testdevelopment>1448190725.096519</testdevelopment>
</file>
Test Global Xml
<?xml version="1.0" encoding="utf-8" ?>
<file>
<properties>...</properties>
<testplan id="0">
<testfile>
<id>1</id>
<color />
<file>Common:Defaults/testplan.tpx</file>
<enable>2</enable>
<extension>tpx</extension>
<alias />
<type>remote</type>
<parent>0</parent>
<properties>...</properties>
<description />
</testfile>
</testplan>
<testdevelopment>1448190733.690697</testdevelopment>
</file>
Stockage des résultats de tests¶
Les résultats de tests sont stockés sur le serveur dans le répertoire [...]/var/testsresult
.
- Les résultats sont stockés:
- par l’id des projets de test
- par la date du jour d’exécution du test
- et finalement par la date et heure d’exécutions des tests.
Organisation des résultats:
Répertoire: <project_id>
- Répertoire: <yyyy-mm-dd>
- Répertoire: <yyyy-mm-dd_hh:mm:ss.testid.testname.username>
- Fichier: TESTPATH
- Fichier: test.log
- Fichier: test.ini
- Fichier: <testname>_<replayid>.hdr
- Fichier: <testname>_<replayid>_<result>_<nbcomments>.trv
- Fichier: <testname>_<replayid>.tbrp
- Fichier: <testname>_<replayid>.tdsx
- Fichier: <testname>_<replayid>.trd
- Fichier: <testname>_<replayid>.trp
- Fichier: <testname>_<replayid>.trpx
- Fichier: <testname>_<replayid>.trv
- Fichier: <testname>_<replayid>.trvx
Description des fichiers:
TESTPATH
contient le chemin d’accès complet pour le résultat de testtest.log
contient les logs interne du test, à utiliser pour débugger le framework de testtest.ini
contient des paramètres spécifiques au test<testname>_<replayid>.hdr
réprésente l’entête du résultat de test<testname>_<replayid>_<result>_<nbcomments>.trv
contient l’ensemble des évènements générés pendant l’exécution du tests<testname>_<replayid>.tbrp
contient le rapport basique au format html<testname>_<replayid>.trp
contient le rapport complet au format html<testname>_<replayid>.trv
contient le rapport des résultats au format csv
Contrôle Agents¶
- Le pilotage des agents depuis un test s’effectue à travers:
- les adaptateurs
- et le serveur
- La communication s’effectue avec l’échange de quelques messages spécifiques:
init
: permet d’initialiser un agentnotify
: permet d’envoyer un message à l’agent sans attendre de réponsereset
: permet de faire un reset de l’agenterror
: permet à l’agent d’envoyer une erreur à l’adaptateurdata
: permet à l’agent d’envoyer des données à l’adaptateur
- Sens de communications disponibles:
- Agent -> serveur -> adaptateur -> test
- Test -> adaptateur -> serveur -> agent
Agent | ||
Fonction | Callback | |
Envoie d’un message « error » |
|
|
Envoie d’un message « notify » |
|
|
Envoie d’un message « data » |
|
|
Réception d’un message « init » |
|
|
Réception d’un message « reset » |
|
|
Réception d’un message « notify » |
|
Adaptateur | ||
Fonction | Callback | |
Réception d’un message « error » |
|
|
Réception d’un message « notify » |
|
|
Réception d’un message « data » |
|
|
Envoie d’un message « init » |
|
|
Envoie d’un message « reset » | def resetAgent | |
Envoie d’un message « notify » |
|
Les logs serveurs¶
Les logs du serveur sont localisés dans le répertoire [...]/var/logs/
.
output.log | logs serveurs |