|
我在网上,找了一下,有相关,不过好象也没说怎么改:
LoadRunner 如何對 ASP.NET ViewState 做關聯?
ViewState 是 ASP.NET 用來存放網頁上伺服器端控制項 (server control) 狀態的一個隱藏欄位,所以當你檢視你的 ASP.NET 網頁原始檔,會發現一個 "__VIEWSTATE" 的隱藏欄位,其值是一堆看不懂的字元,就如同下列的例子。
value="dDwxNTgzOTU2ODA7dDw7bDxpPDE+Oz47bD
x0PDtsPGk8MT47PjtsPHQ8QDA8cDxwPGw8UGFnZU
NvdW50O18hSXRlbUNvdW50O18hRGF0YVNvdXJjZ
Ul0ZW1Db3VudDtEYXRhS2V5czs+O2w8aTwxPjtpPD
g+O2k8OD47bDw+Oz4+Oz47Ozs7Ozs7OztAMDxAMD
xwPGw8SGVhZGVyVGV4dDtEYXRhRmllbGQ7U29yd
EV4cHJlc3Npb247UmVhZE9ubHk7PjtsPHB1Yl9pZDtwd=="/>
當使用 LoadRunner VuGen 錄製含有 ViewState 的 ASP.NET網站應用時,就會需要做關聯 (Correlation)。
其關聯的範例腳本如下:
web_reg_save_param("MyViewState","LB=\"__VIEWSTATE\" value=\"","RB=\"",LAST);
假如 ASP.NET 網頁上的控制項一多,ViewState 會變得很大,所以通常也會需要使用 web_set_max_html_param_len 函數將參數 (Parameter) 的長度給適度地放大:
web_set_max_html_param_len("2048");
其他關於 ViewState 的參考資料:ViewState: All You Wanted to Know
首先,要设置web_set_max_html_param_len("900000");
因为ViewState可能会很大!
其次,记录下ViewState到某个参数,注意"LB/IC=ViewState\",何必在意ViewState1还是ViewState2呢
web_reg_save_param("MyTransaction_ViewState6",
"LB/IC=ViewState\" value=\"",
"RB/IC=\"",
"Ord=1",
"Search=Body",
"RelFrameId=1",
LAST);
然后把整个一个参数传递到ViewState需要的地方
web_submit_data("ThisIsMyPage.aspx_6",
"Action=http://abcd.aspx?dskfks=-sdfksd",
"Method=POST",
"RecContentType=text/html",
"Referer=http://sdfkkskdfksdfkks.aspx",
"Snapshot=t12.inf",
"Mode=HTML",
ITEMDATA,
"Name=__VIEWSTATE",
"Value={MyTransaction_ViewState6}",
ENDITEM,
"Name=MKTDropDown", "Value=U647110", ENDITEM,
"Name=GetLog", "Value=Get Log", ENDITEM,
EXTRARES,
LAST); |
|