(publié le 31/05/2006)
Présentation d'Eclipse TPTP
(Test & Performance Tools Platform Project)
La mise en place de tests et l'analyse des performances
des applications sont des phases essentielles dans le cycle de développement.
Le projet TPTP a pour but de répondre à ces besoins d'une
part en proposant l'outillage nécessaire et d'autre part en fournissant
un socle extensible.
Le projet TPTP a été créé
en 2002 sous le nom d'Hyadès avant de devenir en 2004 un projet
principal organisé en quatre sous-projets :
- TPTP Platform Project : fournit le socle utilisé
par les divers outils de test et de mesure des performances. Fournit notamment
les mécanismes permettant de collecter des informations et de gérer
leur récupération dans un environnement distribué.
- TPTP Tracing and Profiling Tools Project : implémente
les outils permettant d'une part de collecter des informations sur le
fonctionnement d'applications Java d'autre part d'analyser ces informations
(localisation des allocations mémoires, détermination des
temps d'exécution). Les applications Java peuvent être soit
des applications autonomes soit des applications s'exécutant sur
un serveur J2EE.
- TPTP Test Tools Project : propose les outils permettant de créer
des tests. Différents types de tests sont proposées : test
JUnit, test manuel (test avec intervention de l'utilisateur), test d'applications
Web (capture et exécution d'une succession de requêtes HTTP).
- TPTP Monitoring Tools Project : fournit des
outils de collecte et de visualisation des performances du système
d'exploitation (Windows et Unix) et de supervision pour divers serveurs
d'applications (JBoss et JOnAS).
Les principaux contributeurs au développement de TPTP sont : Computer
Associates, Compuware, IBM, Intel, SAP et Scapa.
TPTP
Tracing and Profiling Tools Project
Le projet 'Tracing and Profiling' propose un ensemble
d'outils permettant d'analyser une application Java pour localiser les
morceaux de code qui impactent le plus les performances.
Ces outils s'appuient sur une analyse dynamique de l'application : l'application
est exécutée dans un mode particulier, le mode 'Profiling',
qui permet la collecte d'informations sur les temps d'exécution
et sur l'occupation mémoire. Pendant l'exécution ou une
fois celle-ci terminée plusieurs vues permettent d'analyser les
résultats.
Exécution en mode 'Profiling'
Une fois TPTP installé, les applications Java
peuvent être exécutées via l'option 'Profile as...'
en plus des options habituelles 'Run as... ' et 'Debug as...'.
L'exécution en mode 'Profiling' permet de préciser
les indicateurs qui devront être collectées, les principaux
indicateurs sont : consommation mémoire, temps d'exécution
et test de couverture.
Visualisation des résultats
Les résultats sont archivés et accessibles
à partir de la vue 'Profiling Monitor'. Le menu contextuel permet
d'afficher les résultats dans l'une des vues proposées :
Vue
'Coverage Statistics'
Ce mode permet d'identifier les méthodes qui ont
été appelées ou non pendant le test.
TPTP 4.2 propose une fonctionnalité supplémentaire
qui permet d'avoir l'information de couverture au niveau des lignes de
code. La visualisation se fait alors sous forme de décorateurs
apparaissant dans la vue 'Package explorer' et de marqueurs apparaissant
dans la marge des éditeurs.
Vue
'Execution Flow'
Cette vue permet d'avoir une vision sur le déroulement
du test.
Elle se compose de deux parties :
- en haut une partie graphique affiche toutes les méthodes appelées
pendant le test. Chaque méthode est représentée par
une barre de couleur dont le positionnement et la taille correspondent
respectivement au moment où la méthode a été
déclenchée et à sa durée d'exécution
(l'échelle de temps est affichée à gauche de la vue).
Cette partie graphique dispose d'un zoom qui permet de voir apparaître
le nom des méthodes.
- en bas un tableau liste les méthodes dans leur ordre d'appel
et donne pour chacune le moment de son déclenchement et sa durée
d'exécution.
Vue
'Execution Statistics'
Cette vue affiche dans un tableau des statistiques sur
la durée d'exécution des méthodes. La première
colonne peut afficher les packages, les classes et les méthodes.
Les colonnes suivantes affichent des informations dont les plus importantes
sont : le temps moyen d'exécution, le temps cumulé d'exécution
et le nombre d'appels :
Vue
'Memory Statistics'
Cette vue affiche des statistiques sur l'utilisation
mémoire. La première colonne peut afficher les packages
ou les classes. Les colonnes suivantes affichent diverses informations
concernant les instances de chaque classe, par exemple le nombre d'instance
créées, le nombres d'instances détruites ou encore
le taille mémoire de ces instances :
Vue
'Object references'
Cette vue peut aider à résoudre des fuites
mémoires, elle permet de voir l'ensemble des instances créées,
de connaître la taille mémoire occupée par chacune
d'elles et de lister les références entre instances.
Vues
'UML2 Class Interactions', 'UML2 Object Interactions' et 'UML2 Thread
Interactions'
Ces vues réprésentent le déroulement
de l'application sous forme de diagrammes de séquences. En fonction
de la vue les interactions représentées sont celles entre
classes, entre instances ou entre threads :
TPTP
Test Tools Project
Le sous-projet 'TPTP Test Tools' propose des outils pour
créer des tests, les exécuter et consulter les résultats.
Création de tests
L'outillage permet de créer différents
types de tests.
Des éditeurs permettent de construire les tests
ou de modifier les tests générés suite à une
capture (exemple test lié à une série de requêtes
HTTP) :
Exécution et visualisation des résultats
Un assistant permet de demander l'exécution d'une
succession de tests :
Les résultats des tests sont affichés dans
un éditeur spécifique :
TPTP
Monitoring Tools Project
Le sous-projet 'TPTP Monitoring Tools' propose un outillage
générique de supervision. La notion de base est la notion
d'agent. Chaque agent est associé à une source dont il est
capable d'extraire un ensemble d'indicateurs. Plusieurs agents sont proposés
en standard :
- agents Windows et Linux, capables de collecter des informations liées
au système d'exploitation (l'agent Windows s'appuie sur Perfmon).
- agents pour les serveurs d'applications JBoss et JOnAS.
- agent pour le serveur HTTP Apache.
- agent pour la base de données MySQL.
L'outillage permet de configurer un agent, de le démarrer,
de consulter la liste des indicateurs, de sélectionner les indicateurs
à collecter et de suivre graphiquement l'évolution de ces
indicateurs.
Configuration d'un agent
La configuration d'un agent passe essentiellement par
le choix d'un des types d'agents disponibles. Selon le type d'agent des
paramètres supplémentaires peuvent être indiqués
(onglet Settings). L'onglet 'Host' permet d'indiquer sur quel machine
se trouve l'agent.
Une fois l'agent configuré il apparaît dans
la vue 'Profiling Monitor' :
Sélection des indicateurs
La vue 'Agent Control' permet de voir la liste des indicateurs
proposés par l'agent et de sélectionner ceux à collecter
:
Visualisation des indicateurs
Les indicateurs collectés peuvent être visualisés
graphiquement :
Conclusion
Le projet TPTP est un des projets majeurs de la fondation
Eclipse. Principalement focalisé sur les outils de tests et d'aide
à l'optimisation, il fournit des fonctionnalités plus larges
comme l'outillage de supervision présenté dans cette article.
Les versions récentes de TPTP proposent d'autres fonctionnalités
que nous présenteront dans un futur article, la plus importante
est un analyseur de code qui permet de vérifier, de façon
statique, la conformité du code à un ensemble de règles.
Il faut aussi noter une volonté d'intégration de TPTP avec
les projets WTP et BIRT : l'intégration avec WTP offre la possibilité
d'utiliser les fonctionnalités de 'Profiling' sur des applications
s'exécutant dans un serveur J2EE, l'intégration avec BIRT
permet de générer des rapports à partir des informations
collectées par l'outillage de TPTP.
Plus d'informations:
- La page d'Eclipse
TPTP.
- Les
news d'EclipseTotale concernant Eclipse TPTP.
|