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

需求:通過關聯取得的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=http://datasvr01:8081/freequery/FreeQueryServlet", 
  "Method=POST", 
  "RecContentType=text/html", 
  "Referer=http://datasvr01:8081/freequery/js/freequery/businessview/Preview.html", 
  "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=http://datasvr01:8081/freequery/FreeQueryServlet", 
  "Method=POST", 
  "RecContentType=text/html", 
  "Referer=http://datasvr01:8081/freequery/js/freequery/businessview/Preview.html", 
  "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=http://datasvr01:8081/freequery/FreeQueryServlet", 
  "Method=POST", 
  "RecContentType=text/html", 
  "Referer=http://datasvr01:8081/freequery/js/freequery/businessview/Preview.html", 
  "Snapshot=t27.inf", 
  "Mode=HTTP", 
  ITEMDATA, 
  "Name=className", "Value=ClientReportService", ENDITEM, 
  "Name=methodName", "Value=addNewParam", ENDITEM, 
  "Name=params", s, ENDITEM, 
  LAST);

 i++;
 }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章