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

No comments:

Post a Comment