2009-01-30 10 views
10

Mon équipe agile ajoutera de nouvelles fonctionnalités à un site Web immobilier existant. Au fur et à mesure que nous ajoutons les fonctionnalités, nous souhaitons mieux gérer les performances globales du site ainsi que les performances de certaines pages. Je souhaite automatiser la collecte des métriques de performance sur une base de requête/réponse pour chaque page (par exemple quelles sont les sous-demandes envoyées par le navigateur, combien y en a-t-il, combien de données sont transférées et comment de temps a chaque demande prendre pour remplir). Firebug actuellement capture cette information dans son panneau net, cependant, je n'ai trouvé aucun moyen de tirer par programme cette information.Comment puis-je consommer les données du panneau réseau Firebug par programme?

Est-ce que quelqu'un connaît un moyen de retirer cette information après le chargement d'une page?

Nous courons actuellement nos tests d'acceptation des utilisateurs avec Sélénium et je l'ai envisagé d'ajouter cette fonctionnalité à l'interface de sélénium afin que nos tests pourraient courir et de recueillir les données sans démarrer tout autre service.

Toutes les suggestions sont les bienvenues, y compris celles qui s'appuient sur d'autres outils/méthodes pour rassembler les mesures de performance.

Merci.

Répondre

4

Jan Odvarko a écrit un Tutorial sur la façon d'utiliser la nouvelle fonctionnalité d'écoute au sein de Firebug pour connecter les résultats du panel net:

« Depuis Firebug 1.4a13 le panneau Net présente, entre autres, plusieurs nouveaux événements qui permettent de Cette fonctionnalité devrait être utile également dans les cas où les extensions Firebug veulent stocker des informations d'activité réseau dans une base de données locale ou les renvoyer au serveur pour une analyse plus approfondie. (Je pense aux statistiques de performance ici). "

+0

Très cool. Merci pour le lien. –

0

OK J'avoue que ce n'est pas une réponse directe, mais que diriez-vous d'aller directement à la source? Couper FireBug et aller au serveur web. Le serveur peut-il consigner les événements avec une granularité suffisante pour permettre le calcul des informations dont vous avez besoin? L'analyse du fichier journal en données utiles ne devrait pas être particulièrement difficile et a l'avantage d'être indépendante de la plate-forme utilisateur et a le potentiel de consigner un plus grand nombre de données que celui offert par FireBug (Awesome tool btw).

+0

Ce est certainement une option, cependant, étant donné notre configuration actuelle du serveur, nous ne capturons pas ces données. Merci pour la suggestion. –

1

Il existe un moyen d'utiliser ySlow pour balayer les données de performances vers une URL de votre choix. Il est pas bien documenté, la seule information que j'ai trouvé ici:

http://tech.groups.yahoo.com/group/exceptional-performance/messages/490?threaded=1&m=e&var=1&tidx=1

En dehors de cela, je regarderais en écrivant un plugin Firebug, je pense que vous pouvez accéder aux propriétés les plus Firebug. Voici un tutoriel: http://www.firephp.org/Reference/Developers/ExtendingFirebug.htm

+0

Très intéressant. C'est presque exactement le genre de chose que je cherchais. J'ai lu sur Firebug et FF plugins essayant de faire exactement cela. Merci pour le lien YSlow. –

2

Bien que ce ne soit pas directement une solution Firebug, peut-être que quelque chose comme Jiffy aiderait? Jiffy fonctionne à peu près comme une version serveur des outils de mesure de Firebug. Je ne l'ai pas encore utilisé en colère, mais il peut faire ce que vous cherchez?

http://code.google.com/p/jiffy-web/

Jiffy permet aux développeurs de:

  • mesure des pièces individuelles de rendu des pages (charge de script, exécution AJAX, chargement de la page, etc.) Sur chaque client
  • rapport ces mesures et d'autres métadonnées vers un serveur Web
  • total des journaux de serveur Web dans une base de données
  • générer des rapports
+0

Ma seule préoccupation avec une solution Jiffy est qu'elle semble exiger que le Jiffy .js et le code de signalisation soient injectés dans les pages de l'application. Étant donné la complexité existante de plusieurs de nos pages et le type de données d'interaction que nous recherchons, cela pourrait ne pas être réalisable. Bonne suggestion cependant. –

1

Ben, Je l'ai fait par étendu ProxyHandler de Selenium RC pour mettre en file d'attente les URL vues et ensuite vous permettre de les retirer via une autre API. Il nécessite que vous proxy tout, ce qui n'est pas le comportement par défaut de Selenium. La bonne chose est que Selenium finit par être à la fois le lieu de conduire l'automatisation et de recueillir les résultats observés.

Ceci est probablement une fonctionnalité que nous allons bientôt ajouter à Selenium RC juste après que nous obtenions 1.0 à la porte (nous sommes très proche)!

+0

Très cool. Juste aujourd'hui, je parlais avec un collègue de l'extension d'une API proxy qu'il avait écrite pour faire quelque chose de similaire ... notre seule préoccupation était l'intégration avec Selenium ou tout autre outil de test Web. Merci pour le conseil. –

+0

Ben - pas de problème. N'hésitez pas à m'envoyer un e-mail à patrick sur le site web de votre navigateur internet si vous avez besoin d'un exemple de code pour vous aider à démarrer. –

4

Jetez un oeil à l'extension NetExport pour Firebug.

Étapes:

  1. activer Autoexport dans les préférences (vous pouvez automatiser celui-ci aussi)
  2. choisir le dossier dans lequel les données doivent être ajoutées
  3. Lire le fichier
+0

D'accord, c'est cool. Le fichier peut être lu par programmation mais pour cela la page web particulière doit s'ouvrir dans FF. Donc, cela signifie que nous devons automatiser cela? – SilentAssassin