关于EXTRARES的扩展说明:
EXTRARES如果请求的地址和主请求相同不会产生新的流量。
录制得到的EXTRARES不是简单地将图片拆出而是主请求请求不到的内容,例如,css中的图片引用或favicon.ico这种系统规定等。
错误的extrares会产生额外的请求。
在普通脚本开发中为了更好地模拟用户请求最好还是别删extrares,多了没什么坏处,只是多了一点数据流量,删了会导致某些主请求请求不到的内容不会被请求。至于EXTRARES中的内容是不是也需要参数化或者关联,个人觉得不用做那么多了,差别不大。
web_link()和web_url()函数都是页面访问型函数,实现HTTP请求中的GET方法,如果需要提交表单,实现HTTP请求中的POST方法,那么需要使用web_submit_form()或web_submit_data()函数。
补充:web_submit_form()函数详解
该函数会自动检测在当前页面上是否存在form表单,然后将后面的ITEMDATA数据进行传送。注意当一个页面上有多个表单时无法录制得到web_submit_form()函数,LR会自动使用web_submit_data()替代。例如录制在PHPwind网站上登录后进行查询操作,可以得到以下代码:
web_submit_form("searcher.php", "Snapshot=t8.inf", ITEMDATA, "Name=keyword", "Value=search", ENDITEM, EXTRARES, "Url=images/search/search_btn.png", ENDITEM, "Url=u/images/pre.cur", ENDITEM, "Url=u/images/next.cur", ENDITEM, "Url=images/search/pImg.png", ENDITEM, "Url=images/search/pImg_close.png", ENDITEM, "Url=images/search/search_del.png", ENDITEM, LAST); |
可以看到使用web_submit_form函数只需要传送一个keyword的数据值就行了,而使用隐藏标记的数据函数会自动处理。
补充:web_submit_data()函数详解
与web_submit_form()函数不同,web_submit_data()函数无须前面的页面支持,直接发送给对应页面相关数据即可。录制在phpwind网站登录后查询操作,代码会变为:
web_submit_data("searcher.php", "Action=http://localhost:8000/phpwind85/searcher.php", "Method=POST", "TargetFrame=", "RecContentType=text/html", "Referer=http://localhost:8000/phpwind85/", "Snapshot=t10.inf", "Mode=HTML", ITEMDATA, "Name=verify", "Value=60cc839c", ENDITEM, "Name=step", "Value=2", ENDITEM, "Name=type", "Value=thread", ENDITEM, "Name=keyword", "Value=search", ENDITEM, EXTRARES, "Url=images/search/search_btn.png", ENDITEM, "Url=u/images/next.cur", ENDITEM, "Url=images/search/pImg_close.png", ENDITEM, "Url=images/search/search_del.png", ENDITEM, "Url=images/search/pImg.png", ENDITEM, "Url=u/images/pre.cur", ENDITEM, LAST); |
其中Action说明提交表单的处理页面,Method表明提交数据的方式。
当使用web_submit_data()函数时,隐藏表单的数据也会被记录下来作为ITEMDATA数据提交给服务器。
这里介绍了在HTTP页面中最常用的4个页面函数web_link()、web_url()、web_submit_form()、web_submit_data(),通过这些函数可以实现大多数页面访问的请求和数据提交的过程。除了这4个函数,还有一个函数可能会经常看到web_custom_request()。当请求比较特别时,VuGen无法简单使用以上4个函数进行表述,那么录制后便会出现web_custom_request()函数,这个函数的作用是自定义HTTP请求规则。例如,我们需要模拟一个web_url函数那么就可以这样写:
web_custom_request("web_custom_request",
"URL=http://localhost:8000/phpwind85/index.php",
"Method=GET",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTML",
"Body=",
LAST);
本文选自《性能测试进阶指南—LoadRunner 11实战(第二版)》,本站经作者的授权。
版权声明:51Testing软件测试网获作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。