J'ai été chargé de rechercher une solution de test de performance pour l'une de nos applications Java fonctionnant sur un serveur Weblogic. L'exigence consiste à enregistrer les demandes de production (GET et POST, y compris les données POST), puis à exécuter ces demandes dans un environnement de test de performances avec une copie de la base de données de production.Application de test de performance pour goulots d'étranglement utilisant des données de production
Les raisons d'utiliser des demandes de production au lieu d'un script de test sont:
- Il est une grande application avec pas de scripts de test existants de sorte qu'il serait aa grande quantité de travail pour écrire des scripts pour couvrir l'ensemble de l'application .
- Certains problèmes de performances apparaissent uniquement lorsque les utilisateurs effectuent un certain nombre d'actions dans un ordre particulier.
- Pour tester en utilisant l'interaction réelle de l'utilisateur avec le système pas une estimation de la façon dont les utilisateurs peuvent interagir avec le système. Nous savons tous que les utilisateurs feront des choses auxquelles nous n'avons pas pensé.
- Je souhaite pouvoir résoudre les problèmes de performances et réexécuter les requêtes par rapport au code fixe avant de passer en production.
J'ai regardé en utilisant JMeters Access Log Sampler avec les journaux d'accès au serveur mais les journaux d'accès ne contiennent pas de données POST et l'échantillonneur de journal d'accès ne porte que sur l'URL de la requête ne peut donc pas simuler les utilisateurs qui soumettent des données de formulaire.
J'ai également examiné l'utilisation du serveur proxy HTTP JMeter mais cela peut enregistrer les actions d'un seul utilisateur et nécessite que l'utilisateur configure son navigateur pour utiliser le proxy. Cette même limitation existe avec Tsung et The Grinder.
J'ai examiné Wireshark et TCReplay mais l'enregistrement au niveau du paquet est excessif et ne donnera aucun rapport utile au niveau de la requête. Y at-il un meilleur moyen d'analyser les performances de production, étant donné que je dois être en mesure de tester les correctifs avant de passer à la production?
Merci pour la bonne réponse Nat. Je pense que la meilleure option est d'utiliser un filtre de servlet Weblogic. Cela me donne accès à l'objet ServletRequest que je peux ensuite extraire les données POST et d'autres détails et les écrire dans un journal. Je peux ensuite utiliser les données du journal en entrée de l'application. Cela aura un impact sur les performances inconnu. Heureusement, il suffira de fonctionner pendant une courte période pour obtenir un échantillon d'interaction de production. – JosephL