学习LoadRunner之关联(二)
Lr学习之关联-随机删除一行数据和全部删除数据
录制一个系统,我录制的是一个交通方面的系统,登陆到系统里面,查询车牌颜色,将其中一条数据删除。
"Name=__EVENTTARGET" , "Value=" , ENDITEM, "Name=__EVENTARGUMENT" , "Value=" , ENDITEM, "Name=__VIEWSTATEENCRYPTED" , "Value=" , ENDITEM, "Name=__EVENTVALIDATION" , "Value=d2nbwaXrFyhlu1wyuoxmLSw/21evncwEK/tTQwG6sFvqP2VtFAs+zeX0 PXJIPIfG6XlFZhPOEA0kUeOT5pV8wqhGVVco5NpzdOHJ/au2SCODPGzuhOSC6N0 XuUcOmmg9YQIQVRUjX9UN52yk1NWirekaG5UwowIEpykBMTVloq0Zy/IoAXnpG0 NZmR1PB515k8ht2ALYsrgnpfervGZ84A==", ENDITEM, "Name=txtNumberColorName" , "Value=" , ENDITEM, "Name=gvItems$ctl04$ImageButton3.x" , "Value=4" , ENDITEM, "Name=gvItems$ctl04$ImageButton3.y" , "Value=9" , ENDITEM, LAST); |
以上是用来控制删除的代码。在上面代码里面最后两句是用来控制我删除的是第几行,看到数据104说明我删除的是第4行,也就是说如果我要删除第7行,我可以将代码自己改成:
"Name=gvItems$ctl07$ImageButton3.x" , "Value=4" , ENDITEM, "Name=gvItems$ctl07$ImageButton3.y" , "Value=9" , ENDITEM, LAST); |
再运行一遍代码即可。我想让系统删除所有的记录,可以手动删除101,102,103。。。。。。。。。。,我们很容易想到循环。但是我们并不知道一共有多少行,这里我们需要关联可以知道一共有多少行,是哪些行,现在需要关心的是我们要关联哪个部分。
我们将视图切换到树型目录下,找到删除记录的页面,点击Server Response选项卡,看到代码发现:
< tr > < td > < span title="0024" style="cursor: pointer;">0024</ span > </ td > < td > < span title="8" style="cursor: pointer;">8</ span > </ td > < td > < span title="8" style="cursor: pointer;">8</ span > </ td > < td > < input type="image" name="gvItems$ctl02$ImageButton1" id="gvItems_ctl02_ImageButton1" text="缂栬緫" src="http://images.cnblogs.com/tableimage/bj.gif" alt="缂栬緫" style="border- 0px;" /> < input type="image" name="gvItems$ctl02$ImageButton3" id="gvItems_ctl02_ImageButton3" src="http://images.cnblogs.com/tableimage/sc.gif" alt="鍒犻櫎" onclick="return confirm('纭�疄瑕佸垹闄ゅ悧锛?);" style="border- 0px;" /> </ td > </ tr > < tr > < td > < span title="0025" style="cursor: pointer;">0025</ span > </ td > < td > < span title="red" style="cursor: pointer;">red</ span > </ td > < td > < span title="1" style="cursor: pointer;">1</ span > </ td > < td > < input type="image" name="gvItems$ctl03$ImageButton1" id="gvItems_ctl03_ImageButton1" text="缂栬緫" src="http://images.cnblogs.com/tableimage/bj.gif" alt="缂栬緫" style="border- 0px;" /> < input type="image" name="gvItems$ctl03$ImageButton3" id="gvItems_ctl03_ImageButton3" src="http://images.cnblogs.com/tableimage/sc.gif" alt="鍒犻櫎" onclick="return confirm('纭�疄瑕佸垹闄ゅ悧锛?);" style="border- 0px;" /> </ td > </ tr > |
行是由这样的代码一个个组成,每一行都有个唯一标识id="gvItems_ctl03_ImageButton3",那我们需要关联的是ID里面的那个数字。在代码上加:
web_reg_save_param( "idParam" , "LB=gvItems_ct" , "RB=_ImageButton3" , "ORD=All" , "Search=Body" ,LAST); |
然后添加显示的代码:
i=atoi( lr_eval_string( "{idParam_count}" )); lr_error_message( "%d" ,i); |
idParam_count变量装的就是一共有多少行。现在要做的就是找到这些行的唯一标识。
for (j=1;j<=i;j++) { sprintf(temp,lr_eval_string( "{idParam_%d}" ),j); lr_error_message( "the {idParam_%d} is %s" ,j,lr_eval_string(temp)); } lr_error_message( "%d" ,i); |
通过代码得到的结果为:
Action.c(92): Notify: Saving Parameter "idParam_1 = l02" Action.c(92): Notify: Saving Parameter "idParam_2 = l03" Action.c(92): Notify: Saving Parameter "idParam_3 = l04" Action.c(92): Notify: Saving Parameter "idParam_4 = l05" Action.c(92): Notify: Saving Parameter "idParam_5 = l06" Action.c(92): Notify: Saving Parameter "idParam_count = 5" |
那么现在就好做全面删除了:
for (j=1;j<=i;j++) { sprintf(temp,lr_eval_string( "{idParam_%d}" ),j); lr_error_message( "%s" ,lr_eval_string( "{temp}" )); strcat(tempX,temp); strcat(tempX, "$ImageButton3.x" ); strcat(tempY,temp); strcat(tempY, "$ImageButton3.y" ); lr_error_message(tempX); lr_error_message(tempY); ………………… //省略 "Name=__EVENTVALIDATION" , "Value={WCSParam_Diff2}" , ENDITEM, "Name=txtNumberColorName" , "Value=" , ENDITEM, tempX, "Value=5" , ENDITEM, tempY, "Value=5" , ENDITEM, LAST); } |