Le site francophone consacré au projet Eclipse et à OSGi
 
 

 

 

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

 

 


 

 

 

 


 

 

(c) EclipseTotale - contact(arobase)eclipsetotale.com