Outils pour utilisateurs

Outils du site


performance:loadrunner

Ceci est une ancienne révision du document !


LoadRunner

Cette page rassemble les trucs et astuces pour le produit HP LoadRunner.
Un bon document de base à lire : hp_loadrunner_v11_00_-_ajax_truclient_tips_and_tricks.pdf

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.

Utiliser la fonction suivante :

web_save_timestamp_param("tStamp", LAST);

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.

	char timestamp[16];

	typedef long time_t; 

    struct _timeb { 

        time_t time; 

        unsigned short millitm; 

        short timezone; 

        short dstflag; 

    }; 

    struct _timeb t; 

   // tzset(); // Sets variables used by ftime 

Ensuite à chaque fois que vous avez besoin d'un timestamp, il faut utiliser le code suivant :

    ftime( &t ); 
	sprintf(timestamp, "%ld%03u", t.time, t.millitm); 
	lr_save_string(timestamp, "montimestamp01");

Il vous reste enfin à utiliser la variable montimestamp01 ainsi créée là où cela s'avère nécessaire.

TruClient

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 :

Login=LR.getParam("LOGIN");

Ensuite dans l'objet à variabiliser, vous pouvez utiliser la variable javascript Login que vous venez de définir.

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 :

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");
}

Il ne reste plus qu'à ajouter la ligne suivante au début du script en mode développement, dans un objet Evaluate Javascript :

setLanguage("fr, fr-FR");

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.

/*<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;
}

É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.

LR.log("Votre message", "Warning");

level peut prendre les valeurs suivantes :

  • Error
  • Warning
  • Standard
  • Extended
  • Status

Erreurs

Error -27778

Error -27778: SSL protocol error when attempting to connect with host "bdc.zazmiz.net"  	[MsgId: MERR-27778]

Sur beaucoup de pages sur Internet, cette erreur est provoquée par le manque d'un certificat client. Mais de mon côté j'ai rencontré cette erreur avec une application qui utilisait uniquement un certificat côté serveur. Le problème se produisait quand je simulais le user-agent Mozilla/5.0 (Windows NT 6.0; rv:6.0.2) Gecko/20100101 Firefox/6.0.2, mais pas en simulant un Internet Explorer 7. J'ai fini par identifier que cela venait du fait que le serveur apache avait été configuré pour accepter uniquement le cipher RC4-SHA (ou RC4 128 bits). Or LoadRunner n'arrivait pas à se mettre d'accord avec le serveur sur le chiffrement à utiliser et provoquait donc l'erreur 27778.

Pour résoudre ce problème, il faut forcer LoadRunner à utiliser le bon chiffrement via la commande suivante en début de script :

web_set_sockets_option("SSL_CIPHER_LIST", "RC4-SHA");
performance/loadrunner.1387286331.txt.gz · Dernière modification : de youp3