Labels

Friday, August 21, 2015

Loadrunner- Selecting random value through c code, Encoding

int AcctsCount, iStart, secAcct;
int ThinkTime =5;
int AccountCount,AccountCheck, IterationCount, Rand1, Rand2;
char FromAccount[20];
char ToAccount[20];
char RandomIndex[30];



correlation
---------
web_reg_save_param("Accounts",
 "LB=\"accountVal\":\"",
 "RB=\"",
 "Ord=All",
 "NotFound=warning",
 LAST);

 web_custom_request("ExecGetAccountDetailsAjax.do",
 "URL=http://{p_BaseUrl}/URI/ExecGetAccountDetailsAjax.do?action=INIT&transferType=INT",
 "Method=POST",
 "Resource=0",
 "RecContentType=text/xml",
 "Referer= http://{p_BaseUrl}/URIreferer.do",
 //"Snapshot=t209.inf",
 "Mode=HTML",
 "Body=",
 LAST);





AcctsCount = atoi( lr_eval_string("{Accounts_count}") );
 AccountCount=atoi( lr_eval_string("{Accounts_count}") );
   
 if (  AccountCount <= 4)  {
 lr_exit( LR_EXIT_ITERATION_AND_CONTINUE,
  LR_FAIL );
 }
 else
 {
  Rand1 = (rand() % ((AccountCount/2) -2 )) + 2;
 rand(  );
 rand(  );
 rand(  );
 rand(  );
  Rand2 = (rand() % ((AccountCount/2) -2 )) + 2;       
 rand(  );
 rand(  );
 rand(  );
 rand(  );
  AccountCheck=0;
  IterationCount=0;
  while (AccountCheck == 0) {
   IterationCount = IterationCount + 1;
   if (Rand1 == Rand2) {
    Rand2 = (rand() % ((AccountCount/2) -1 )) + 2;
 rand(  );
 rand(  );
 rand(  );
 rand(  );
   }
   else{
    AccountCheck = 1;
   }
   if (IterationCount == 10) {
    AccountCheck = 1;
 lr_exit( LR_EXIT_ITERATION_AND_CONTINUE,
  LR_FAIL );
   }
  }



/* sprintf( RandomIndex,"{Accounts_%d}",2 ); //3
 lr_save_string( lr_eval_string(RandomIndex),"FromAccount" );
 sprintf( RandomIndex,"{DisplayVal_%d}", 2 );//3
 lr_save_string( lr_eval_string(RandomIndex),"FromAccountDisplay" );
 sprintf( RandomIndex,"{TRANSFER_%d}", 2 );//3
 lr_save_string( lr_eval_string(RandomIndex),"TransferType" );
 sprintf( RandomIndex,"{Accounts_%d}",4 );
 lr_save_string( lr_eval_string(RandomIndex),"ToAccount" );
 sprintf( RandomIndex,"{DisplayVal_%d}",4 );
 lr_save_string( lr_eval_string(RandomIndex),"ToAccountDisplay" );
*/

 for(iStart=2;iStart<=AcctsCount;iStart++)
 {
  //sprintf(DisplayName, "DisplayVal_%d", iStart);
  //lr_paramarr_idx("DisplayVal", iStart);
  if((char *)strcmp(lr_eval_string(lr_paramarr_idx("Accounts", iStart)), "")!=0)
  {
   lr_save_string(lr_paramarr_idx("Accounts", iStart), "FromAccount");
   lr_save_string(lr_paramarr_idx("DisplayVal", iStart), "FromAccountDisplay");
   lr_save_string(lr_paramarr_idx("TRANSFER", iStart), "TransferType");
   secAcct=iStart+1;
   break;
  }
 }
 for(iStart=secAcct;iStart<=AcctsCount;iStart++)
 {
  //sprintf(DisplayName, "DisplayVal_%d", iStart);
  //lr_paramarr_idx("DisplayVal", iStart);
  if((char *)strcmp(lr_eval_string(lr_paramarr_idx("Accounts", iStart)), "")!=0)
  {
   lr_save_string(lr_paramarr_idx("Accounts", iStart), "ToAccount");
   lr_save_string(lr_paramarr_idx("DisplayVal", iStart), "ToAccountDisplay");
   //lr_save_string(lr_paramarr_idx("TRANSFER", iStart), "TransferType");
   //secAcct=iStart+1;
   break;
  }
 }




//Converting into Base-64 encoding
char *convert( char *src)
{
 int dest_size; 
    char *deststr;   
 
    // Allocate dest buffer 
     dest_size = 1 + ((strlen(src)+2)/3*4); 
     deststr = (char *)malloc(dest_size); 
     memset(deststr,0,dest_size); 
    base64encode(src, deststr, dest_size); 
     return deststr; 
}
void base64encode(char *src, char *dest, int len) 
// Encodes a buffer to base64 
 { 
 char base64encode_lut[] = { 
 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q', 
 'R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f','g','h', 
 'i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y', 
 'z','0','1','2','3','4','5','6','7','8','9','+','/','='}; 

   int i=0, slen=strlen(src); 
   for(i=0;i   { // Enc next 4 characters 
     *(dest++)=base64encode_lut[(*src&0xFC)>>0x2]; 
     *(dest++)=base64encode_lut[(*src&0x3)<<0x4 amp="" src="" xf0="">>0x4]; 
     *(dest++)=((i+1)>0x6]:'='; 
     *(dest++)=((i+2)   } 
   *dest='\0'; // Append terminator

}





//Preparing the query string & passing to base-64 encoding
char *getParam(char *str,
      char *param1,
      char *param2,
      char *param3,
      char *param4,
      char *param5,
      char *param6,
      char *param7,
      char *param8,
      char *param9,
      char *param10,
      char *param11,
      char *param12,
      char *param13,
      char *param14,
      char *param15,
      char *param16
      //char *param17,
      //char *param18,
       //char *param19,
       //char *param20
      //char *param16)

{
 char *temp;
 char *src, *target;
 char param[4000];
 temp="";
 src="";
 target="";
 temp=str;
 strcpy(param,"");
 strcat(param,temp);
 strcat(param,param1);
 strcat(param,param2);
 strcat(param,param3);
 strcat(param,param4);
 strcat(param,param5);
 strcat(param,param6);
 strcat(param,param7);
 strcat(param,param8);
 strcat(param,param9);
 strcat(param,param10);

 //strcat(param, "&fromAccount=");
 strcat(param,param11);

 //strcat(param, "&toAccount=");
 strcat(param,param12);
 //strcat(param, "&paymentamount=");
 strcat(param,param13);
    //strcat(param, "&initiationDate=");
 strcat(param,param14);
 //strcat(param, "&estArrivalDate=");
 strcat(param,param15);
 //strcat(param, "&businessDate=");
 strcat(param,param16);
  //strcat(param,param17);
  //strcat(param,param18);
  //strcat(param,param19);
  //strcat(param,param20);

     src=(char *) param;
 //lr_output_message(" Created param value %s",param);
    target=convert(src);
 return target;
}

QC and Load Runner Integratio​n


Got below response from one of the HP support personnel
You have to consider also the versions. LR 11 can only work with QC 10. Check the Controller and Vugen guide for more details.

If you are customer you can try posting on our internal forums for more personalized support.

LoadRunner:
http://h30499.www3.hp.com/t5/LoadRunner-Support-Customer/bd-p/loadrunner-support-customer-forum

Performance Center:
http://h30499.www3.hp.com/t5/Performance-Center-Support/bd-p/performance-center-support-customer

How to:
http://www.youtube.com/watch?v=4ChlysWupWM

If you find that this or any post resolves your issue, please be sure to mark it as an accepted solution