51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3760|回复: 11
打印 上一主题 下一主题

[原创] 为什么加了web_reg_find语句后,web_submit_data语句执行失败

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-9-29 16:11:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 水易清 于 2010-9-29 16:36 编辑

测试用户注册,用户注册信息正确提交后,会跳转到注册成功页面,这里想在这个跳转成功页面上加一个检查点,检查“注册成功”文本。
web_reg_find("Text=注册成功",LAST);
web_submit_data("RegHotelAction_save.action",
                "Action=http://172.16.2.219:8080/directsale/RegHotelAction_save.action",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://172.16.2.219:8080/directsale/EditHotelAction_toRegHotel.action",
                "Snapshot=t13.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=struts.token.name", "Value=struts.token", ENDITEM,
                "Name=struts.token", "Value=BDK4I0EK92UV1UKMTS17TIR2VAL4VG9U", ENDITEM,
                "Name=hotelInfo.nameCN", "Value=jiudian{NO}", ENDITEM,
                "Name=hotelInfo.shortSpell", "Value=jiudian{NO}", ENDITEM,
                "Name=hotelInfo.nameEN", "Value=", ENDITEM,
                "Name=hotelInfo.aliasName", "Value=jiudian{NO}", ENDITEM,
                "Name=hotelInfo.star", "Value=", ENDITEM,
                "Name=hotelInfo.country", "Value=", ENDITEM,
                "Name=hotelInfo.province", "Value=", ENDITEM,
                "Name=hotelInfo.city", "Value=", ENDITEM,
                "Name=hotelInfo.region", "Value=", ENDITEM,
                "Name=hotelInfo.address", "Value=", ENDITEM,
                "Name=hotelInfo.subRegion", "Value=", ENDITEM,
                "Name=hotelInfo.bizRegion", "Value=", ENDITEM,
                "Name=hotelInfo.environMent", "Value=", ENDITEM,
                "Name=hotelInfo.postCode", "Value=", ENDITEM,
                "Name=hotelInfo.tel1", "Value={NO}", ENDITEM,
                "Name=hotelInfo.tel2", "Value=", ENDITEM,
                "Name=hotelInfo.fax1", "Value=", ENDITEM,
                "Name=hotelInfo.fax2", "Value=", ENDITEM,
                "Name=hotelInfo.webUrl", "Value=", ENDITEM,
                "Name=hotelInfo.desc", "Value=", ENDITEM,
                "Name=adminType", "Value=0", ENDITEM,
                "Name=adminTypeId", "Value=2", ENDITEM,
                "Name=ycimUser.userName", "Value=jiudian{NO}", ENDITEM,
                "Name=ycimUser.plainPassWord", "Value=123456", ENDITEM,
                "Name=plainPassWord2", "Value=123456", ENDITEM,
                "Name=ycimUser.name", "Value=", ENDITEM,
                "Name=ycimUser.email", "Value=jiudian{NO}@sina.com", ENDITEM,
                "Name=validCode", "Value=aaaaaa", ENDITEM,
                LAST);

不加入web_reg_find下面语句执行通过,但实际数据未提交入数据库,但加入检查点后,报submit data:step failed
这是为什么呀?谁能帮我看看~~~~~~~~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-9-29 16:22:21 | 只看该作者
不加验证点  运行能成功吗
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2010-9-29 16:43:36 | 只看该作者
不加web_reg_find,可以成功的,但是实际数据没有提交到后台数据库中,因为页面采用AJAX,如果nameCN、userName重复,是直接在注册信息的页面上进行了提示,这种情况禁止提交。
这种情况下该怎么做呢
我理解的web_reg_find是不是说先注册一个页面,这个注册的页面,就是下面提交数据的页面。而我这里要检查的实际是下一个跳转页面的文本,注册成功的提示页面,是不是这里头的问题
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2010-9-29 16:59:29 | 只看该作者
我不没有用过,也不知道是怎么回事,你是否用web_submit_form试试
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-9-29 17:04:23 | 只看该作者
1、看你这个脚本应该也做参数化了nameCN、userName重复受限的问题应该可以解决了。
2、数据没写入到数据库里是不是因为某个字段添加时虽然给的提示也是成功,但程序没有对这个字段进行
    判断。(我现在测试的程序就是,可以重复添加但数据库里就存在一条)
3、使用web_find函数试试,注册函数放在操作动作的前面的这点应该没错。
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2010-9-30 14:27:03 | 只看该作者
本帖最后由 水易清 于 2010-9-30 14:45 编辑

我发现我的脚本中的问题,未对JsessionID做关联!
我手动做关联,如下
web_reg_save_param("UserSession","LB=Set-Cookie: JSESSIONID=","RB=;",LAST);
lr_error_message("SessionId is: %s",lr_eval_string("{UserSession}"));
web_url("directsale",
                "URL=http://172.16.2.219:8080/directsale",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t1.inf",
                "Mode=HTML",
                EXTRARES,
                "Url=/directsale/staticmedia/js/jquery/i18n/messages_cn.js", "Referer=http://172.16.2.219:8080/directsale/HomePageAction_edit.action", ENDITEM,
                "Url=/directsale/staticmedia/images/bg_nav_mobile.gif", "Referer=http://172.16.2.219:8080/directsale/HomePageAction_edit.action", ENDITEM,
                "Url=/directsale/staticmedia/images/navigations.png", "Referer=http://172.16.2.219:8080/directsale/HomePageAction_edit.action", ENDITEM,
                "Url=/directsale/staticmedia/images/icons/icon_mobile.gif", "Referer=http://172.16.2.219:8080/directsale/HomePageAction_edit.action", ENDITEM,
                LAST);

web_link("登录",
                "Text=登录",
                "Snapshot=t2.inf",
                EXTRARES,
                "Url=staticmedia/images/tit_regist.jpg", ENDITEM,
                "Url=staticmedia/images/bg_regist.jpg", ENDITEM,
                LAST);
########################
web_link中用到jsessionid原来在t2.inf-》t2.RequestHeader.txt中。下面附一下t2.inf文件内容,和t2.RequestHeader.txt文件内容
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2010-9-30 14:33:54 | 只看该作者
t2.inf内容如下
[t2]
FileName1=t2.htm
URL1=http://172.16.2.219:8080/directsale/LogInAndOutAction_initPage.action
Total=6
RequestHeaderFile=t2_RequestHeader.txt
RequestBodyFile=NONE
ResponseHeaderFile=t2_ResponseHeader.txt
ContentType=text/html
FileName2=t2_login.css
URL2=http://172.16.2.219:8080/directsale/staticmedia/css/customer/login.css
FileName3=t2_login.html
URL3=http://172.16.2.219:8080/directsale/staticmedia/js/customer/security/login.js
FileName4=t2_tit_regist.jpg
URL4=http://172.16.2.219:8080/directsale/staticmedia/images/tit_regist.jpg
FileName5=t2_RangeCodeAction_getRangeCode.html
URL5=http://172.16.2.219:8080/directsale/RangeCodeAction_getRangeCode.action
FileName6=t2_bg_regist.jpg
URL6=http://172.16.2.219:8080/directsale/staticmedia/images/bg_regist.jpg
[ProtocolInfo]
ProtocolId=QTWeb

########################
t2.RequestHeader.txt内容如下
GET /directsale/LogInAndOutAction_initPage.action HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
Referer: http://172.16.2.219:8080/directsale/HomePageAction_edit.action
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)
Host: 172.16.2.219:8080
Connection: Keep-Alive
Cookie: JSESSIONID={UserSession}
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2010-9-30 14:39:38 | 只看该作者
但我现在的问题是:
1:lr_error_message("SessionId is: %s",lr_eval_string("{UserSession}"));一句的结果是SessionId is:{UserSession}。没取到值,还是我用错了?
2:可不可以直接在t2.RequestHeader.txt中直接进行参数替换Cookie: JSESSIONID={UserSession}?
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2010-9-30 14:42:45 | 只看该作者
这个是服务器返回sessionid的那部分内容
Action.c(6):     HTTP/1.1 200 OK\r\n
Action.c(6):     Server: Apache-Coyote/1.1\r\n
Action.c(6):     Set-Cookie: JSESSIONID=59EA01FBB7C3475DFB642D1ED15A0F39; Path=/directsale\r\n
Action.c(6):     Content-Type: text ml\r\n
Action.c(6):     Content-Length: 465\r\n
Action.c(6):     Date: Thu, 30 Sep 2010 05:45:52 GMT\r\n
Action.c(6):     \r\n
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-9-30 16:48:52 | 只看该作者
有点迷糊了    当时找你这个问题的时候 网上也有人说没做关联 。但没做关联和加这个函数有什么关系。如果是没做关联那直接回放的时候也应该报错吧。但为什么还能回放成功了。迷糊了
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2010-9-30 16:56:16 | 只看该作者
是啊,回放成功我一直没懂,但是我自己出的第一个错找到原因了,应该放在web_url后打印,lr_error_message("SessionId is: %s",lr_eval_string("{UserSession}"));
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2010-9-30 18:46:56 | 只看该作者
回放成功不一定是对的。但没有关联应该给个错误信息吧   我是这么认为的。再听听高手怎么说。能力有限了
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-17 04:37 , Processed in 0.071101 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表