LoadRunner中多值關聯的3種處理方式

testingbang發表於2019-08-16

需求:透過關聯取得的ParamName引數可能存在多個值,需要對每個ParamName引數值進行處理
指令碼:可透過3種不同的實現方式,將每個引數值作為HTTP請求內容發出

 web_reg_save_param("ParamName", 
  "LB/IC="id":"OutputParameter.", 
  "RB/IC=","", 
  "Ord=All", 
  "Search=Body", 
  "RelFrameId=1", 
  LAST);
  
 ...
 
 
 Paramcount=atoi(lr_eval_string("{ParamName_count}")); //引數個數
 i=1;
 while (i<=Paramcount) {
  sprintf(str,"{ParamName_%d}",i);        //生成ParamName_i
 
 //方法一:將變數轉為引數,直接在請求中使用引數
 lr_save_string(lr_eval_string(str),"Value"); //對每個引數進行處理
 web_submit_data("FreeQueryServlet_24", 
  "Action=
  "Method=POST", 
  "RecContentType=text/html", 
  "Referer=
  "Snapshot=t27.inf", 
  "Mode=HTTP", 
  ITEMDATA, 
  "Name=className", "Value=ClientReportService", ENDITEM, 
  "Name=methodName", "Value=addNewParam", ENDITEM,
  "Name=params", "Value=["{ClientID}","OutputParameter.{Value}",""]", ENDITEM, 
  LAST);

 

 //方法二:透過strcpy、strcat方式組織字串,透過變數傳送請求
 strcpy(s,"Value=["{ClientID}","OutputParameter.");
  strcat(s,str);
 strcat(s,"",""]");
 web_submit_data("FreeQueryServlet_24", 
  "Action=
  "Method=POST", 
  "RecContentType=text/html", 
  "Referer=
  "Snapshot=t27.inf", 
  "Mode=HTTP", 
  ITEMDATA, 
  "Name=className", "Value=ClientReportService", ENDITEM, 
  "Name=methodName", "Value=addNewParam", ENDITEM, 
  "Name=params", s, ENDITEM, 
  LAST);
  

 //方法三:透過sprintf格式化輸出生成需要的字串,透過變數傳送請求
 sprintf(s,"Value=["{ClientID}","OutputParameter.%s",""]",str);
 web_submit_data("FreeQueryServlet_24", 
  "Action=
  "Method=POST", 
  "RecContentType=text/html", 
  "Referer=
  "Snapshot=t27.inf", 
  "Mode=HTTP", 
  ITEMDATA, 
  "Name=className", "Value=ClientReportService", ENDITEM, 
  "Name=methodName", "Value=addNewParam", ENDITEM, 
  "Name=params", s, ENDITEM, 
  LAST);

 i++;
 }


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2653856/,如需轉載,請註明出處,否則將追究法律責任。

相關文章