默认录制出来的脚本内容
Action() { web_add_cookie("MSO=SID&1471159007&MSO_JSFormSubmit1&on&MSO_ServerErrorsProb&50&MSO_ServerLoadProb&50; DOMAIN=127.0.0.1"); web_url("webtours.png", "URL=http://127.0.0.1:1080/WebTours/images/webtours.png", "Resource=1", "RecContentType=image/png", "Referer=http://127.0.0.1:1080/WebTours/header.html", "Snapshot=t11.inf", LAST); web_url("JSFormSubmit.js", "URL=http://127.0.0.1:1080/WebTours/JSFormSubmit.js", "Resource=1", "RecContentType=application/javascript", "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home", "Snapshot=t12.inf", LAST); web_url("mer_login.gif", "URL=http://127.0.0.1:1080/WebTours/images/mer_login.gif", "Resource=1", "RecContentType=image/gif", "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home", "Snapshot=t13.inf", LAST); web_submit_data("login.pl", "Action=http://127.0.0.1:1080/cgi-bin/login.pl", "Method=POST", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home", "Snapshot=t14.inf", "Mode=HTML", ITEMDATA, "Name=userSession", "Value=119170.433940867zVcQicQpVQfiDDDDDzHHipQHfVHf", ENDITEM, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=JSFormSubmit", "Value=on", ENDITEM, LAST); web_submit_data("login.pl_2", "Action=http://127.0.0.1:1080/cgi-bin/login.pl", "Method=POST", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home", "Snapshot=t15.inf", "Mode=HTML", ITEMDATA, "Name=userSession", "Value=119170.433940867zVcQicQpVQfiDDDDDzHHipQHfVHf", ENDITEM, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=JSFormSubmit", "Value=on", ENDITEM, "Name=login.x", "Value=37", ENDITEM, "Name=login.y", "Value=3", ENDITEM, LAST); return 0; }
优化1:删除不需要的代码,分析原始脚本,发现有些是获取图片,有些是重复提交login,删除不需要的代码,保存重新运行,若Replay Runs的结果为Passed说明正确的优化了代码。
* 删除web_add_cookie 会造成运行失败,说明和服务器的交互必须有固定的cookie内容
Action() { web_add_cookie("MSO=SID&1471159007&MSO_JSFormSubmit1&on&MSO_ServerErrorsProb&50&MSO_ServerLoadProb&50; DOMAIN=127.0.0.1"); web_submit_data("login.pl", "Action=http://127.0.0.1:1080/cgi-bin/login.pl", "Method=POST", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home", "Snapshot=t14.inf", "Mode=HTML", ITEMDATA, "Name=userSession", "Value=119170.433940867zVcQicQpVQfiDDDDDzHHipQHfVHf", ENDITEM, "Name=username", "Value=jojo", ENDITEM, "Name=password", "Value=bean", ENDITEM, "Name=JSFormSubmit", "Value=on", ENDITEM, LAST); return 0; }
Loadrunner用于参数化造数据非常方便,找准接口往里压数据即可。
这段代码模拟了用户操作的两个步骤,点击登陆请求跳转到响应的页面,post数据。
Action() { web_add_cookie("MSO=SID&1471164628&MSO_JSFormSubmit1&on&MSO_ServerErrorsProb&50&MSO_ServerLoadProb&50; DOMAIN=127.0.0.1"); web_submit_data("login.pl", "Action=http://127.0.0.1:1080/cgi-bin/login.pl", "Method=POST", "RecContentType=text/html", "Referer=http://127.0.0.1:1080/cgi-bin/login.pl?username=&password=&getInfo=true", "Snapshot=t3.inf", "Mode=HTML", ITEMDATA, "Name=username", "Value=jojo2", ENDITEM, "Name=password", "Value=bean2", ENDITEM, "Name=passwordConfirm", "Value=bean2", ENDITEM, "Name=firstName", "Value=test", ENDITEM, "Name=lastName", "Value=test", ENDITEM, "Name=address1", "Value=test", ENDITEM, "Name=address2", "Value=test", ENDITEM, "Name=register.x", "Value=63", ENDITEM, "Name=register.y", "Value=2", ENDITEM, LAST); return 0; }