51Testing软件测试论坛
标题:
函数web_custom_reques中设置参数
[打印本页]
作者:
luyanyan1985
时间:
2010-3-25 17:26
标题:
函数web_custom_reques中设置参数
求助!
我是一名菜鸟,在学习中,希望各位给指点一下。
录制: 选中一条记录,进行提交的操作
脚本中显示:
lr_start_transaction("选中记录,点击提交");
web_submit_data("AjaxForm.aspx_26",
"Action=http://192.168.0.8/TestIBM/AjaxForm.aspx?_field=language&msgType=alarm&Id=600000&lgId=-1",
"Method=POST",
"RecContentType=text/html",
"Referer=http://192.168.0.8/TestIBM/home.aspx",
"Snapshot=t43.inf",
"Mode=HTML",
ITEMDATA,
LAST);
web_custom_request("AjaxForm.aspx_27",
"URL=http://192.168.0.8/TestIBM/AjaxForm.aspx?_field=scriptbar",
"Method=POST",
"Resource=0",
"RecContentType=text/html",
"Referer=http://192.168.0.8/TestIBM/WinForm.aspx?_path=0.12104.1087.604016",
"Snapshot=t44.inf",
"Mode=HTML",
"Body=&_p=&_path=0.12104.1087.604016.602477&_data=capplan$2554.
3404C3
;&_keys=capplan$2554.
3404C3
;",
LAST);
web_url("WinForm.aspx_3",
"URL=http://192.168.0.8/TestIBM/WinForm.aspx?_path=0.12104.1087.604016",
"Resource=0",
"RecContentType=text/html",
"Referer=http://192.168.0.8/TestIBM/home.aspx",
"Snapshot=t45.inf",
"Mode=HTML",
LAST);
lr_end_transaction("选中记录,点击提交",LR_AUTO);
查找下来发现红色字体部分,每次提交都不一样。这个是不是服务器返回的值?
如果是的话,服务器每次都返回不一样的值,这个数据该如何关联?
谢谢!!
作者:
云层
时间:
2010-3-25 17:31
关联的核心在于你要知道这个数据什么时候发给你
作者:
luyanyan1985
时间:
2010-3-25 21:13
那我说问一下.在loadrunner中能否查找到?如果能找到,该怎么找? 谢谢
作者:
thirtybooks
时间:
2010-3-26 08:20
web_reg_save_param(const char*paramName,<List of Attributes>,LAST);
第一部分是参数名,用双引号括起,用逗号分开;
第二部分List of Attributes包括LB,RB,Ord,search等等;
第三部分LAST结束标志;
LB是左边界,RB是右边界,例如你的&_keys=capplan$2554.3404C3;"其中3404c3是动态的,想用动态变量,那么LB=keys=capplan$2554.RB=;"这里取值的字符长度要看源文件动态数据的前面和后面的固定字符串,取能区分该变量的前后固定字符串。
另外
Search:搜寻的范围
ORD:指明从第几次出现的左边界开始才是要撷取的数据。
作者:
thirtybooks
时间:
2010-3-26 08:58
错了。。。你是web_custom_request。看了下脚本,你是从数据库里选一条记录发送到
http://192.168.0.8/TestIBM/WinForm.aspx?_path=0.12104.1087.604016
,而body的内容是你要发送的内容,那个是变量,你要关联下。再写个关联函数,然后用那个函数代替整个BODY。
……
strcpy(abc, "Body=&_p=&_path=0.12104.1087.604016.602477&_data=capplan$2554. ");
strcat(abc, lr_eval_string("{a}"));
strca(abc, ";&_keys=capplan$2554.");
strcat(abc, lr_eval_string("{b}"));
……
其中{a}、{b}等都是通过关联获得的数据。
然后再加上
web_reg_save_param("b",
"LB=keys=capplan$2554.",
"RB=;",
"ORD=1",
"search=body",
last);
还一个就不写了
最后整合下
......
web_reg_save_param("b",
"LB=keys=capplan$2554.",
"RB=;",
"ORD=1",
"search=body",
last);
.......
strcpy(abc, "Body=&_p=&_path=0.12104.1087.604016.602477&_data=capplan$2554. ");
strcat(abc, lr_eval_string("{a}"));
strca(abc, ";&_keys=capplan$2554.");
strcat(abc, lr_eval_string("{b}"));
……
lr_output_message(abc);
加上楼主的原脚本
web_custom_request("AjaxForm.aspx_27",
"URL=http://192.168.0.8/TestIBM/AjaxForm.aspx?_field=scriptbar",
"Method=POST",
"Resource=0",
"RecContentType=text/html",
"Referer=http://192.168.0.8/TestIBM/WinForm.aspx?_path=0.12104.1087.604016",
"Snapshot=t44.inf",
"Mode=HTML",
abc,
LAST);
[
本帖最后由 thirtybooks 于 2010-3-26 09:10 编辑
]
作者:
thirtybooks
时间:
2010-3-26 09:12
其实关联边界,我现在感觉分别为LB=data RB=;LB=keys RB=;好一点
作者:
thirtybooks
时间:
2010-3-26 09:16
如果那个红色字体每次返回的2个值都是一样,用一个参数就可以了,只是不确定
作者:
luyanyan1985
时间:
2010-3-26 10:45
谢谢大家~~ 问题已经搞定,是我没有找准确服务器发回的数据位置。导致web_reg_save_param插错了位置。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2