Spring Cache


Introduction

La mise en cache a toujours été un besoin important pour à la fois améliorer les performances d’une application et alléger sa charge de travail. De plus, son utilité est particulièrement évidente aujourd'hui avec les applications Web qui peuvent être amenées à gérer des milliers de visiteurs concurrents.D'un point de vue architectural, la gestion du cache est orthogonale à la logique métier de l'application et pour cette raison, elle devrait avoir un impact minimal sur le développement de l'application elle-même.

Lire la suite...

Mocks versus Stubs


Je vais m'essayer à un exercice très difficile qui consiste à faire un rappel sur un grand article de Martin Fowler et à le compléter de ma propre expérience.

Oui, je vois ce sourire naître au coin de vos lèvres et ce regard rempli d'espièglerie à l'idée de ne pas savoir si vous êtes tombé sur un très bon article ou bien sur une piètre et banale paraphrase …

Je relève donc le défi et voici mon propos, cher lecteur dubitatif et astucieux !

Lire la suite...

Flex et le mystère Mustella


Cela fait plusieurs fois que ce nom est mentionné dans les notes de version Apache Flex. Dans la toute récente version 4.9.0, une fois encore, il était question de : « The “Mustella” testing framework has been improved and many tests have been updated. ». Notez les guillemets entourant le nom du projet qui trahissent, sans doute, la part de mystère qui entoure ce projet.

Pour avoir tenté, à plusieurs reprises et en vain, d’insérer, dans l’intégration continue, des tests automatisés d’IHM sur des projets Flex avec FlexMonkey, FlexMonkium..., je suis devenu un peu sceptique sur ce type de frameworks. Pas tant au niveau de leur intérêt mais plutôt au niveau de l’usage et de leur rentabilité. Autant, les tests FlexUnit fonctionnent en standalone, sont efficaces, et restent acceptables sur le plan du maintien des jeux de tests.

Autant les outils de tests IHM sont souvent des usines à gaz qui nécessitent beaucoup d’intégration avec d’autres outils et les jeux de tests sont très couteux à maintenir. Ceci dit, je n’ai toujours pas renoncé, et l’annonce de ce nouveau framework a attiré mon attention. J’ai donc creusé un peu histoire de découvrir ce nouveau venu.

Lire la suite...

Testing SQL queries with Spring and DbUnit, part 2


The first part of this article covered the basics of the Spring TestContext Framework and DbUnit. We saw how to integrate DbUnit into a test to put the database into a known state before test methods are executed, to keep them isolated from each other. It worked great but this integration is too intrusive and does not scale when the number of test grows. This second part shows how to make the injection of test data into the database a cross-cutting concern, to let tests focus on their job and to allow them adding this feature with an optional, annotation-based configuration.

Lire la suite...

Testing SQL queries with Spring and DbUnit, part 1


SQL queries or any sort of persistence components are very common in enterprise applications. More generally, persistence is a critical part in applications and that's why it should be thoroughly tested, whether it uses plain SQL or object/relational mapping tools like Hibernate. This article covers how to leverage the Spring TestContext Framework and DbUnit to test the persistence layer of an application. This first part shows a straightforward yet functional integration of both frameworks. A second part will then show how to integrate DbUnit into the Spring test framework in a more flexible way.

Lire la suite...

Intégration du support de la JSR 223 dans JMeter


JMeter est un outil qui permet de faire du stress/load/performance testing sur différentes sortes d'applications dont des applications web, des applications de base de données, des web services, des annuaires LDAP, des applications de messagerie basées sur POP et IMAP. Il permet de simuler de la charge sur un serveur afin de tester la résistance et les performances de celui-ci selon différents types et quantités de charges.

Lire la suite...

Analyser vos résultats JMeter lors de stress tests


L'analyse des résultats constitue l'étape la plus importante lors de tests de charge. En effet, c'est à ce moment précis que les données récoltées doivent trouver tout leur sens et nous permettre d'effectuer des choix éclairés afin d'améliorer les performances des applications.

Dans ce billet, vous apprendrez à mettre en place une chaine d'analyse complète des résultats de tests de charge en utilisant exclusivement des outils Open-Source : JMeter, Talend, MySql et BIRT.

Vous remarquerez la "très forte similarité" avec une chaine Décisionnelle. En effet, pourquoi de telles capacités seraient exclusivement réservées aux choix métiers et non aux choix techniques ?

Lire la suite...

Monitoring de l’activité Hibernate, pistes d’optimisation


Cet article présente comment rendre plus transparente l’activité d’Hibernate afin de détecter un éventuel défaut de comportement de son application.

La persistance transparente est une fonctionnalité puissante mais qui mérite d’être surveillée. Combien d’objets, et de quel type, ont été chargés par l’application ? Quel objet a été modifié ? Quelle est la propriété qui a changé ? Quelle était la valeur avant la mise à jour et quelle est la nouvelle valeur ? Combien de requêtes SQL et quel temps d’exécution ?
Autant de questions auxquelles tente de répondre ZenTracker un outil de monitoring.

Lire la suite...