Test de charge GWT avec jmeter
J'ai une application GWT et que vous voulez pour tester la charge et de la fonctionnalité à l'aide d'un outil comme jmeter.
Je ne suis pas sûr jmeter est bon outil pour GWT. Quelqu'un peut-il me diriger vers un outil approprié ou peut me dire comment le faire avec jmeter?
Je veux tester la fonctionnalité de login: j'ai deux zone de texte "nom d'Utilisateur" et "Mot de passe" sur l'écran de connexion et que vous souhaitez tester combien d'utilisateurs peuvent se connecter simultanément, combien de temps un aller-retour vers le serveur qu'il faut. Ne sais pas comment jmeter peut obtenir 'nom d'utilisateur' et 'mot de passe' et le soumettre à la validation DB pour une application GWT?
Merci d'avance.
source d'informationauteur jaxb
Vous devez vous connecter pour publier un commentaire.
Je suppose que cela dépend exactement ce que vous voulez tester. Si vous voulez tester le code côté client aussi bien, quelque chose comme Selenium peut-être mieux.
Si vous voulez juste tester le back-end, cependant, vous pourriez avoir JMeter envoyer des requêtes HTTP via HttpClient ou quelque chose de similaire. Vous pouvez déterminer ce qui doit aller dans la requête à l'aide d'un proxy de débogage comme Fiddler.
Tests de GWT avec des solutions de test de charge basé sur HTTP formes comme JMeter ou le Sélénium peut être assez difficile en raison de l'évolution des interfaces utilisateur.
Sur notre projet, nous avons pris une autre approche.
À l'aide de la gwtrpccommlayer projet, nous appeler directement RPC servlets JUnit.
http://code.google.com/p/gwtrpccommlayer/
Cela signifie que nous pouvons re-utiliser notre serveur façades latérales de l'API dans notre test de charge des scripts, un maintien de ces scripts de code côté serveur évoluer.
Donc dans JUnit on peut lancer plusieurs threads à simuler plusieurs utilisateurs à l'aide de l'application et de collecter des statistiques.
En fait, la vraie complexité existe si votre application utilise GWT RPC, si c'est du JSON puis JMeter va faire le travail.
J'votre page de connexion n'est pas la première page ET que votre application utilise GWT RPC, alors vous aurez besoin d'un plugin pour JMeter qui gère la sérialisation ou de l'utilisation d'un autre outil (je ne sais pas de vrais outils gratuits qui font cela).
Il y a une solution commerciale appelée UbikLoadPack qui propose un plugin pour Apache JMeter de test de charge GWT et GWT RPC applications.
Vous pouvez avec le standard de la connaissance de Apache JMeter facilement:
Voir ce blog pour un tutoriel:
Et ce à des fins commerciales infos:
J'ai utilisé Le sélénium 2 des scripts de test écrit en Groovy, plus Gradle pour l'exécution en parallèle de test de charge, une application GWT récemment. Le blog suivant montre quelques résultats.
http://blog.oio.de/2011/04/19/load-testing-gwt-applications-with-selenium-2-and-gradle
J'ai eu le même problème pendant le test d'une application GWT avec jMeter j'ai donc écrit un bout de code qui ne GWT charge de la désérialisation, d'où vous permettant de paramétrer votre jMeter (ou tout autre) test de performance:
http://code.google.com/p/gwt-payload-deserializer/
Vue ReadMe.txt pour l'explication de tous les GWT-RPC charge utile des composants.
Tout en travaillant sur la base de gwt application, certains d'autorisation de demande de service peut être utilisé pour laquelle vous avez besoin de garder/utiliser le nom d'utilisateur & mot de passe dans un format crypté. Avec ces paramètres, vous serez en mesure de vous connecter à l'application via script jmeter. De plus, il pourrait y avoir des chances que quelques requêtes Post envoie des données dans le corps au lieu de Paramètre. C'est difficile à gérer si jmeter demande de faire passer, mais dans le réel les modifications apportées par le biais de script n'est pas visible sur l'INTERFACE utilisateur.
Il dépend de l'entretien. Nous avons un GXT application et même la JMeter Proxy HTTP enregistreur fonctionne très bien sur elle.
Mais son entretien est compromise puisque les Requêtes RPC utiliser un paramètre ("X-GWT-Permutation"), qui est l'id de l' .nocache.html fichier. Car il est généré avec un id différent pour chaque version, vous êtes susceptibles d'enregistrer de nouveau.
D'autre part, le sélénium fonctionne très bien. Obtenir une prise correctement à l'aide de sélecteurs dans selenese, et peut-être ensureDebugIds (GWT), et vous êtes susceptible d'être ensemble. Il est assez trivial pour écrire une .bocal en joignant une JUnit (3.8) de la suite de tests et l'enrouler autour de sélénium.
Comme une recommandation: Si vous êtes susceptible de faire plusieurs tests de charge avec le sélénium, je peux recommander Saucelabs Sauce à la Demande (saucelabs.com). Vous configurer SSH Proxy avec leur service et de leur EC2 sélénium instances se connecter à votre réseau intranet de l'app. C'est l'approche que nous sommes allés.
L'outil dont vous avez besoin est appelé NeoLoad (www.neotys.com/). Mais n'est pas libre 🙁 si vous voulez l'essayer, juste une fois, vous pouvez utiliser la licence d'essai de le donner à vous au départ.
Si vous n'avez pas besoin de quelque chose sofisticated vous pouvez utiliser Apache HTTPD-Test qui est Gratuit mais n'est pas que configurables comme Jmeter.
Espère Que Cette Aide.
Des acclamations.
Vous pouvez tester GWT dans LoadRunner à l'aide de l'GWT-DFE(format de données d'extension). Ce qui est inclus à l'intérieur de l'outil et de ne pas nécessiter un téléchargement séparé. Probable si vous vous posez des questions à propos de freeware LoadRunner est hors budget, mais je voulais mentionner qu'il est complet.
Une courte vidéo de démonstration peut être vu ici sur Youtube et la LoadRunner documentation d'aide contient plus de détails.