Outils pour utilisateurs

Outils du site


performance:loadrunner

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
performance:loadrunner [20.10.2011 11:47] – Création de la page youp3performance:loadrunner [19.12.2013 16:52] (Version actuelle) – Ajout de l’astuce pour qu’une transaction se termine avec succès youp3
Ligne 1: Ligne 1:
 ====== LoadRunner ====== ====== LoadRunner ======
-Cette page rassemble les trucs et astuces pour le produit HP LoadRunner+Cette page rassemble les trucs et astuces pour le produit HP LoadRunner.\\ 
 +Un bon document de base à lire : {{:performance:hp_loadrunner_v11_00_-_ajax_truclient_tips_and_tricks.pdf|}}
 ===== Timestamp en millisecondes ===== ===== Timestamp en millisecondes =====
 Le timestamp généré par LoadRunner est exprimé en secondes. Si vous avez une application utilisant des timestamp en millisecondes, voici un moyen pour en générer. Le timestamp généré par LoadRunner est exprimé en secondes. Si vous avez une application utilisant des timestamp en millisecondes, voici un moyen pour en générer.
  
 +Utiliser la fonction suivante :
 +<code>web_save_timestamp_param("tStamp", LAST);</code>
 +Ensuite, il suffit d'appeler de manière classique la variable //tStamp// là où vous voulez l'utiliser.
 +
 +==== Alternative possible ====
 Il faut commencer par insérer le code suivant en début de script. Il faut commencer par insérer le code suivant en début de script.
 <code> char timestamp[16]; <code> char timestamp[16];
Ligne 29: Ligne 35:
  lr_save_string(timestamp, "montimestamp01");</code>  lr_save_string(timestamp, "montimestamp01");</code>
 Il vous reste enfin à utiliser la variable //montimestamp01// ainsi créée là où cela s'avère nécessaire. Il vous reste enfin à utiliser la variable //montimestamp01// ainsi créée là où cela s'avère nécessaire.
 +
 +===== TruClient =====
 +===== Transaction =====
 +Pour qu’une transaction se termine correctement (si elle s’est bien déroulée), il faut absolument mettre un objet //Verify// __juste avant la fin de la transaction__. Attention, ne fonctionne pas si le Verify se trouve dans une boucle //For// ou une condition //If//.
 +
 +==== Utiliser une variable LoadRunner ====
 +Définissez votre variable de manière classique, dans le VUGen.
 +Si par exemple votre variable LR se nomme LOGIN, ajoutez un objet //Evaluate Javascript// juste avant l'objet dans lequel vous souhaitez utiliser la variable :
 +<code>Login=LR.getParam("LOGIN");</code>
 +Ensuite dans l'objet à variabiliser, vous pouvez utiliser la variable javascript //Login// que vous venez de définir.
 +
 +==== Wait randomisé ====
 +TruClient ne permet pas de randomiser les temps d’attentes au niveau des paramètre de tir, en définissant un pourcentage de variabilité, comme dans les scripts web (HTTP/HTML). Il est néanmoins possible de se rapprocher de ce comportement en remplaçant la valeur d’un Wait avec un code de ce genre :
 +<code>Math.floor (11*Math.random () +5);</code>
 +Dans cet exemple, cela donne un temp compris entre 5 et 15 secondes, puisque le 11*Math.random () retourne un aléa dont la valeur est comprise entre 0 et 10 inclus.
 +
 +==== Écriture dans les logs ====
 +Pour facilité le débogage de vos scripts, il est toujours intéressant de pouvoir écrire dans les logs du script exécuté. Pour cela, il faut utiliser la commande //LR.log(text, level)//. La commande suivante écrit le message « Votre message » en tant qu’avertissement. Le script continuera donc son exécution.
 +<code>LR.log("Votre message", "Warning");</code>
 +level peut prendre les valeurs suivantes :
 +  * Error
 +  * Warning
 +  * Standard
 +  * Extended
 +  * Status
 +
 +==== Boucle While ====
 +TruClient ne propose pas la boucle While pour l’organisation du code. Il est cependant possible d’obtenir le même résultat avec une boucle For, dans laquelle il faut uniquement remplir le champ Condition des Arguments.
 +Ce qui donne par exemple :
 +<code>For ([Init]; getStyle("popup_message","display") != "none"; [Increment])</code>
 +
 +==== Modifier des paramètres Firefox pendant le tir ====
 +TruClient est assez pauvre en ce qui concerne les options de réglage du navigateur Firefox. Il se limite principalement aux réglages du proxy. Alors comment faire pour modifier d'autres paramètres du navigateur pour qu'ils soient actifs durant le déroulement d'un scénario ?
 +
 +L'exemple utilisé ici permet de modifier, avec du javascript, la préférence de la langue à utiliser pour le contenu de la page web affichée. En effet s'il est possible d'installer dans le VuGen l'extension Firefox Quick Locale Sitcher, gérant les préférences pour la langue à utiliser pour le contenu des pages, le navigateur utilisé par les injecteurs lui est en anglais, avec l'anglais comme langage à utiliser par défaut. Dans about:config de Firefox, ce paramètre se nomme //intl.accept_languages//.
 +
 +Sur le VuGen, dans le fichier //JS-functions.js//, ajoutez la fonction suivante :
 +<code>function setLanguage(value) {
 + var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nslPrefService);
 + var alPref = prefs.getBranch("intl.");
 + if (value)
 +   alPref.setCharPref("accept_languages", value);
 + else
 +   alPref.clearUserPref("accept_languages");
 +}</code>
 +
 +Il ne reste plus qu'à ajouter la ligne suivante au début du script en mode développement, dans un objet //Evaluate Javascript// :
 +<code>setLanguage("fr, fr-FR");</code>
 +Et voilà ! Maintenant le navigateur utilisera le français par défaut pour le contenu des pages.
 +
 +==== Trouver un ou plusieurs éléments grâce à la classe ====
 +Pour trouver un élément, il faut utiliser la fonction //document.querySelectorAll//.
 +<code>/*<div class="boite_alerte" style="display: block;">
 +* Certaines taches sélectionnées ont déjà été acceptées par un autre utilisateur </div>*/
 +
 +var results = document.querySelectorAll('div[class="boite_alerte"]');
 +var my_results="";
 +var valid_results=new Array();
 +var vr_i=0;
 +//window.alert(results.length);
 +for (var i = 0; i < results.length; i++) {
 +  if ( results[i].textContent.match(/Certaines taches sélectionnées ont déjà été acceptées par un autre utilisateur/)
 +       && document.defaultView.getComputedStyle(results[i],null).getPropertyValue("display") != "none" ) {
 +    valid_results.push(results[i]);
 +    //window.alert("Le contenu est : " + valid_results[vr_i].textContent);
 +    vr_i++;
 +  }
 +}
 +//for (var i = 0; i < vr_i; i++) {
 +//  my_results = my_results + valid_results[i].value + "\n";
 +//}
 +//window.alert(my_results);
 +
 +if ( valid_results.length > 0) {
 +  window.var_for=0;
 +  true;
 +}
 +else {
 +  //Permet de sortir de la boucle For
 +  window.var_for=1;
 +  false;
 +}</code>
  
 ===== Erreurs ===== ===== Erreurs =====
performance/loadrunner.1319111238.txt.gz · Dernière modification : de youp3