51Testing软件测试论坛

标题: 多用户时关联出错了 [打印本页]

作者: lin_lp    时间: 2007-6-15 15:12
标题: 多用户时关联出错了
我在录完脚本后, 用了LR的自动关联(Correlation Studio).
脚本如下:
...
lr_start_transaction("Create Estimate Fee");
// [WCSPARAM WCSParam_Diff1 17 07EST-00000-00004] Parameter {WCSParam_Diff1} created by Correlation Studio
web_reg_save_param( "WCSParam_Diff1", "LB= value=\"", "RB=\"", "Ord=21", "Search=Body", "RelFrameId=1", LAST );
...
  web_submit_data("CapBySingle.do_3",
  "Action=http://test01-server.achievo.com:1080/portlets/cap/CapBySingle.do?module=Building",
  "Method=POST",
  "RecContentType=text/html",
  "Referer=http://test01-server.achievo.com:1080/portlets/cap/CapBySingle.do?mode=editPartialCap&serviceProviderCode=NOLA&ID1=07EST&ID2=00000&ID3={WCSParam_Diff3}&module=Building&isPartialCap=Y&CAP_INFO=INCOMPLETE",
  "Snapshot=t285.inf",
  "Mode=HTTP",
  ITEMDATA,
  "Name=value(FirstEntryURL)", "Value=", ENDITEM,
  "Name=value(CurrentEntryURL)", "Value=", ENDITEM,
  "Name=refresh_target", "Value=", ENDITEM,
  "Name=refresh_url", "Value=", ENDITEM,
  "Name=buttonName", "Value=", ENDITEM,
  "Name=modeName", "Value=editPartialCap", ENDITEM,
  "Name=module", "Value=Building", ENDITEM,
  "Name=accelasubmitbuttonname", "Value=editfeeEstimates", ENDITEM,
  "Name=CurrentViewID", "Value=", ENDITEM,
  "Name=generalCAPSearch", "Value=null", ENDITEM,
  "Name=objectName", "Value=", ENDITEM,
  "Name=CheckBoxName", "Value=", ENDITEM,
  "Name=MaxNumber", "Value=", ENDITEM,
  "Name=ExportFileType", "Value=print", ENDITEM,
  "Name=CurrentViewID", "Value=", ENDITEM,
  "Name=listID", "Value=", ENDITEM,
  "Name=printType", "Value=", ENDITEM,
  "Name=checkBoxValue", "Value=", ENDITEM,
  "Name=value(paLicenseId)", "Value=", ENDITEM,
  "Name=staffCollection", "Value=", ENDITEM,
  "Name=currentDept", "Value=", ENDITEM,
  "Name=value(mode)", "Value=add", ENDITEM,
  "Name=value(srTest)", "Value=", ENDITEM,
  "Name=value(capID*ID1)", "Value=07EST", ENDITEM,
  "Name=value(capID*ID2)", "Value=00000", ENDITEM,
  "Name=value(capID*ID3)", "Value={WCSParam_Diff3}", ENDITEM,
  "Name=value(capType)", "Value=Building/Estimate Fee/Estimate Fee/Estimate Fee", ENDITEM,
  "Name=value(capDetailModel*creatorDeptAlias)", "Value=", ENDITEM,
  "Name=value(capModel*capSubType)", "Value=", ENDITEM,
  "Name=date(capDetailModel*closedDate)", "Value=", ENDITEM,
  "Name=date(capDetailModel*completeDate)", "Value=", ENDITEM,
  "Name=date(capDetailModel*scheduledDate)", "Value=", ENDITEM,
  "Name=value(capDetailModel*completeDept)", "Value=", ENDITEM,
  "Name=value(capDetailModel*completeStaff)", "Value=", ENDITEM,
  "Name=value(capDetailModel*closedDept)", "Value=", ENDITEM,
  "Name=value(capDetailModel*closedBy)", "Value=", ENDITEM,
  "Name=value(capDetailModel*severity)", "Value=", ENDITEM,
  "Name=value(jobValue)", "Value=0.00", ENDITEM,
  "Name=value(capDetailModel*totalFee)", "Value=0.0", ENDITEM,
  "Name=value(capDetailModel*totalPay)", "Value=0.0", ENDITEM,
  "Name=value(capDetailModel*balance)", "Value=0.0", ENDITEM,
  "Name=value(blank1)", "Value=", ENDITEM,
  "Name=value(blank2)", "Value=", ENDITEM,
  "Name=value(blank3)", "Value=", ENDITEM,
  "Name=value(blank4)", "Value=", ENDITEM,
  "Name=value(blank5)", "Value=", ENDITEM,
  "Name=value(capDetailModel*totalJobCost)", "Value=0.0", ENDITEM,
  "Name=value(b1ExpirationModel*expStatus)", "Value=", ENDITEM,
  "Name=date(b1ExpirationModel*expDate)", "Value=", ENDITEM,
  "Name=date(capModel*reportedDate)", "Value=06/14/2007", ENDITEM,
  "Name=value(capModel*reportedTime)", "Value=", ENDITEM,
  "Name=value(capID)", "Value={WCSParam_Diff1}", ENDITEM,
  "Name=value(capDetailModel*priority)", "Value=", ENDITEM,
  "Name=value(capModel*capStatus)", "Value=", ENDITEM,
  "Name=value(capDetailModel*shortNotes)", "Value=", ENDITEM,
  "Name=date(capModel*fileDate)", "Value=06/14/2007", ENDITEM,
  "Name=value(capDetailModel*reportedChannel)", "Value=", ENDITEM,
  "Name=value(capWorkDescriptionModel*description)", "Value=", ENDITEM,
  "Name=value(capModel*altID)", "Value=EST-{WCSParam_Diff1}", ENDITEM,
  "Name=value(capDetailModel*asgnDept)", "Value=", ENDITEM,
  "Name=value(capDetailModel*asgnStaff)", "Value=", ENDITEM,
  "Name=date(capDetailModel*asgnDate)", "Value=", ENDITEM,
  "Name=isAppSpecInfo", "Value=1", ENDITEM,
  "Name=app_spec_info_FEERECALC_Fee_parameters1", "Value=23.5", ENDITEM,
  "Name=app_spec_info_FEERECALC_Fee_parameters2", "Value=500", ENDITEM,
  "Name=app_spec_info_FEERECALC_Fee_parameter3", "Value=3.05", ENDITEM,
  "Name=app_spec_info_FEERECALC_Fee_parameter4", "Value=100", ENDITEM,
  "Name=value(mode)", "Value=New", ENDITEM,
  "Name=editPar", "Value=2112", ENDITEM,
  "Name=allViewIDGroup", "Value=225", ENDITEM,
  "Name=viewGroup", "Value=225", ENDITEM,
  "Name=formGroup", "Value=capDetailForm", ENDITEM,
  "Name=capType", "Value=Building/Estimate Fee/Estimate Fee/Estimate Fee", ENDITEM,
  "Name=fromModel", "Value=Cap", ENDITEM,
  "Name=modelId", "Value=", ENDITEM,
  "Name=fromEditPartialCap", "Value=Y", ENDITEM,
  LAST);
...

1User持续跑15分钟, 没有任何错误.
但是我将User调到10个以后, 脚本刚刚运行就出现错误.
错误信息如下:
Action.c(860): 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.

[ 本帖最后由 lin_lp 于 2007-6-15 15:19 编辑 ]
作者: lin_lp    时间: 2007-6-15 15:20
问题:
1. 这种错误如何解决?
2. 为何这个错误在单用户时没发生.在多用户时才出现.
作者: lin_lp    时间: 2007-6-15 15:42
刚刚找到一篇关于LR如何做关联的资料.
但是仍然不是很明白. 我的脚本为何单用户时没问题. 多用户时会有问题.
作者: wangkunkevin    时间: 2007-6-15 17:35
先别着急跑10个用户,一般脚本做完后,跑一个2X2看看能不能跑的通,这样数据少了,比较方便你找出问题来!
作者: lin_lp    时间: 2007-6-15 17:38
请高手出来指教一下.
作者: lin_lp    时间: 2007-6-16 09:39
试了2X2, 仍然会出现上述的关联错误.
请高手指教, 如何才能找出关联中存在的问题.
作者: lin_lp    时间: 2007-6-16 11:00
根据提示我猜想有以下两种可能性:
1. 没有匹配的参数. (可能是关联边界选取不对, 也可能是属性值不对)
2. 参数值的字符数过多,按提示要使用web_set_max_html_param_len.

我重新手工定义了关联的边界, 但仍然会出现这种错误.
1. 是否我的关联边界选取错误? 如果边界含有特殊字符"(引号)该如何处理?(且这个字符是必须的)
2. 是否参数的属性值不对? 如何判定我需要关联的参数属于何种属性值?
3. 是不是应该按提示使用web_set_max_html_param_len?  这个函数应该如何使用呢?
作者: lin_lp    时间: 2007-6-16 11:08
我一共做了5个LR脚本, 其中有两个脚本出现了上述问题.
我总结了一下出现问题的关联, 都是需要关联的值中有"-"的, 如这个例子中说描述到的. 需要被关联的值是"07EST-00000-00004". 难道这个值比较特殊吗? 它的保存和获取有一些特殊的处理方式吗?
不断偿试中...
也希望路过的高手能帮我解决一下这个问题.
作者: lin_lp    时间: 2007-6-16 15:47
这个是我打开Log后, 查到的第一个出更我需要关联的数据.
[attach]27475[/attach]
根据我在网上找到的资料, 关联选择的左边界应该是唯一识别要找的动态数据的字符串. 很遗憾,要做到这一点. 我必须选取的左边界识别的字符串应该是 [ LB = input type="hidden" name="value(altID,0)" value="EST ].
但是这个字符串中有特殊字符" 双引号, 如果直接将上面这段放在关联中, LR连编译都过不鸟.
问题:
1. 双引号这种特殊该如何处理?
2. 为何我用LR的自动关联出来的结果是web_reg_save_param( "WCSParam_Diff1", "LB= value=\"", "RB=\"", "Ord=21", "Search=Body", "RelFrameId=1", LAST ); 这里的左边界和我所找到的完全不一样.
作者: yuanlj    时间: 2007-6-16 22:06
我想你应该查下web_reg_save_param函数的使用方法,自动关联的意思是取第21个value=“   与  “之间的值,其中引号在关联中已经表示得很清楚了,就是 \"  这种方法
作者: yuanlj    时间: 2007-6-16 22:09
在做性能测试中,最好搞清楚需要关联的值是代表什么意义,为什么需要关联,而不是根据脚本录制的结果去判断是否需要关联。
作者: lin_lp    时间: 2007-6-18 09:41
谢谢yuanlj的帮助和提点.
1. 其实那个引号的处理, 在我发贴后就已经发现了.  只是那个Ord=21一直让我不解. 现在终于明白了.
2. 这个值我是决定要做参数化的, 用LR的自动关联只是为了找到在何处参数化.
3. 由于项目时间紧张的关系, 我已经在这个脚本中放弃了做这种关联, 改用手工参数化. 这个值产生的规律就是前缀不变, 后缀每次+1.




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