51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2033|回复: 10
打印 上一主题 下一主题

[原创] 再问个关联的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-7-5 10:14:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在的脚本里面有几个需要关联的地方,但是在不做关联的时候运行脚本也不出错,只不过是无法实现对应的功能。具体情况如下:

现在程序需要实现一个上报的功能,程序主要流程如下。
首先由上级单位分配一个任务给下级单位,下级单位对此任务进行处理(主要就是那些填报数据,审核数据,改正错误之类的操作),进行完处理以后需要将数据上报给上级单位。我现在就要录制这里上报操作。

现在是在上级单位分配任务的时候,自动产生一个任务编号,这个编号一直跟随着任务的执行直到上报完成,对应每个任务编号都是不同的,现在我录制完脚本以后,编号固定。在执行脚本的时候,没有错误提示,但是由于是任务不同,编号不同,所以对应其他用户,该上报操作无法完成(编号错误的话,无法识别出该任务,也就无法进行操作)。

在运行完脚本以后无法实现自动关联,因为这个任务编号不是每次登录服务器都自动生成一个的,这个编号是随着任务的流程走的,如果任务流程没有结束,登录多少次都是同一个编号。另外,编号是和用户对应的,每个用户同时只能有一个任务,也就只能有一个编号,但是当这个任务完成,下个任务来到的时候,该用户对应的任务编号又变了。

下边把我录制的脚本贴出来(其中我找出来带有需要关联数据的两个事务),大家看看该怎么进行手动关联(我是新手,对脚本修改问题很头疼,不知道在什么地方修改之类的,现在着急用,希望大家帮助,尽量把步骤说详细点,谢谢了)。

其中蓝色部分是参数集中的地方,那里面的4474就是我说的任务号,同样的数据还出现在这段代码的其他地方。
大家帮忙说说该如何关联,具体代码是什么,写在什么地方?谢谢!


lr_start_transaction("点击树");

        lr_think_time(14);

        web_url("workflowProcessExecuteTaskList.do",
                "URL=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskList.do?taskFuncCode=R&businessTypeID=BAS",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t6.inf",
                "Mode=HTML",
                LAST);

        web_url("workflowProcessExecuteTaskDetail.do",
                "URL=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskDetail.do?operate=view&piID=4474",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t7.inf",
                "Mode=HTML",
                LAST);

        web_submit_data("workflowProcessExecuteShowButton.do",
                "Action=http://192.168.0.77:9090/efmweb/workflowProcessExecuteShowButton.do",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskList.do?taskFuncCode=R&businessTypeID=BAS",
                "Snapshot=t8.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=operate", "Value=button", ENDITEM,
                “Name=piID", "Value=4474", ENDITEM,
                "Name=nodeID", "Value=NT0751053214468", ENDITEM,
                "Name=businessTypeID", "Value=BAS", ENDITEM,
                "Name=taskFuncCode", "Value=R", ENDITEM,
                EXTRARES,
                "Url=scheme/images/a_83.gif", "Referer=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskList.do?taskFuncCode=R&businessTypeID=BAS", ENDITEM,
                LAST);

        lr_end_transaction("点击树",LR_AUTO);

        lr_start_transaction("点上报");

        lr_think_time(15);

        web_submit_data("workflowProcessExecuteDoCommand.do",
                "Action=http://192.168.0.77:9090/efmweb/workflowProcessExecuteDoCommand.do",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskList.do?taskFuncCode=R&businessTypeID=BAS",
                "Snapshot=t9.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=operate", "Value=button", ENDITEM,
                "Name=piID", "Value=4474", ENDITEM,
                "Name=transitionID", "Value=LL0751053850234", ENDITEM,

                LAST);


        web_url("workflowProcessExecuteTaskList.do_2",
                "URL=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskList.do?operate=refresh&piID=4474&transitionID=LL0751053850234&nodeID=NT0751053214468&taskFuncCode=R&businessTypeID=BAS&selectedRow=0&viewOrLog=view",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskList.do?taskFuncCode=R&businessTypeID=BAS",
                "Snapshot=t10.inf",
                "Mode=HTML",
                LAST);

        web_submit_data("workflowProcessExecuteShowButton.do_2",
                "Action=http://192.168.0.77:9090/efmweb/workflowProcessExecuteShowButton.do",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskList.do?operate=refresh&piID=4474&transitionID=LL0751053850234&nodeID=NT0751053214468&taskFuncCode=R&businessTypeID=BAS&selectedRow=0&viewOrLog=view",
                "Mode=HTML",
                ITEMDATA,
                "Name=operate", "Value=button", ENDITEM,
                "Name=piID", "Value=4474", ENDITEM,
                "Name=nodeID", "Value=NT075105351546", ENDITEM,
                "Name=businessTypeID", "Value=BAS", ENDITEM,
                "Name=taskFuncCode", "Value=R", ENDITEM,
                LAST);

        web_url("workflowProcessExecuteTaskDetail.do_2",
                "URL=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskDetail.do?operate=view&piID=4474",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t11.inf",
                "Mode=HTML",
                LAST);

        lr_end_transaction("点上报",LR_AUTO);
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-7-5 11:03:22 | 只看该作者
我处理这情况的方法是,在需要关联使用某个由前面动作产生的参数时,在Vuser的Tree View右侧的server response的Body中寻找Form,在其中寻找相应产生参数的代码,用web_reg_save_param()把它保存下来,用在后面需要关联的地方。
例如,你的脚本:
lr_start_transaction("点击树");

        lr_think_time(14);

        web_url("workflowProcessExecuteTaskList.do",
                "URL=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskList.do?taskFuncCode=R&businessTypeID=BAS",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t6.inf",
                "Mode=HTML",
                LAST);

        web_url("workflowProcessExecuteTaskDetail.do",
                "URL=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskDetail.do?operate=view&piID=4474",
                "Resource=0",
                "RecContentType=text/html",
                "Referer=",
                "Snapshot=t7.inf",
                "Mode=HTML",
                LAST);

//这里需要用到关联数据,就要到上面的两个url的server response中寻找产生piID的地方,把它记录下来,在下面进行替换。
//一般都可以在server response的Body的form中找到,参数的名字也一样,仔细找找吧。
        web_submit_data("workflowProcessExecuteShowButton.do",   
                "Action=http://192.168.0.77:9090/efmweb/workflowProcessExecuteShowButton.do",
                "Method=POST",
                "RecContentType=text/html",
                "Referer=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskList.do?taskFuncCode=R&businessTypeID=BAS",
                "Snapshot=t8.inf",
                "Mode=HTML",
                ITEMDATA,
                "Name=operate", "Value=button", ENDITEM,
                “Name=piID", "Value=4474", ENDITEM,
                "Name=nodeID", "Value=NT0751053214468", ENDITEM,
                "Name=businessTypeID", "Value=BAS", ENDITEM,
                "Name=taskFuncCode", "Value=R", ENDITEM,                 EXTRARES,
                "Url=scheme/images/a_83.gif", "Referer=http://192.168.0.77:9090/efmweb/workflowProcessExecuteTaskList.do?taskFuncCode=R&businessTypeID=BAS", ENDITEM,
                LAST);

        lr_end_transaction("点击树",LR_AUTO);

不知道你能不能理解~~不明白继续跟帖~~sdlkfj2

[ 本帖最后由 suoyi 于 2007-7-5 11:17 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-7-5 12:00:40 | 只看该作者
//这里需要用到关联数据,就要到上面的两个url的server response中寻找产生piID的地方,把它记录下来,在下面进行替换。

这里面说得产生piID的地方,是在脚本里面的吗?
是不是说在脚本里面会有一行或多行,那个脚本的功能就是产生这个参数呢?

另外,我录制的时候是用的多协议录制,然后协议里面只选择Web(http)这一个,因为我用单脚本录制的时候程序经常到某个步骤停止响应,例如在列表显示的时候一直显示“正在载入”,然后就停了。  在多协议录制的时候,我这里面的录制LOg里面没有找到那些server response的东西,都是一些什么Server,clinet之类的,不知道你说的这个地方在那个日志里面找?

关键是我这个无法实现自动关联,不是登录一次就变一次的,太郁闷了,新手阿,什么都不懂呢,光录制过一些增加数据的脚本,什么都不用管,参数化一下就ok了。请高人执教啊!
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-7-5 13:03:20 | 只看该作者
我也是新手,呵呵~~
估计你使用Script View看脚本的,选择菜单View->Tree View,就能以树的形式看到脚本每步,右侧能看到 Page View | Server response | Client request,一般都是选中Page View显示每步的快照。我的意思就是在Server response中找到form,在其中寻找生成piID的地方。注意找到生成piID的那步后,再回到Script View中在这页面前加入web_reg_save_param(),获取piID的值。你只要在Tree View中选中那步,回到Script View时光标会自动定位到这条语句的前面。

[ 本帖最后由 suoyi 于 2007-7-5 13:15 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-7-5 13:12:00 | 只看该作者
使用工具栏上的按钮也行

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-7-22 19:18:00 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2007-7-22 22:01:22 | 只看该作者
原帖由 suoyi 于 2007-7-5 13:03 发表
我也是新手,呵呵~~
估计你使用Script View看脚本的,选择菜单View->Tree View,就能以树的形式看到脚本每步,右侧能看到 Page View | Server response | Client request,一般都是选中Page View显示每步的快照 ...



用这个方法比较好。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2007-7-23 16:01:45 | 只看该作者
sdlkfj6 就得手动,不能自动
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-8-10 12:26:24 | 只看该作者
问下什么样的脚本才可以自动关联啊?我录了N个脚本都没法自动关联~~~
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-8-13 12:06:21 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2007-8-14 15:51:32 | 只看该作者
还是没有怎么明白 回家的时候弄弄 但是也学到了知识呀
我原来还以为只能手动关联呢
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-12 14:12 , Processed in 0.077355 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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