ENREGISTREMENT 2 Les options d enregistrem ent 2 1) Exemple en HTTP 2 2) Exemple avec un ERP 7 Les outils d enregistrem ent 9 La fin de l enregistrem ent 10 1) Exemple en HTTP 10 2) Exemple avec un ERP 12 La relecture et ses résultats 14 1) Exemple en HTTP 14 2) Exemple avec un ERP 21 EXEMPLE DE SCENARIO AVANCE 24 Fabien Pojé avril-mai 2005 Utilisation du logiciel IBM Rational TestManager
ENREGISTREMENT Les options d enregistrem ent Bouton d enregistrem ent d un script VU dans Rational Robot Bouton d accès aux options d enregistrem ent 1) Exemple en HTTP La méthode pour le protocole http est l enregistrem ent du réseau, c est ce qu on utilise pour capturer les trames http. [page 6-3 du Rational Robot User s Guide] Page 2 sur 24
On enregistre ce qui se passe entre la machine locale (toujours) et toute autre machine du réseau. On pourrait spécifier le serveur en indiquant son adresse IP en cliquant sur le bouton On clique sur le bouton New On peut effectuer un ping pour vérifier l existence de la machine sur le réseau On entre le nom réseau de la machine distante ou son adresse IP Page 3 sur 24
[page 6-15 à 6-21 du Rational Robot User s Guide] Les datapools permettent de paramétrer les scripts, il faut cocher la case Use datapools pour activer cette possibilité. Les préfixes des commandes ID sont suivis d un nom bre pour nom m er chaque com m ande du script, il est généré automatiquement si la case est laissée vide. Les vérifications du rejeu permettent de comparer les données SQL transmisent avec celles de l enregistrem ent, s il y a une différence, elle est spécifier dans le log lors du rejeu. Bind output : si cette option est décochée, le script est plus court mais les paramètres de retour doivent être entrés manuellement. Pacing : précise la façon dont est géré le tem ps d exécution, identique à l enregistrem ent pour per command, avec un temps moyen identique pour toutes les commandes avec per script, avec un temps moyen imposé pour none. CPU : en-dessous de la valeur entrée le tem ps d attente est considéré com m e un tem ps processeur, sinon c est un tem ps de réflexion de l utilisateur. Vide = 0 Think Maximum : temps de réflexion maximal possible. Vide = Page 4 sur 24
Les filtres permettent de choisir les protocoles utilisés : en manual filtering, il n y a pas de réglage, les protocoles reconnus nous seront proposés à la fin de l enregistrem ent ; en auto filtering, on peut choisir quels protocoles seront disponibles pour l enregistrem ent en en ajoutant ou en en enlevant via les boutons < et > (si un protocole se révèle nécessaire et n est pas sélectionné, l enregistrem ent sera im possible) *. Ici le protocole est http. * : il est possible de regénérer les scripts d une session, les scripts regénérés héritent des propriétés originales. Pour ce faire : 1. Dans Robot, cliquer Tools > Regenerate Test Scripts from Session. 2. Cliquer le nom de la session à utiliser. 3. Cliquer OK. Page 5 sur 24
partial responses : autorise des réponses partiels du serveur lors du rejeu. cache reponses : autorise un cache de la réponse différent lors du rejeu. redirects : autorise la redirection vers un autre serveur lors du rejeu. keep-alives : pour des connexions dans une session avec de multiples scripts, généralement on laissera cette case décochée. Correlate variables : on choisit si toutes, certaines ou aucune des variables non modifiables (par exemple une variable de type hidden dans un form) seront corrélées. Dans le script elles sont sous la forme SgenRes_001[]. On lance une session d enregistrem ent. On choisit l exécutable et ses param ètres : url du site à tester Page 6 sur 24
2) Exemple avec un ERP Les options d enregistrem ent (se référer à la partie HTTP pour les parties non réprésentées ici du fait de leurs similitudes) : Pour un ERP et en général, on utilise le mode API. Inutile ici, si l on utilise l enregistrem ent en m ode Network il faut préciser le nom de la base sur laquelle on se connecte. Page 7 sur 24
I ci l exécutable ne possède pas d argum ents. A savoir : un bug de l application rend nécessaire d utiliser le bouton Browse à chaque fois, m êm e quand l adresse est déjà renseignée. Page 8 sur 24
Les outils d enregistrem ent Différentes options utiles sont disponibles en phase d enregistrem ent : Déclenche un timer Commentaire Point de synchronisation Débute un bloc Options avancées Arrêt Split (découpage du scénario) Un timer permet de définir une zone du script qui sera chronométrée. Il faut indiqué le point de départ et le point d arrivé (il se trouve dans les options avancées). Un point de synchronisation permet de définir un endroit du script à partir duquel tous les utilisateurs repartiront en même temps. Un bloc permet une relecture plus facile du script (insère des commentaires de début et de fin permettant de délimiter une zone). La fonction SPLI T perm et d effectuer un long scénario et de le découper en plusieurs scripts sans interrom pre l exécutable. Page 9 sur 24
La fin de l enregistrem ent 1) Exemple en HTTP Comme nous sommes en filtrage manuel, tous les protocoles trouvés sont proposés, nous désélectionnons les protocoles parasites* si besoin est (ici SMB). Page 10 sur 24
* : un protocole parasite est reconnaissable grâce au nom du serveur (S) : ici le serveur avec lequel nous échangeons des données est la machine lf0306-20, les lignes avec un autre serveur doivent être déselectionner. On obtient le script suivant : Page 11 sur 24
2) Exemple avec un ERP Ici le protocole reconnu est ORACLE (requêtes SQL nécessite une licence particulière). Les protocoles peuvent être différents selon les applications. Page 12 sur 24
On obtient le script suivant : Astuce pour les connexions SQL : on remplace dans le script «LOOKUP_PWD» par le mot de passe (ici "MIRAGE") Page 13 sur 24
La relecture et ses résultats 1) Exemple en HTTP Nous rejouons le test : Bouton replay On lance le replay (clic droit sur le nom de la session dans la liste des suites) Page 14 sur 24
On choisit le nombre d utilisateurs * * : par défaut tous les utilisateurs agissent en même temps. Si vous voulez limiter le nom bre d utilisateurs simultanés, faites : Suite > Edit Runtime et choisir Start testers in groups (1) Page 15 sur 24
Page 16 sur 24
Page 17 sur 24
Identifions une commande qui a une réponse particulièrement lente : ici la commande avec l ID 297 a une réponse de 24.56 secondes alors que la moyenne générale est de 1.91 secondes. Page 18 sur 24
Recherchons cet ID dans le log : Clic droit puis properties Clic sur le bouton "Resp vs Time" puis View > Settings dans la barre de menu et choisir "Scatter" Page 19 sur 24
D après la docum entation web d I BM «Beyond Performance Testing», nous voyons que notre graphique se rapproche du cas «classic slowdown» : En voici l explication telle qu elle est donnée dans ce docum ent: What happened was that the application server became overutilized (both CPU and memory) under peak load. The response times began to improve as more users completed their transactions and exited the application (that is, as the total load decreased). This is typical behaviour. While oftentimes your test won't run long enough at lower loads at the back end to see the subsequent increase in responsiveness, it's typically there. I ci, l explication n est pas à prendre au pied de la lettre car nous utilisons un nombre restreint d utilisateurs. Page 20 sur 24
2) Exemple avec un ERP On rejoue le script Page 21 sur 24
Page 22 sur 24
Nous voyons que les erreurs sont dues à une ambiguité du scénario (la suppression d une entrée ne peut se faire que si elle existe, or dans notre scénario, nous devons supprimer des entrées mais une fois celles-ci supprimées, il est impossible de rejouer la même chose puisque les entrées ne sont plus accessibles ). Cela arrive souvent, il faut alors adapter le scénario ou paramétrer le script. Page 23 sur 24
EXEMPLE DE SCENARIO AVANCE Nous travaillons en HTTP, nous n utilisons qu une version de script dans ce test m ais pour un usage représentatif il faudrait créer tous les scripts correspondants aux réelles actions des usagers. Nous créons 3 groupes d utilisateurs (clic droit sur User Groups > I nsert) : un groupe d adm inistrateurs, un groupe de techniciens et un groupe de chefs d exploitation ; nous attribuons à chacun d entre-eux un nom et un nombre d utilisateurs Nous leur associons un scénario chacun (clic droit sur le groupe en question > Insert). Nous y ajoutons les scripts : il est possible de choisir si les scripts seront effectués en parallèle ou les uns à la suite des autres (clic droit > Insert > Selector choisir parallel ou sequential) Dans ce cas de figure complexe, des erreurs seront provoquées si tous les utilisateurs commencent des actions au même moment (à la même milliseconde erreur de type 403 Access Forbidden) ; pour éviter cela il faut effectuer la manipulation suivante : dans la barre des tâches, faire Suite > Edit Runtime et choisir Start testers in groups (1) Nous pouvons aussi rajouter des points de synchronisation pour faire de ce test un test de stress. Page 24 sur 24