軟件測試工具LR中多值關聯的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++; |
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/