51Testing软件测试论坛

标题: 手动关联-问题已解决,谢谢梦醒十分和ZEE [打印本页]

作者: drabit    时间: 2006-4-24 16:36
标题: 手动关联-问题已解决,谢谢梦醒十分和ZEE
下午学习了关联,遇到Error -27190: No match found for the requested parameter "MercurySession". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size ,梦醒十分兄和其他大虾们再指点一下.



看很多人都在讨论手动关联,也想学习一下。可是我测试过的项目录制脚本并回放,都没有发现需要用到关联的地方,我把自动关联都关掉了,也没找到。哪位好心人能推荐一个外部的网站,适合初学者学习手动关联???
最好不是那种登陆用验证码的项目,谢谢,非常感谢!

[ 本帖最后由 drabit 于 2006-4-26 15:15 编辑 ]
作者: 梦醒十分    时间: 2006-4-25 11:31
LR的本身的例子就可以,在mercury tour主页上,server option选3,点config后,就可以做关于session ID的关联练习了。
作者: drabit    时间: 2006-4-25 11:58
thanks a lot,梦醒十分,非常感谢!
作者: drabit    时间: 2006-4-25 15:38
标题: 下午学习了关联,遇到Error -27190的错误
下午学习了关联,遇到Error -27190: No match found for the requested parameter "MercurySession". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size ,梦醒十分兄和其他大虾们再指点一下.
作者: drabit    时间: 2006-4-25 15:40
标题: action部分的脚本
#include "as_web.h"


Action()
{
        web_url("index.html",
                "URL=http://localhost/MercuryWebTours/index.html",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t1.inf",
                "Mode=HTML",
                LAST);

        lr_think_time( 7 );
//这里加上了关联函数   

web_reg_save_param("MercurySession",
                        "LB=userSession=",
                        "RB=&username=mercury&password=mercury&JSFo",
                    "Ord=1",
                        "RelFrameId=1",
                        "Search=body",
                        LAST);

        web_submit_data("login.pl",
                "Action=http://localhost/MercuryWebTours/login.pl",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://localhost/MercuryWebTours/nav.pl?in=home",
                "Snapshot=t2.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=userSession", "Value={MercurySession}", ENDITEM,
                "Name=username", "Value=meggie", ENDITEM,
                "Name=password", "Value=mercury", ENDITEM,
                "Name=JSFormSubmit", "Value=on", ENDITEM,
                "Name=login.x", "Value=67", ENDITEM,
                "Name=login.y", "Value=13", ENDITEM,
                LAST);

        lr_think_time( 1 );

        web_image("Search Flights Button",
                "Alt=Search Flights Button",
                "Snapshot=t3.inf",
                EXTRARES,
                "Url=FormDateUpdate.class", "Referer=", ENDITEM,
                "Url=CalSelect.class", "Referer=", ENDITEM,
                "Url=Calendar.class", "Referer=", ENDITEM,
                "Url=YearMonthPanel.class", "Referer=", ENDITEM,
                "Url=DayPanel.class", "Referer=", ENDITEM,
                "Url=DateInfo.class", "Referer=", ENDITEM,
                LAST);

        lr_think_time( 4 );

        web_submit_form("reservations.pl",
                "Snapshot=t4.inf",
                ITEMDATA,
                "Name=depart", "Value=Frankfurt", ENDITEM,
                "Name=departDate", "Value=05/11/2006", ENDITEM,
                "Name=arrive", "Value=London", ENDITEM,
                "Name=returnDate", "Value=05/13/2006", ENDITEM,
                "Name=numPassengers", "Value=1", ENDITEM,
                "Name=roundtrip", "Value=<OFF>", ENDITEM,
                "Name=seatPref", "Value=None", ENDITEM,
                "Name=seatType", "Value=Coach", ENDITEM,
                "Name=findFlights.x", "Value=27", ENDITEM,
                "Name=findFlights.y", "Value=21", ENDITEM,
                LAST);

        web_submit_form("reservations.pl_2",
                "Snapshot=t5.inf",
                ITEMDATA,
                "Name=outboundFlight", "Value=120;266;05/11/2006", ENDITEM,
                "Name=reserveFlights.x", "Value=91", ENDITEM,
                "Name=reserveFlights.y", "Value=21", ENDITEM,
                LAST);

        web_submit_form("reservations.pl_3",
                "Snapshot=t6.inf",
                ITEMDATA,
                "Name=firstName", "Value=meggie", ENDITEM,
                "Name=lastName", "Value=wang", ENDITEM,
                "Name=address1", "Value=shanghai", ENDITEM,
                "Name=address2", "Value=shanghai", ENDITEM,
                "Name=pass1", "Value=meggie wang", ENDITEM,
                "Name=creditCard", "Value=", ENDITEM,
                "Name=expDate", "Value=", ENDITEM,
                "Name=saveCC", "Value=<OFF>", ENDITEM,
                "Name=buyFlights.x", "Value=67", ENDITEM,
                "Name=buyFlights.y", "Value=7", ENDITEM,
                LAST);

        lr_think_time( 4 );

        web_image("Home Button",
                "Alt=Home Button",
                "Ordinal=1",
                "Snapshot=t7.inf",
                LAST);

        web_image("Itinerary Button",
                "Alt=Itinerary Button",
                "Ordinal=1",
                "Snapshot=t8.inf",
                LAST);

        lr_think_time( 10 );

        web_image("Home Button_2",
                "Alt=Home Button",
                "Ordinal=1",
                "Snapshot=t9.inf",
                LAST);

        return 0;
}

[ 本帖最后由 drabit 于 2006-4-25 15:50 编辑 ]
作者: drabit    时间: 2006-4-25 15:47
我通过Compare with Vuser…的方式找到需要关联的地方是
userSession=92826.8789793439tHHtHicpfiHfciztipzQffcf

通过在execution log中找到左右边界.为何运行脚本不能通过,哪里设置的不对??
作者: Zee    时间: 2006-4-25 16:23
偶觉得你的左右边界找的不对,能否看看你的LOG?
作者: drabit    时间: 2006-4-26 08:59
标题: execution log如下,zee兄帮我看看,谢谢
execution log见附件,zee兄和其他大虾指点一下,谢谢

[ 本帖最后由 drabit 于 2006-4-26 09:02 编辑 ]
作者: drabit    时间: 2006-4-26 08:59
我是参照oldsydny的那篇文章学习的,根据execution log中
Action.c(17):     userSession=92832.1539894694tHHfAfDpQcAiDDDDcizfApDcDfcf&username=mecury&password=mercury&
确定左边界:userSession=
右边界:&username=mecury&password=mercury&

请问哪里出错了??

[ 本帖最后由 drabit 于 2006-4-26 09:08 编辑 ]
作者: Zee    时间: 2006-4-26 09:20
应该是从Recording Log中查找。你从execution log查找的
作者: drabit    时间: 2006-4-26 10:23
标题: ZEE兄和其他大虾们再帮看看
我学习oldsydney的文章,看到
1.recording log是用来判断数据是否需要关联的,“在Recording Log中找到了要找的数据,这时要确认数据是从服务器端传送过来的。首先可以先检查数据的标头,从标头的Receiving response可以知道数据是从服务器端传送到client端的。”
2.execution log是用来看哪一行要插入关联函数,并确定左右边界."再回到Execution Log中,选取动态数据前的字符串并且复制它。....."

另外,我刚才还是试了recording log中找,还是不对
web_reg_save_param("MercurySession",
                        "LB=input type=hidden name=userSession value=",
                        "RB=>",
                        "Ord=1",
                        "RelFrameId=1",
                        "Search=body",
                        LAST);


        web_submit_data("login.pl",
                "Action=http://localhost/MercuryWebTours/login.pl",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://localhost/MercuryWebTours/nav.pl?in=home",
                "Snapshot=t2.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=userSession", "Value={MercurySession}", ENDITEM,
作者: Zee    时间: 2006-4-26 12:59
还不对?来再看看你的recording log。开启所有LOG。另用lr_evel_string得到变量值,然后输入看看。

[ 本帖最后由 Zee 于 2006-4-26 13:08 编辑 ]
作者: Zee    时间: 2006-4-26 13:11
"RelFrameId=1",这里没错吧。
作者: Jon    时间: 2006-4-26 14:00
关于关联这一块我也在摸索中,斑竹的文章我也看了,不错!
1.recording log是用来判断数据是否需要关联的,“在Recording Log中找到了要找的数据,这时要确认数据是从服务器端传送过来的。首先可以先检查数据的标头,从标头的Receiving response可以知道数据是从服务器端传送到client端的。”
2.execution log是用来看哪一行要插入关联函数,并确定左右边界."再回到Execution Log中,选取动态数据前的字符串并且复制它。....."

学习....GO ON
作者: 梦醒十分    时间: 2006-4-26 14:03
usersession值的是网页一打开就获得的。
所以web_reg_save_param必须加在最前面,而你加在了web_url的后面。这样就获取不到此值了。
web_reg_save_param的LB、RB取值也可以简化成这个样子:
web_reg_save_param("AAA",
        "LB=userSession value=",
        "RB=>",
        LAST);
作者: drabit    时间: 2006-4-26 15:07
谢谢梦醒十分,你的指点我试过了。一次通过!!!很高兴!
也谢谢ZEE。

另,总结一下:
1.关联的数据应在recording log中找,确定是receiving response from server
2.设定左右边界也应该在recording log中找.
3.最重要的,在我这个例子中web_reg_save_param应放在脚本最前面,因为一打开网页,session值就获得了.

论坛中的高手很多,也很热心!向你们致敬!

[ 本帖最后由 drabit 于 2006-4-26 15:14 编辑 ]
作者: lvlin    时间: 2006-4-26 15:27
No match found for the requested parameter "MercurySession". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 256 bytes, use web_set_max_html_param_len to increase the parameter size

我也出现了这个提示,请问该怎么解决啊??




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2