51Testing软件测试论坛

标题: 为何并发后会出现无法取到关联参数,而单次回放时可以成功? [打印本页]

作者: xiao_jie98    时间: 2005-11-30 11:13
标题: 为何并发后会出现无法取到关联参数,而单次回放时可以成功?
现在碰到一个问题,脚本分成新增、修改,关联做在新增这个action里,单次回放没问题,可并发就报错:“ManPower_add.c(270): Error -26377: No match found for the requested parameter "NameId". 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”,我以前好像碰到过这个问题,然后我把关联改到修改的action里后就可以了,所以我想问问大家,并发时的原理是怎样的?为什么关联做在两个不同的action里会有不同的并发结果?是不是因为若做在“新增”里,并发一多,关联参数会被覆盖?
作者: xiao_jie98    时间: 2005-11-30 11:15
补充:并发数为2时还不会报错,但并发数为5时就报上述错误了
作者: lotus    时间: 2005-11-30 11:30
能把你脚本的大致框架放上来看看吗,可能是你脚本的组织有问题,试试把一些数值参数化,使你的NameId能对应关联上
作者: xiao_jie98    时间: 2005-11-30 11:32
数值是已经参数化了的,比如姓名、身份证号等,应该不是因为新增没成功的问题
作者: 雪儿    时间: 2005-11-30 12:24
发现很多人对关联和参数化的理解混淆了,这是2个不同操作处理。
作者: xiao_jie98    时间: 2005-11-30 12:36
雪儿,你没理解我说的意思,我可没把关联和参数化混淆:)
作者: xyuan007    时间: 2005-11-30 13:49
你的“NameId”这个参数有多少个值?
你的并发数是多少?参数更新策略是什么?
怀疑你的参数不够多。
作者: jut984907    时间: 2005-11-30 15:41
标题: 会不会是压力已经比较大了?
既然2个用户并发可以成功,脚本应该没问题。
  我这里也遇到类似的情况:150个用户并发成功,200个就有类似的错误。当然,我这里应该是因为服务器压力太大,没有返回自己关联的参数;
  不过楼主的5个用户应该没问题吧。
  另外,会不会是因为系统有什么设置:不允许太多用户并发?
作者: sarah_2008    时间: 2005-11-30 17:07
好像是参数化的问题,在参数化文件里多准备一些数据试试!或改动一下参数化的设置

[ 本帖最后由 sarah_2008 于 2005-11-30 17:08 编辑 ]
作者: GIGI456    时间: 2005-11-30 17:29
就是参数化的问题,你要时有100个虚拟用户,则你的nameid也必须有100个才可以的。你试一试吧!
作者: sarah_2008    时间: 2005-12-1 09:35
还要考虑循环次数!如果参数化设置的不对,有可能导致参数化文件里准备的数据不够用!
作者: 测试小子    时间: 2005-12-1 10:27
需要看看你的脚本先
作者: xiao_jie98    时间: 2005-12-2 11:21
很感谢楼上各位的解答,这两天一直在找原因,现在大概知道是什么问题了。
仔细看了日志,参数化没问题,问题出在程序,由于保存时还生成一个唯一的id号,若两个用户同时新增数据,则无法成功,所以会出现取不到关联参数的问题
作者: jut984907    时间: 2005-12-2 14:46
标题: 楼主明白了,俺可糊涂了
到底是关联、还是参数,一定要搞清楚啊
作者: sarah_2008    时间: 2005-12-2 15:40
Error -26377: No match found for the requested parameter "WCSParam_Diff1". 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
我也遇到了这个问题
依楼主的意思,要解决这个问题,改动一下关联的位置就可以了吗?
作者: xiao_jie98    时间: 2005-12-2 16:57
我前面有的说得不对,这种情况改关联位置也没用。

to  jut984907:和参数、关联都没关系,准确地说我认为是程序有问题,因为新增不成功,导致关联参数取不到,和测试脚本没关系

所以,现在我认为这个问题没关系,因为这是程序的一个保护措施,即无法同时新增,而用controller并发时,难免会有同时增加的情况,所以不成功报错也是正常的,我这样理解应该没错吧?还请高手们赐教:)
作者: sarah_2008    时间: 2005-12-5 09:37
to xiao_jie98 ,你说的有一定道理,这个问题应该怎么解决呀?请高手指教!

[ 本帖最后由 sarah_2008 于 2005-12-5 09:38 编辑 ]
作者: annie    时间: 2005-12-5 11:05
标题: 如果是程序的问题,那为什么的并发2个可以成功呢?
如果是程序的问题,那为什么的并发2个可以成功呢?
作者: jut984907    时间: 2005-12-5 11:37
标题: 同意annie
原帖由 annie 于 2005-12-5 11:05 发表
如果是程序的问题,那为什么的并发2个可以成功呢?

新增时,生成唯一ID的情况在很多系统都是如此。
为什么2个可以,而多些就不行了呢?
和楼主一起探讨探讨~~
作者: xiao_jie98    时间: 2005-12-5 14:52
并发两个的时候不一定这两个是同时操作的,我做并发5个的时候,每次的结果都不同,有时候可以通过3个,有时候只能通过1个

to  sarah_2008:我认为要么让程序员改程序,要么可以忽略这个错误,因为测试脚本没问题啊
作者: sarah_2008    时间: 2005-12-5 16:09
怀疑是程序的错误!
作者: xiao_jie98    时间: 2005-12-5 16:49
据程序员说是定位到毫秒,可一样的系统,别的模块不会出现这个问题,我也正纳闷呢,不知道其他模块是怎么处理这种问题的,因为每条记录都是生成唯一id的
作者: jut984907    时间: 2005-12-6 09:01
标题:
既然性能测试时有可能在很短时间内产生唯一ID
在现实情况下,也比较有可能啊
作者: 测试小子    时间: 2005-12-7 10:40
不知道生成的唯一id的规则是什么,如果是时间戳的话就比较难处理,如果是数据库的seq生成的,可以参数化出来的
作者: xiao_jie98    时间: 2005-12-8 14:51
生成唯一id的规则是搜索数据库中最大的id值,然后在此基础上加1,id值是已经关联出来了,开发人员说时间已经定义到毫秒,所以我想这个问题应该关系不大,毕竟手工操作很难做到这么短的时间内同时操作,不知道大家有没有碰到这类情况,怎么解决?
作者: rain_wind    时间: 2006-4-16 14:41
to xiao_jie98 :你的报错是在执行“修改”时报错,还是执行“新增”时报错

[ 本帖最后由 rain_wind 于 2006-4-16 14:42 编辑 ]
作者: zhaoch    时间: 2006-4-17 13:28
标题: en
en
作者: mm_louis    时间: 2006-4-29 14:11
我的现在用loadrunner在数据库中不能增加记录,不知道为什么了,




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