Loadrunner 關聯 web_custom_request,針對自帶的訂票系統的一個綜合實例,相信看了本文大家對學習loadrunner腳本會有很大的幫助.
本實例要解決的問題:(1)動態刪除Loadrunner訂票系統的一條訂單;(2)動態判斷表單訂單條目,執行取消第一條訂單;(3)Loadrunner 關聯 web_custom_request以及循環語句的應用。
代碼不足之處:變量定義太多,希望和大家共同交流。
以下為我的腳本的源碼:
------------------------------------------------------
#include "web_api.h"
Action()
{
int i,k;
char form[1024];
char temp[1024];
char tmp[1024];
char tp[1024];
char tp1[1024];
char tp2[1024];
web_url("MercuryWebTours",
"URL=http://192.168.8.9/MercuryWebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
lr_think_time(10);
web_submit_form("login.pl",
"Snapshot=t2.inf",
ITEMDATA,
"Name=username", "Value=zhangming", ENDITEM,
"Name=password", "Value=666666", ENDITEM,
"Name=login.x", "Value=50", ENDITEM,
"Name=login.y", "Value=11", ENDITEM,
LAST);
lr_think_time(4);
web_reg_save_param("flightID",
"LB=INPUT TYPE=\"hidden\" NAME=\"flightID\" VALUE=\"",
"RB=\"",
"ORD=ALL",
"search=body",
LAST);
web_image("Itinerary Button",
"Alt=Itinerary Button",
"Snapshot=t3.inf",
LAST);
strcpy(form,"Body=1=on");
i=atoi(lr_eval_string("{flightID_count}"));
for(k=1;k<=i;k++)
{
sprintf(temp,"{flightID_%d}",k);
strcpy(tmp,lr_eval_string(temp));// 取出flightID的值,并把值傳給tmp
sprintf(tp,"&flightID=%s",tmp);
strcat(form,tp);
}
for(k=1;k<=i;k++)
{
sprintf(tp2,"&.cgifields=%d",k);
strcat(tp1,tp2);
}
strcat(form,tp1);
strcat(form,"&removeFlights.x=137&removeFlights.y=13");
lr_output_message("form 的值為=%s",form);
web_custom_request("itinerary.pl",
"url=http://192.168.8.9/MercuryWebTours/itinerary.pl",
"Method=POST",
"RecContentType=text/xml",
form,
"Snapshot=t7.inf",
LAST);
return 0;
}
原文轉自:http://www.anti-gravitydesign.com