51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 8138|回复: 25
打印 上一主题 下一主题

[原创] LR 并发2个用户时,一个用户可以通过,另一个用户就报错26377错,求达人解决

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-5-31 17:13:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
背景:脚本是一个添加一个记录的操作,对生成的记录的ID做了一个关联。
脚本单独可以运行通过,获取的关联值也正确,在controller中并发一个用户也可以通过,获取到正确的关联值,并发2个用户时,其中一个用户可以正常通过,另一个则报错26377错。
在论坛上也搜到很多该类问题,但是和我的都不太一样,自己也尝试了一些方法,但始终不得解。
在controller中log中错误是:
Action.c(796): Error -26377: No match found for the requested parameter "logicId". Check whether the requested boundaries exist in the response data. Also, if the data you want to save exceeds 1024 bytes, use web_set_max_html_param_len to increase the parameter size  
logicId为我关联值,

我把整个页面的body返回值也做了关联,出错返回值如下:
throw 'allowScriptTagRemoting is false.';\r\n//#DWR-INSERT\r\n//#DWR-REPLY\r\ndwr.engine._remoteHandleException('18','0',{javaClassName:"com.A.common.util.except.UserException",message:"\u7528\u6237\u672A\u767B\u5F55,\u7981\u6B62\u64CD\u4F5C!"});\r\n".

正确的返回值应该如下这样:
throw 'allowScriptTagRemoting is false.';
//#DWR-INSERT
//#DWR-REPLY
dwr.engine._remoteHandleCallback('18','0',"T_LOGIC_DEVICE_STP-8a8083ea2fd2e3bc012fe806d58c1f46@T_PHY_DEVICE_COMMON-8a8083ea2fd2e3bc012fe806d5bf1f48");
请问该种情况是被测试系统问题,还是我脚本的问题啊?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-5-31 17:15:26 | 只看该作者
//{logicId}=T_LOGIC_DEVICE_STP-8a8083ea2fd2e3bc012fe806d58c1f46
        web_reg_save_param("logicId",
                "LB/IC=T_LOGIC_DEVICE_STP-",
                "RB/IC=@",
                "Search=Body",
//                "NotFound=warning",
                "Ord=1",
                LAST);

这是我设置的关联函数,感觉我设置的关联函数应该没有错误,
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2011-5-31 19:20:06 | 只看该作者
业务问题可能是2个用户连接另外一个用户并没有正常的读到数据页面
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2011-5-31 20:33:03 | 只看该作者
你把这个关联值输出来看一下。是否是自己的关联的值嘛!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2011-5-31 22:14:59 | 只看该作者
1、关联值发生变化,后台已经报错
2、关联取回来的值太大了,保存不了
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2011-5-31 23:35:28 | 只看该作者
回复 5# lijian509


   1。后台的log是报错了
  2.应该排除关联值太大的问题,我是把整个返回值取出,但是另一个用户的返回中没有包含我想要取的值
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2011-5-31 23:37:45 | 只看该作者
回复 3# 云层


    请详细指点下,是另一个用户没有读取到正确的页面,但是为什么会发生这样的问题,是不是系统的问题啊?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2011-5-31 23:41:20 | 只看该作者
业务问题可能是2个用户连接另外一个用户并没有正常的读到数据页面
云层 发表于 2011-5-31 19:20



    麻烦能详细指点下不,我都已经购买了你的书啦,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2011-6-1 11:08:16 | 只看该作者
自己顶
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2011-6-1 14:15:11 | 只看该作者
建议可以尝试改变一下录制协议重新录制。
用web_reg_save_param这个函数进行关联时,一般情况下建议用基于脚本的URL录制,或者用HTML录制,但是勾选“仅包含明确URL的脚本”。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2011-6-1 16:37:33 | 只看该作者
建议可以尝试改变一下录制协议重新录制。
用web_reg_save_param这个函数进行关联时,一般情况下建议用基于 ...
june871128 发表于 2011-6-1 14:15



    按照你说的我又重新录制一边,跑了一遍还是存在上述问题,看来不是录制脚本的问题
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2011-6-2 11:02:23 | 只看该作者
回复 11# daisy02


    那你通过日志看第二个用户是否登录成功,以查服务器是否返回了正确的页面。
如果是,那你可以考虑是否是你的服务器的并发能力问题,这个主要看是否是服务器
的参数设置不当。比如tomcat服务器的最大允许线程数和最大允许连接时间是否设置合理。
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2011-6-2 11:42:14 | 只看该作者
回复 11# daisy02

在web_reg_save_param函数之前设置web_set_max_html_param_len(“5000″),试试是否是返回值太大有关。如果还出现这样的问题,那么你的任务就完成了,接下来解决问题的过程由开发来发挥了。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2011-6-2 11:59:30 | 只看该作者
回复  daisy02

在web_reg_save_param函数之前设置web_set_max_html_param_len(“5000″),试试是否是返 ...
june871128 发表于 2011-6-2 11:42


我尝试过,应该不是返回值太大的问题,并且另一个用户登陆时成功的,我单独做多用户并发登陆都是成功的,后台不报错,并且查看controller的log中两个用户都获得到了不同的sessionID值
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2011-6-2 12:01:07 | 只看该作者
我觉得我脚本是没有问题的,并且曾怀疑是系统太慢,响应比较慢,我也加大了think time的时间,但是依然如此,
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2011-6-2 12:04:57 | 只看该作者
一点头绪都没有啦,为此还被领导海批,领导们都觉得是我的问题,我也没有办法,也找不出合理的证据说是研发程序的问题。领导们都是站着说话不腰疼的角。不知道你们在做场景并发时遇到问题时,都从哪些方面入手啊?
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2011-6-2 13:59:35 | 只看该作者
session ID 必须做手工关联?还是可以自动关联。
你可以试下自动关联脚本是否可以回放,另外可以手工并发登录(我是指在不用的PC上),因为你打开同一个IE可能会利用用一个sessionid
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2011-6-2 14:04:26 | 只看该作者
session ID 必须做手工关联?还是可以自动关联。
你可以试下自动关联脚本是否可以回放,另外可以手工并发登 ...
christixo 发表于 2011-6-2 13:59


用户等系统会获得sessionID,我用的手工关联,这个关联是没有问题的,而且每次都可以成功获得正确的值,登陆操作是没有问题,就是登陆后,并发添加记录就会有问题
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2011-6-2 14:09:01 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

20#
 楼主| 发表于 2011-6-8 16:11:49 | 只看该作者
该问题的原因找到了,2个用户并发时,其实有一个用户应该是没有正确登陆,导致后来的操作请求失败,后来解决的办法是,在录制的登录脚本中注释掉了关于amf的函数:
                web_custom_request("amf",
                "URL=http://IP:port/web/messagebroker/amf",
                "Method=POST",
                "Resource=0",
                "RecContentType=application/x-amf",
                "Referer=http://IP:port/web/air/managerview/index.swf",
                "Snapshot=t10.inf",
                "Mode=HTML",
                "EncType=application/x-amf",
                "BodyBinary=\\x00\\x03\\x00\\x00\\x00\\x01\\x00\\x04null\\x00\\x02......",
                EXTRARES,
                "Url=../air/managerview/assets/images_wg/w_resize.png", "Referer=http://IP:port/web/air/managerview/index.swf", ENDITEM,
                ...
                "Url=../air/managerview/assets/gmNetResManager/swf/shanxi.swf", "Referer=http://IP:port/web/air/managerview/index.swf", ENDITEM,
                LAST);
但是不知道为什么去除这个函数后,就可以正常并发登陆了那?
我用的是lr11.使用的协议的HTTP录制的,有知道原因的吗?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-25 09:54 , Processed in 0.097706 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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