Scripting Vugen 11.52- Création et utilisation de DLL

Lorsque nous créons une librairie .h dans Vugen, nous aurons rapidement des problèmes de performance lors de l’utilisation de celle-ci qui ne nous permettra pas d’atteindre à terme l’exigence de transaction par seconde.

Pour augmenter la rapidité d’exécution de la librairie, la solution est de créer une DLL.

Les étapes sont les suivantes :

1 – Création d’une DLL avec Visual C++ 2010 Express
2 – Déterminer les DLL dépendantes  de la DLL à créer avec MS dependency walker
3 – Créer le script Vugen afin que celui-ci charge correctement la DLL lors d’un test unitaire et en charge

Etape 1 : Configuration de Visual C++ 2010 Express

Télécharger et exécuter la version gratuite Visual C++ 2010 Express

Fichier/Nouveau/Projet :

 

Coller le code :

Exemple complet de convertion Ebcdic/Ascii :  ebdicascii.h (Clic droit sur le fichier, enregistrer sous)

Ajouter les lignes (dont les définition des fonctions utilisées) en début du code source (la librairie lrun.h est présente dans l’installation de Vugen/Analysis) :

// Librairie Loadrunner

#include “C:\CreatDLL\lrun.h”

// Compilation avec Visual C++ 2010 Express

extern “C” __declspecdllexport ) int etoa(char* src, char *lrvar);

extern “C” __declspecdllexport ) int atoe(char* src, char *lrvar);

Créer un répertoire C:\CreatDLL qui contiendra toutes les librairies (DLL, lib, …). Ce répertoire devra être présent sur l’injecteur.

Ajouter le chemin vers la lrun50.lib (cette librairie n’est pas présente dans l’installation de Vugen/Analysis, mais elle est présente dans QTP), voici la V11 : lrun50.zip

Compiler :

Copier la Dll dans C:\CreatDLL.

Etape 2 : Déterminer les DLL dépendantes  de la DLL à créer avec MS dependency walker

Charger la Dll avec Dependency Walker :

Copier toutes les DLL manquantes dans C:\CreatDLL jusqu’à ce qu’il n’y ait plus d’erreurs. (les DLL doivent toutes être en 32 bits x86).

Etape 3 : Création d’un script utilisant la DLL

Dans un script Vugen (Web Html/Http), ajouter les lignes suivantes (en commençant par les DLL dépendantes puis notre dll créée).

Action()

{

    lr_load_dll(“C:\\CreatDLL\\IEShims.dll”);
lr_load_dll(“C:\\CreatDLL\\msvcr100d.dll”);
lr_load_dll(“C:\\CreatDLL\\shlwapi.dll”);
lr_load_dll(“C:\\CreatDLL\\sysntfy.dll”);
lr_load_dll(“C:\\CreatDLL\\ebcdicascii.dll”);

lr_start_transaction(“EbcdicToAscii”);
etoa(lr_eval_string(“{Ebcdic}”), “Ascii” );
lr_end_transaction(“EbcdicToAscii”,LR_AUTO);

lr_output_message(“Resultat Ascii: %s”, lr_eval_string(“{Ascii}”) );

lr_start_transaction(“AsciiToEbcdic”);
atoe(lr_eval_string(“{Ascii}”), “Ebcdic”);
lr_end_transaction(“AsciiToEbcdic”,LR_AUTO);

lr_output_message(“Resultat Ebcdic: %s”, lr_eval_string(“{Ebcdic}”) );

return 0;
}

Résultat : 

Un Commentaire

  1. Philippe Naveau le

    Bon article, il faudrait le même en 64 bits.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

Partagez
Tweetez
Partagez