Question

Il semble y avoir beaucoup d'outil de test de stress / charge qui prennent en charge AJAX.
Je me demande comment bien ces outils mis en œuvre.

Ont-ils seulement enregistrer requête http et rejouer?
Est-ce la bonne façon de tester l'application AJAX?
Comment tester leurs applications Google ajax?

Était-ce utile?

La solution

Si vous êtes inquiet au sujet de la fonctionnalité que, quelque chose comme Watin , Watir , sélénium ou tout fonctionnel outil pour cette question fonctionnerait. Tant que vous mettez dans vos temps suffisamment tests fonctionnels pour permettre callbacks ajax cela devrait faire l'affaire.

Pour ajouter à ma réponse,

Si vous parlez de tests unitaires javascript vous pouvez utiliser quelque chose comme QUnit comme décrit par un collègue LosTechian dans cette annonce . Ceci est une utilisation assez inventive d'un add-in nunit et QUnit pour intégrer les tests unitaires de.

Par pure coïncidence, la même personne qui a posté ce poste blog de test QUnit vient d'afficher un hier sur cette très sujet

Autres conseils

La plupart des outils de test de charge là-bas faire la charge AJAX test de la même manière: ils exécutent le trafic HTTP brut qui est vu lors d'une phase « d'enregistrement » (qui peut être demandes de page, les demandes d'images, ou même les requêtes AJAX). La principale différence entre eux est la qualité de leur enregistreur / outil IDE est et la facilité avec laquelle il vous aide à paramétrer les requêtes HTTP de sorte qu'ils reflètent le trafic réel en fonction des résultats dynamiques / en temps réel.

Attention, la fiche flagrante : La seule véritable exception à cette règle est mon entreprise, BrowserMob . Au lieu de simuler le trafic observé, il utilise en fait de vrais navigateurs web pour repousser la charge. En tant que tel, les choses AJAX est géré par le navigateur.

Lien utile : séparée du bouchon flagrante ci-dessus (bien que j'espère que vous le vérifier - nous sommes à l'avant avec le prix et de fournir un essai gratuit), je l'ai écrit récemment un article Ajaxian sur le test de charge AJAX . Il va pour plus de détails sur les implications techniques de l'utilisation des utilisateurs du navigateur réel (RBU) par rapport aux utilisateurs virtuels (UEV).

Jetez un oeil à LoadBooster ( https://www.loadbooster.com ). Il utilise PhantomJS / CasperJs navigateur scriptable sans tête pour tester les sites Web. PhantomJS analysera et de rendre chaque page, exécutez le script côté client. L'approche du navigateur sans tête est plus facile d'écrire des scénarios de test pour soutenir AJAX complexe lourd application Web 2.0, navigation du navigateur, cliquez sur la souris et les frappes dans le navigateur ou attendre jusqu'à ce qu'un élément existe dans DOM. LoadBooster soutien trop script HTML de sélénium.

Disclaimer: Je travaille pour LoadBooster.

Google Apps sont écrits dans GWT, qui vient avec sa propre extension à JUnit. article sur les applications ajax tests unitaires avec GWT .

Si vous ne voulez pas configurer votre propre serveur de test de charge il y a un couple de services de test de charge en ligne gratuit qui peut exécuter des tests de charge directement sur Internet. Par exemple http://loadimpact.com ou http://loadstorm.com

Je l'ai utilisé Générateur utilisateur virtuel, qui est une partie du logiciel LoadRunner de HP, pour tester les applications AJAX. Le logiciel dispose de plusieurs protocoles d'application qui peuvent être utilisés pour enregistrer des applications Web, par exemple AJAX, et cliquez sur et script.

il suffit de tester pour la majorité de la charge d'applications Web pour enregistrer et rejouer les requêtes HTTP. Cela donnera le résultat de la façon dont les serveurs gèrent la charge. Si votre application Web fait beaucoup de chargement asynchrone, et le rendu du côté client, par exemple l'analyse syntaxique de grands ensembles de données XML ou JSON, ou de nombreuses modifications DOM, il peut être pertinent d'inclure le niveau du navigateur pour mesurer l'expérience de l'utilisateur final.

Tous les testeurs de charge appuieraient ils sont juste AJAX connexions supplémentaires http.

Il y a quelques uns gratuits sur there- Jmeter , BadBoy , Grinder que font tous bien.

Tous ont une sorte de support pour l'enregistrement / lecture, mais ce n'est pas toujours ce que vous cherchez.

meilleure façon que je l'ai fait est d'enregistrer une session d'exemple, remplacer quelques params avec des variables et en boucle hors d'un fichier csv ou Excel.

excellent point de départ: vidéo d'une présentation Google sur les tests open source <. / p>

Edit: lien vidéo mis à jour

.

Je l'ai utilisé SilkPerformer à un emploi précédent . Selon le lien, ils ont quelques améliorations AJAX. Malheureusement, la soie est loin d'être libre.

Consultez Jiffy . Il est une mesure de bout en bout la suite, et est par la suite type de complexe. Cependant, les statistiques sont assez impressionnants.

Siege ? il peut faire des tests HTTP et passer ce que vous voulez.

Vous pouvez également consulter fwptt il est open source. Si vous êtes un développeur .net vous pouvez utiliser des paramètres de manutention automatique et la possibilité d'utiliser votre propre objet .net pour faire les tests.

Je l'ai utilisé avec succès JMeter pour charger tester notre application Ajax (JSF / RichFaces). Je ne l'ai pas pris la peine avec l'outil d'enregistrement de JMeter -. Plutôt je le plug-in pour Firefox HttpFox pour surveiller ce que le navigateur est POST-ment au serveur et je recréée dans ce JMeter

Il a fait obtenir un peu complexe, mais le test de charge est maintenant assez robuste. JMeter a toutes sortes de « éléments » utiles pour extraire ID de partir d'une page Web, effectuez une logique conditionnelle, les compteurs d'incrément etc.

Une meilleure méthode de test isolé d'écriture ou de l'API pour les tests de charge application ajax. Il y a quelques raisons:

  • Il est pas si facile d'écrire des tests fonctionnels pour des applications Ajax, par exemple pour GWT.
  • Vous pouvez utiliser Jmeter plug-in WebDriver , mais pour chaque essai démarre navigateur qui utilisera la plupart de RAM et CPU.
  • Vous chargera backend pas frontend, afin de vous éviter ajax.

Vous pouvez Devide vos tests comme ça: pour une application Ajax utilisation Sélénium ou PhantomJS / CasperJS. Pour les tests de charge utiliser JMeter, Gatling via l'API non via Ajax.

Mon choix est Firebug (addon du navigateur). son très léger à manipuler et facile

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top