6
votes

Toute suggestion pour un bon outil de test de charge Web automatisé?

Quels sont certains bons outils automatisés pour les applications Web de test de charge (test de contrainte), qui font pas d'enregistrement et de replay des paquets de réseau HTTP?

Je suis conscient qu'il existe de nombreux outils de test de charge sur le marché qui enregistrent et replayent les paquets réseau HTTP. Mais ceux-ci ne conviennent pas à mon objectif, à cause de cela:

  • Le format de paquets HTTP change très souvent dans notre application (par exemple, quand Nous optimisons un appel AJAX). Nous ne voulons pas adapter à tous les scripts de test juste parce que Il y a un léger changement de format de paquets HTTP.

  • Notre équipe de test n'a pas besoin de connaître des internes sur notre application écrire leurs scripts de test. Un outil qui rejoue des paquets HTTP nécessite toutefois l'équipe de connaître le format des demandes et des réponses HTTP, de telle sorte qu'ils peut adapter les détails des paquets HTTP rejoué (par exemple le nom d'utilisateur).

    L'outil de test de charge automatisé que je cherche devrait pouvoir laisser l'équipe de test écrire des scripts de test "boîte noire" tels que:

    • Invoquer la page Web sur URL http: // ... .
    • Tout d'abord, entrez xxx dans le champ texte xxx .
    • Ensuite, appuyez sur le bouton xxx .
    • Attendez que la réponse ait été reçue de Web Server.
    • Vérifiez que le champ de texte xxx contient maintenant le texte xxx .

      L'outil doit être capable de simuler jusqu'à plusieurs 1000 utilisateurs, et il doit être compatible avec les applications Web à l'aide de ASP.NET et AJAX.


1 commentaires

J'ai voté les réponses recommandant Watin and Pushtotest, car ces outils n'utilisent pas l'approche "Enregistrement HTTP et Répondre". Malheureusement, je ne peux que marquer l'une des deux comme réponse.


5 Réponses :


1
votes

Une licence peut être coûteuse pour cela (si vous n'avez pas de MSDN), mais Visual Studio 2010 Edition ultime a un excellent ensemble d'outils de test de charge et de contrainte qui font ce que vous décrivez. Vous pouvez l'essayer gratuitement pour 90 jours ici.


1 commentaires

J'ai déjà vérifié ça; Test de charge Visual Studio, Toutefois, utilise l'approche de l'enregistrement HTTP et de la réponse, que je souhaite éviter.



0
votes

Il y a quelques approches; J'ai été dans des situations, cependant, où j'ai dû faire rouler mes propres utilitaires génératrices de charge.

En ce qui concerne votre script de test, cela implique:

  • Envoi d'une demande d'obtention de http: // Former la page de saisie (seulement vérifier si une réponse de 200 est donnée)
  • Envoi d'une requête postale à http: // Formulaire de soumission de la page avec des paires de clé / valeur pré-générées pour le texte XXX et effectuez un chèque RegExP sur la réponse

    Sauf si votre page Web est complexe Ajax, il n'est pas nécessaire de "simuler un bouton Appuyez sur" - Ceci est pris en charge par la demande postale.

    Étant donné que votre test est constitué d'un processus en deux étapes, plusieurs packages de charge automatisés pouvaient le faire.

    J'ai déjà utilisé HTTPERF pour tester le chargement d'un grand site web : Il peut simuler une session composée de plusieurs demandes et peut simuler simultanément un grand nombre d'utilisateurs (sessions). Par exemple, si votre site Web a généré un cookie de session de la page d'accueil, vous pourriez faire que la première demande, HTTPERF utiliserait ensuite ce cookie pour des demandes ultérieures, jusqu'à ce qu'elle ait fini de faire la liste des demandes fournies.


3 commentaires

En fait, je veux éviter d'envoyer des obtentions / postes au niveau HTTP (voir ma question).


Votre page est une page complexe Ajax. Vous devez savoir qu'il n'y a pas de langages de programmation pouvant imiter un navigateur JavaScript. Votre meilleur pari consiste à installer plusieurs ordinateurs exécutant de nombreux instances de votre navigateur préféré contrôlé par un script écrit personnalisé qui communique avec votre navigateur préféré. Naturellement, il s'agit d'une énorme quantité de travail et vous trouverez donc la plupart des administrateurs de système pragmatique utilisent une approche plus simplifiée pour les tests de charge.


En réalité, courir 1000 pcs par utilisateur dans le cloud de calcul élastique d'Amazon est une chose que nous avons déjà pensée. Le prix serait ok pour nous, mais nous préférerions une solution interne. Un outil de test de charge qui émule un navigateur JavaScript est exactement ce que je cherche. Je pense que cela ne peut pas être difficile à mettre en œuvre un tel outil, car l'outil n'a fondamentalement pas à prendre en charge JavaScript (par exemple, utiliser le moteur de script libre de Microsoft) et comprendre le DOM. Toutes les parties complexes telles que CSS ou Rendu ne seraient pas nécessaires dans un tel outil de test de charge.



2
votes

JMeter J'ai trouvé très utile, il dispose également d'une fonctionnalité d'enregistrement pour enregistrer les cas d'utilisation afin que vous n'ayez pas à spécifier manuellement ou post manuellement, mais plutôt "cliquer" le cas d'utilisation une fois, puis laissez la répétition de JMeter il.
http://jmeter.apache.org/


1 commentaires

Malheureusement, cet outil tombe également dans la catégorie HTTP Record + Replay, que je souhaite explicitement éviter.



0
votes

testmaker by pushtotest.com peut exécuter des scripts enregistrés tels que le sélénium ainsi que de nombreuses langues différentes telles que HTML, Java, Ruby, Groovy, .NET, VB, PHP, etc. Il possède une infrastructure de reporting courante et vous pouvez créer une charge. dans votre laboratoire de test ou à l'aide d'environnements de test en nuage tels que EC2 pour les laboratoires de test virtuels.

Ils fournissent des webinaires gratuits à l'aide d'outils de test open source sur une base mensuelle et il y en a un mardi prochain.

http://www.pushtotest.com


1 commentaires

Toutes les cinq de vos réponses, recommandez TestMaker / Pushtotestest. Dans l'intérêt de la divulgation complète, vous souhaiterez peut-être inclure une responsabilité de non-responsabilité si vous êtes associé au produit.



0
votes

0 commentaires