51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5160|回复: 23
打印 上一主题 下一主题

[原创] 高手帮忙!07最后一贴!Reg_save Parameter

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-12-31 15:32:47 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
Web_reg_save_Parameter可以动态接受client端的动态JS参数吗?

[ 本帖最后由 mustwangrong 于 2008-1-2 18:06 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

24#
 楼主| 发表于 2008-1-23 12:06:26 | 只看该作者

又来一个问题

同样的环境,录制
我同事有web_reg_save_param
我的没有-_-#
我们只有版本的差别,他的是8.1我的是7.6
回复 支持 反对

使用道具 举报

该用户从未签到

23#
 楼主| 发表于 2008-1-21 18:00:01 | 只看该作者
尝试了半天,没有头绪
好像这个参数不是上一个Response不知道DEV怎么得到的
明天再说
回复 支持 反对

使用道具 举报

该用户从未签到

22#
 楼主| 发表于 2008-1-21 12:07:59 | 只看该作者
先用URL进行相应录制后,此时在高级中同时选中web_custom_request only?还是录制之前选中?
lyscu能告诉我原帖子地址吗?51testing的搜不好用

[ 本帖最后由 mustwangrong 于 2008-1-21 18:07 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

21#
发表于 2008-1-18 23:02:58 | 只看该作者
**************************特别说明**********************************
该帖是转发的同行peach的帖子,希望对你有帮助
************************************************************************

/* -----------------------------------------------------------------------------------------------------------------------------------
Script Title       : web_submit_data && web_custom_request Script Description : 有时录制的脚本不能满足我们数据设计时的需求,如以下这种情况:
想要的结果:通过输入一批相应的记录然后添加(这一批数据需要参数化),然后再提交记录.
实际录制结果:实际录制的时,操作是一次只能增加一条记录,然后再次输入记录,添加...提交.
这时录制出来的结果就是如下web_submit_data所示.
如果是海量数据而且并发用户操作数据的话,通过参数化的操作是不能满足我们需求的.
(因为不能在web_submit_data函数中进行相应修改)
  
                        
    Solution           : 先用URL进行相应录制后,此时在高级中同时选中web_custom_request,然后找出脚本中向服务器提交请求的body部分,
         此body部分实际上就是你批量增加记录的部分.
   把其中的报文截取出来后,先找出其中规律,再拆分,然后对相应你需要的数据部分进行参数化,然后再利用c语言进行拼装,
   得到你想要的报文后.再次利用web_custom_request函数,修改其中的相应参数后,放在脚本相应位置后,就可以工作了.
 此例中我找到的body字符串如下:在对字符串进行处理时,同时也要对%处理,格式如下:

   ------------------------------------------------------------------------------------------------------------------------------------- */
    cntrTextBox=&wlw-select_key%3A%7BactionForm.EDODomainObj.cntrNList%7DOldValue=true&wlw-select_key%3A%7BactionForm.EDODomainObj.cntrNList%7D=EDOE+1000025&wlw-select_key%3A%7BactionForm.EDODomainObj.cntrNList%7D=EDOE+1000026&%7BactionForm.EDODomainObj.edoDetailDomainObj.validityDt%7D=20070916&wlw-radio_button_group_key%3A%7BactionForm.selectType%7D=0&wlw-select_key%3A%7BactionForm.EDODomainObj.edoDetailDomainObj.hlrC%7DOldValue=true&" "wlw-select_key%3A%7BactionForm.EDODomainObj.edoDetailDomainObj.hlrC%7D=AOP190&%7BactionForm.hlrCT%7D=AOP190&%7BactionForm.EDODomainObj.edoDetailDomainObj.remark%7D=

web_submit_data("create.do",  
"Action=http://192.168.1.7/EDOWeb/com/tpsbhr/epc/biz/edo/interaction/createEmptyEDOByCntrN/create.do",  
"Method=POST",  
"RecContentType=text/html",  
"Referer=http://192.168.1.7/EDOWeb/CreatEmptyEDOByCntrN.do",  
"Snapshot=t5.inf",  
"Mode=HTML",  
ITEMDATA,  
"Name=cntrTextBox", "Value=", ENDITEM,  
"Name=wlw-select_key:{actionForm.EDODomainObj.cntrNList}OldValue", "Value=true", ENDITEM,  
"Name=wlw-select_key:{actionForm.EDODomainObj.cntrNList}", "Value=EDOB 1000025", ENDITEM,  
"Name=wlw-select_key:{actionForm.EDODomainObj.cntrNList}", "Value=EDOB 1000026", ENDITEM,  
"Name={actionForm.EDODomainObj.edoDetailDomainObj.validityDt}", "Value=20070918", ENDITEM,  
"Name=wlw-radio_button_group_key:{actionForm.selectType}", "Value=0", ENDITEM,  
"Name=wlw-select_key:{actionForm.EDODomainObj.edoDetailDomainObj.hlrC}OldValue", "Value=true", ENDITEM,  
"Name=wlw-select_key:{actionForm.EDODomainObj.edoDetailDomainObj.hlrC}", "Value=AOP190", ENDITEM,  
"Name={actionForm.hlrCT}", "Value=AOP190", ENDITEM,  
"Name={actionForm.EDODomainObj.edoDetailDomainObj.remark}", "Value=", ENDITEM,  
EXTRARES,  
"Url=/EDOWeb/resources/images/buttons_en/bt_update_over.jpg", ENDITEM,  
LAST);
Action()
{
char *strtmpA;
char *strtmpB;
int i;
if ((strtmpA = (char *)malloc(2048 * sizeof(char))) == NULL) {
lr_output_message("Insufficient memory available");
return -1;
}
if ((strtmpB = (char *)malloc(1024 * sizeof(char))) == NULL) {
lr_output_message("Insufficient memory available");
return -1;
}

sprintf(strtmpA, lr_eval_string ("cntrTextBox=&wlw-select_key%%3A%%"
"7BactionForm.EDODomainObj.cntrNList%%7DOldValue=true&"));
for(i=1; i<=25; i++){
sprintf(strtmpB, lr_eval_string ("wlw-select_key%%3A%%"
"7BactionForm.EDODomainObj.cntrNList%%"
"7D=EDOE+{value}&"));
strcat(strtmpA, strtmpB);
}
sprintf(strtmpB, lr_eval_string ("%%"
"7BactionForm.EDODomainObj.edoDetailDomainObj.validityDt%%"
"7D=20070916&wlw-radio_button_group_key%%"
"3A%%7BactionForm.selectType%%"
"7D=0&wlw-select_key%%3A%%"
"7BactionForm.EDODomainObj."
"edoDetailDomainObj.hlrC%%7DOldValue=true&"
"wlw-select_key%%3A%%7BactionForm.EDODomainObj."
"edoDetailDomainObj.hlrC%%7D=AOP190&%%7BactionForm."
"hlrCT%%7D=AOP190&%%7BactionForm.EDODomainObj."
"edoDetailDomainObj.remark%%7D="));
strcat(strtmpA, strtmpB);
lr_save_string (strtmpA, "myString");
lr_output_message("%s",lr_eval_string(strtmpA));
lr_output_message("%s",lr_eval_string("{value}"));




web_custom_request("create.do",  
"URL=http://192.168.1.7/EDOWeb/com/tpsbhr/epc/biz/edo/interaction/createEmptyEDOByCntrN/create.do",  
"Method=POST",  
"Resource=0",  
"RecContentType=text/html",  
"Referer=http://192.168.1.7/EDOWeb/CreatEmptyEDOByCntrN.do",  
"Snapshot=t5.inf",  
"Mode=HTTP",  
"Body={myString}",  
LAST);
free(strtmpA);
free(strtmpB);
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2008-1-18 23:01:22 | 只看该作者
类似于接受response的值,可以用strcpy和strcat把【callCount=1\nc0-scriptName=EvAjManager\nc0-methodName=logHtmlTime\nc0-id=6732_1199078254640\nc0-param0=string:1199078248539\nc0-param1=number:5140\nc0-param2=string:Client-Primary\nxml=true\n"】做成一个参数,然后写到里面。body里面是不能参数化的。
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2008-1-18 17:31:47 | 只看该作者

后续

让DEV给我们动态取到数据库里面的一个值--上一个页面返回的
放在下一个页面web_submit_data里面:
web_submit_data
{...
"Name=st_p", "Value={CD}", ENDITEM,
...}
对CD可以关联吗?
觉得理论上可以,但是不像关连的样子--左右边界太少了:左边Value=右边", 右边界明显不行有"的

[ 本帖最后由 mustwangrong 于 2008-1-18 17:36 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2008-1-14 13:50:54 | 只看该作者

回复 17# 的帖子

明白了,看来是要希望server对这个request动态回复才行.
不过我估计行不同,这是他们临时加的代码,粗糙的很.
anyway我试试先.
再次感谢stone0214!我的msn:mustwangrong@163.com,有机会聊聊
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2015-11-5 15:12
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    17#
    发表于 2008-1-14 12:24:05 | 只看该作者
    需要拿到的是
    web_custom_request("EvSummaryAjaxManager.logHtmlTime.dwr",
    的server response
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-11-5 15:12
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    16#
    发表于 2008-1-14 10:42:58 | 只看该作者

    客气了,不用谢 :)

    web_custom_request("EmmaryAjaxManager.logHtmlTime.dwr_2","URL=http://ec.sb.com:10080/tal/dwr/exec/EmaryAjaxManager.logHtmlTime.dwr","Method=POST","Resource=1","RecContentType=text/plain","Referer=http://ec.sb.com:10080/tal/EtAction.domethod=getEvSummary&first=true","EncType=text/plain","Body=callCount=1\n""c0-riptName=EaryAjaxManager\n""c0-methodName=logHtmlTime\n"
                    "c0-id=6307_1199078257750\n""c0-param0=string:1199078248539\n"
                                         "c0-param1=number:5140\n"
                                      "c0-param2=string:Client-Primary\n""xml=true\n""",LAST);

    web_custom_request("EvSummaryAjaxManager.logHtmlTime.dwr", "URL=http://eccwb1d.ny.com:/exec/AjaxManager.logHtmlTime.dwr", "Method=POST", "Resource=1", "RecContentType=text/plain", "Referer=http://eccwb1d.ny.com:/exec/AjaxManager.logHtmlTime.dwtion.do?method=getmmary&first=true", "EncType=text/plain", "Body=callCount=1\nc0-scriptName=EvAjManager\nc0-methodName=logHtmlTime\nc0-id=6732_1199078254640\nc0-param0=string:1199078248539\nc0-param1=number:5140\nc0-param2=string:Client-Primary\nxml=true\n", LAST);


    对比了下,两个请求应该不是同一个请求...所以贴上来的log不能判断能不能在web_custom_request("EvSummaryAjaxManager.logHtmlTime.dwr",前面写关联

    [ 本帖最后由 stone0214 于 2008-1-14 12:23 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2008-1-11 11:22:29 | 只看该作者

    离这个request最近的response,谢谢stone0214

    $$$$$$ Request Header For Transaction With Id 192 Ended $$$$$$
    ****** Request Body For Transaction With Id 192 ******
    callCount=1
    c0-scriptName=ESmaryAjaxManager
    c0-methodName=logHtmlTime
    c0-id=6307_1199078257750
    c0-param0=string:1199078248539
    c0-param1=number:5140
    c0-param2=string:Client-Pri
    xml=true
    $$$$$$ Request Body For Transaction With Id 192 Ended $$$$$$
    ****** Response Header For Transaction With Id 192 ******
    HTTP/1.1 200 OK
    Server: ""
    Date: Mon, 31 Dec 2007 05:17:38 GMT
    Content-type: text/plain
    P3p: CP="NOI DSP COR CURa ADMa DEVa OUR NOR UNI"
    Transfer-encoding: chunked
    Proxy-Connection: Keep-Alive
    Connection: Keep-Alive
    $$$$$$ Response Header For Transaction With Id 192 Ended $$$$$$
    ****** Response Body For Transaction With Id 192 ******
    var s0=null;
    DWREngine._handleResponse('6307_1199078257750', s0);
    $$$$$$ Response Body For Transaction With Id 192 Ended $$$$$$
    ****** Start Log Message ******
    Start Frames Hierarchy Tree Dump
    /sptal/dwr/exec/EmaryAjaxManager.logHtmlTime.dwr
    End Frames Hierarchy Tree Dump
    $$$$$$ End Log Message $$$$$$
    ****** Add Event For Transaction With Id 192 ****** (Location Flag : tFlagInsertEnd, Location ID : 192)
            web_custom_request("EmmaryAjaxManager.logHtmlTime.dwr_2","URL=http://ec.sb.com:10080/tal/dwr/exec/EmaryAjaxManager.logHtmlTime.dwr","Method=POST","Resource=1","RecContentType=text/plain","Referer=http://ec.sb.com:10080/tal/EtAction.domethod=getEvSummary&first=true","EncType=text/plain","Body=callCount=1\n""c0-riptName=EaryAjaxManager\n""c0-methodName=logHtmlTime\n"
                    "c0-id=6307_1199078257750\n""c0-param0=string:1199078248539\n"
                                         "c0-param1=number:5140\n"
                                      "c0-param2=string:Client-Primary\n""xml=true\n""",LAST);
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2008-1-11 11:10:43 | 只看该作者
    要看server返回的log
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-11-5 15:12
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2008-1-10 23:15:05 | 只看该作者
    要的是上一个页面的response才看的到
    光看这个是不能确定能不能处理的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12#
     楼主| 发表于 2008-1-8 10:29:36 | 只看该作者
    web_custom_request("EvSummaryAjaxManager.logHtmlTime.dwr", "URL=http://eccwb1d.ny.com:/exec/AjaxManager.logHtmlTime.dwr", "Method=POST", "Resource=1", "RecContentType=text/plain", "Referer=http://eccwb1d.ny.com:/exec/AjaxManager.logHtmlTime.dwtion.do?method=getmmary&first=true", "EncType=text/plain", "Body=callCount=1\nc0-scriptName=EvAjManager\nc0-methodName=logHtmlTime\nc0-id=6732_1199078254640\nc0-param0=string:1199078248539\nc0-param1=number:5140\nc0-param2=string:Client-Primary\nxml=true\n", LAST);
    5140和1199078248539需要处理
    个人觉得应该参数话,不过具体还不知道怎么干
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2008-1-7 22:50:47 | 只看该作者
    把你想关联的东西,帖出来看看。
    如果是服务器返回的值,就应该可以取出值来的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    10#
     楼主| 发表于 2008-1-7 18:27:49 | 只看该作者

    回复 9# 的帖子

    我就是这样认为的!
    有权威人士确认一下吗?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-11-5 15:12
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    9#
    发表于 2008-1-5 22:33:52 | 只看该作者
    个人估计不行。。。

    web_reg_save_param里面的东西全都是从server response里面找出来的。。。

    要从client request里面找东西的话估计只有自己写函数或者让开发给你个dll挂上去了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2008-1-4 10:08:35 | 只看该作者
    我们已经回复DEV说不可以了
    有空我再试试
    各位老大都知道我的意思吧?我这段参数是从Jsp发出的,影像中那个涵数动态接受server的参数的.

    [ 本帖最后由 mustwangrong 于 2008-1-4 10:11 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    7#
    发表于 2008-1-3 17:02:13 | 只看该作者
    绝对是可以实现的!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2008-1-3 13:53:10 | 只看该作者
    是可以的呀..只要的设置好边界条件.然后应该就可以匹配出来
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-8 14:06 , Processed in 0.082356 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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