none
Test d'initialisation dans le test mix d'un test de charge RRS feed

  • Question

  • Bonjour !

     

      J'utilise la version d'évaluation de VIsual Studio 2008 Team System Team Suite.

     

      Dans mon test de charge, j'ai mis un test d'initialisation (un test  web qui établit la connexion sur mon site web) et j'ai mis dans mon test mix un test web qui doit effectuer une opération en boucle.

     

      Le problème qui se pose est qu'à chaque itération, le test d'initialisation est effectué alors qu'il devrait s'effectuer qu'une seule fois lors de la première itération.

     

      J'ai essayé de jouer avec le "pourcentage de nouveaux utilisateurs" en essayant 0%, 1%, 80%, 100% mais ça ne change rien.

     

      J'ai également essayé de modifier le type de test mix (basé sur le nombre d'utilisateurs virtuels ou sur le nombre de tests).

     

      Y'a-t-il quelque chose que je n'ai pas compris dans le principe du test d'initialisation ou y'a-t-il un bug ?

     

      Merci pour votre aide.

    • Déplacé Shrikant Maske mercredi 19 janvier 2011 21:54 Forum consolidation (Origine :Visual Studio Team System)
    mardi 25 mars 2008 09:49

Toutes les réponses

  • Pour le cas présent, le test d'initialisation ne doit pas etre présent dans le test mix, est ce le cas?

     

    dimanche 30 mars 2008 22:57
  • Mon test d'initialisation n'est pas présent dans le mix.

     

    Il est mis uniquement dans la partie "initialize and terminates test" du test mix

    mercredi 2 avril 2008 10:11
  • Bonjour,

     

    Les tests d'initialisation et de finalisation sont exécutés respectivement avant le premier test de et après le dernier test de chaque utilisateur.

     

    Par contre, si tu met 100% de nouveaux utilisateurs, ces tests seront exécutés avant et après chaque test.

    lundi 14 avril 2008 15:42
  •  

    Je suis tout à fait d'accord avec votre réponse !

     

    Le problème est que l'on mette 0%, 1% ou 100% de nouveaux utilisateurs, mon test d'initialisation est fait à chaque test et non uniquement à chaque nouvel utilisateur (dans le cas de 0%).

     

    Pour être plus précis, voici le test que je veux faire :

    - J'ai une source de données avec 10 utilisateurs différents.

    - Je veux tester mon site web avec 30 connexions max (3 connexion par utilisateur donc) pendant 8 heures.

    - Mon script d'initialisation gère la connexion et mon test mix gère mon test.

     

     

    mercredi 16 avril 2008 08:38
  • Qu'est-ce qui vous fait dire que votre test d'initialisation est exécuté à chaque test?

     

    Attention, la notion de % de nouveaux utilisateurs n'a pas de rapport avec la notion d'utilisateurs de votre site web. Il s'agit de session client.

     

    lundi 21 avril 2008 13:39
  • Le test d'initialisation est un script de connexion. La connexion inscrit dans ma base de données l'utilisateur connecté et à quelle heure il s'est connecté et à quelle heure il s'est déconnecté.

     

    Je constate dans ma table de connexion que j'ai les connexions "normales" des nouveaux utilisateurs (sessions client) qui viennent s'ajouter toutes les 10 secondes environ et qu'en plus j'ai des connexions qui se renouvellent, c'est à dire que dès qu'une itération est terminée et bien j'ai une nouvelle connexion qui apparait.

     

    J'ai pour ainsi dire pas mis de limite sur le nombre d'utilisateurs max (j'en ai mis 10000 mais mon site web plantera avant).

     

    Je veux en fait faire rentrer 1 utilisateur toutes les 10 secondes dans une boucle jusqu'à ce que mon site se ramasse en ne supportant pas la charge.

     

    Je veux ce schéma là :

     

    util 1 : connexion -> test boucle -> test boucle -> test boucle...

     

    util 2 10 secondes plus tard : connexion -> test boucle -> test boucle ...

     

    util 3 ...

     

    jusqu'à ce que le site web tombe

     

    et pour l'instant j'obtiens :

     

    util 1 : connexion -> test boucle -> connexion -> test boucle

     

    util 2 10 secondes plus tard : connexion -> test boucle -> connexion ...

    mardi 22 avril 2008 12:33
  • Bonsoir,

     

    La solution consiste dans ce cas à créer un test ordonné (Ordered Test). Le premier test sera un test web simple ne présentant d'interêt que pour une première exécution du site et donc du chargement de l'application. Le second sera le test de montée en charge déjà créé.

     

    Cela conviendrait il?

    jeudi 24 avril 2008 22:05
  • Bonjour

     

       Eh bien non ça n'irait pas !

     

       Il me faut mon test de connexion et ensuite que le test de charge fasse en boucle mon second test. C'est possible de le faire dans un test ordonné mais pour un nombre fini d'exécutions de mon second test. Dans mon cas, le second test doit s'exécuter x fois, jusqu'à ce que mon site web tombe.

     

       Je ne comprends pas pourquoi ça ne marche pas avec la méthode que j'ai utilisée : un test dans l'initalisation et un test dans le test mix de mon test de charge. Je pensais qu'en jouant sur le % de nouveaux utilisateurs, le test de charge une fois qu'il aurait terminé un cycle exécuterait le test d'initialisation à nouveau s'il considère qu'il s'agit d'un nouvel utilisateur (nouvelle session) ou bien il réexécuterait le test du test mix s'il considère qu'il n'y a pas de nouvel utilisateur et donc qu'il s'agit toujours de la même session. Pouvez-vous me confirmer que sur le principe j'ai bien compris ?

     

    Merci pour votre aide.

     

     

    lundi 5 mai 2008 12:51
  • Vous avez parfaitement compris le principe.

     

    Ce que j'ai du mal à comprendre, c'est pourquoi ça ne se comporte pas correctement chez vous. Est-ce que vous avez essayé avec un pattern de charge constante avec 1 utilisateurs, pour voir si le script d'initialisation est effectivement appelé une seule fois?

    mardi 6 mai 2008 10:38
  • Bonjour,

     

     Le test avec 1 utilisateur marchera. En effet, j'ai un autre test de charge limité à 30 utilisateurs. Lorsque ce nombre est atteint, mon test de connexion ne se fait plus (je retrouve bien mes 30 connexions ouvertes dans ma base de données), seul le test de mon test mix est exécuté, en boucle. Dans ce cas là ça marche.

    J'ai au final l'impression que c'est le paramètre "% de nouveaux utilisateurs" qui n'est pas pris en compte. Que ce soit 0, 1 ou 100 il considèrera qu'il s'agit d'un nouvel utilisateur, tant que la limite d'utilisateurs n'est pas atteinte.

     

    Pour en revenir au test de charge que je veux faire, je lui ai fixé une limite que je n'atteindrai jamais (10000) car je veux justement savoir combien d'utilisateurs mon site web peut supporter avant de se ramasser.

     

    Merci pour vote aide et votre patience !

    mardi 6 mai 2008 12:37
  • Je pense avoir enfin compris le souci ! il s'agit d'une mauvaise compréhension du paramètre "% De nouveaux utilisateurs".

     

    Ce paramètre définit le pourcentage d'utilisateurs pour lequel le "cache naviguateur" simulé doit être conservé entre deux exécutions de tests.

     

    Par contre chaque nouvel utilisateur est réellement un nouvel utilisateur, il n'a donc pas encore d'ancien "cache" et donc  l'initialisation est effectué avant sa première exécution de test.

     

    On peut se représenter ca comme si on avaient des personnes réelles exécutant les tests manuellement.

    On aurait soit :

    - chaque personne ouvre une première fois un naviguateur web et fait tout les tests dans cette instance de navigateur (0% de nouveaux utilisateurs).

    - chaque personne ouvre ferme et ouvre un nouveau navigateur entre chaque test (100% de nouveaux utilisateurs).

     

    Est-ce que c'est plus clair ?

    mardi 6 mai 2008 15:04
  • Merci pour l'explication mais il me semble que c'est ce que j'avais à peu près compris. Je ne comprends pas quelque chose : le test d'initialisation ne s'effectue que s'il s'agit d'un nouvel utilisateur non ?

    Donc si on met 0% alors d'après ce que je comprends lorsque un utilisateur aura terminé ses tests il recommencera les tests, sans exécuter le test d'initialisation car il aura un cache et ca ne sera pas un nouvel utilisateur.

    Or pour l'instant même en mettant 0% et bien lorsqu'un utilisateur a terminé ses tests il recommence mais en exécutant le test d'initialisation, comme s'il s'agissait d'un nouvel utilisateur.

    mardi 6 mai 2008 16:32