急!请高手指点
LR并发50个用户运行一段时间后,出现错误Error : Unable to save to parameter lrs_save_searched_string :. Error code : 9015.
(单用户运行正确,脚本应该没有问题)
50个用户运行几分钟后,就有部分用户退出,有的是事务失败,有的是直接出现error。
报的都是9015问题 数据的接收有问题,代码贴出来看看 我也遇到过这个问题,应该是服务器的问题,服务器没有响应,所以才会保存失败,可以用少量用户先试试,如果没有问题,说明不是脚本的问题 应该是某个查询中返回数据的接收有问题,没有将全部的数据接收完,而剩下的部分数据被留到下一个buffer的接收中,从而导致了后面接收到的buffer有问题 原帖由 nishuangxi 于 2008-2-1 11:27 发表 http://bbs.51testing.com/images/common/back.gif
我也遇到过这个问题,应该是服务器的问题,服务器没有响应,所以才会保存失败,可以用少量用户先试试,如果没有问题,说明不是脚本的问题
同意 。
先用几个用户跑下试试。没问题,再增加用户。 看增加到多少用户会出现问题。
或许会发现点问题呢! 那出现这种问题该如何解决啊?现在工作进行不下去了。我需要测试内存泄露,用户量少或者运行时间短都不行啊 代码如下:
Action()
{
char buf;
int sendLen=0;
char strHeader[]="5A01000000000000";
int headerLen=0;
headerLen = strlen(strHeader);
lr_start_transaction("Trans_7061");
lrs_create_socket("socket0", "TCP", "LocalHost=0", "RemoteHost=128.32.100.112:8666", LrsLastArg);
sprintf(buf, "%s", lr_eval_string(
"5A01000000000000"
"<?xml version=\"1.0\" ?>\n"
"<Root>\n"
"<Head>\n"
"<Version>01</Version>\n"
"<TxCode>7061</TxCode>\n"
"<FuncCode>000</FuncCode>\n"
"<Channel>0005</Channel>\n"
"<SubCenterId>{tstSubCenterID}</SubCenterId>\n"
"<NodeId>{tstNodeID}</NodeId>\n"
"<TellerId>{tstTellerID}</TellerId>\n"
"<TxSeqId>{tstTxSeqID}</TxSeqId>\n"
"<UserId>{tstUserID}</UserId>\n"
"<TxDate>20080118</TxDate>\n"
"<TxTime>140158</TxTime>\n"
"</Head>\n"
"<Body>\n"
"<UnitTellerId>{tstUnitTellerID}</UnitTellerId>\n"
"<BusiType>1</BusiType>\n"
"<SecAcct></SecAcct>\n"
"<SecPwdChkFlag>0</SecPwdChkFlag>"
"<SecAcctPwd>5H1gToMGKs8jVj548/0=</SecAcctPwd>\n"
"<SavAcctId>0000000100000006</SavAcctId>\n"
"<TxAmount>0020</TxAmount>\n"
"<CurCode>CNY</CurCode>\n"
"<DepId>{tstDepID}</DepId>\n"
"<SavAcctType>1</SavAcctType>\n"
"</Body>\n"
"</Root>\n")
);
sendLen=strlen(buf);
lr_log_message("len=%d", sendLen);
sprintf(strHeader+8, "%08X", sendLen);
lr_log_message("strHeader=%s",strHeader);
memcpy(buf, strHeader, headerLen);
lr_log_message("%s",buf);
lrs_set_send_buffer("socket0",buf,strlen(buf));
lrs_send("socket0", "buf0", LrsLastArg);
lr_log_message("%d",strlen(buf));
//lrs_receive("socket0", "buf1", LrsLastArg);
lrs_receive_ex("socket0", "buf1", "BinaryStringTerminator=\\x00", LrsLastArg);
lrs_save_searched_string("socket0",NULL,"strResult","LB/BIN=<RespCode>","RB/BIN=</RespCode>",1,0,-1);
if ( strncmp(lr_eval_string("{strResult}"),"E",1) == 0 ) {
lr_end_transaction("Trans_7061", LR_FAIL);
//lr_log_message("strResult=[%s]",lr_eval_string("{strResult}"));
lrs_save_searched_string("socket0",NULL,"strResult","LB/BIN=<RespMsg>","RB/BIN=</RespMsg>",1,0,-1);
} else {
lr_end_transaction("Trans_7061", LR_PASS);
}
lrs_close_socket("socket0");
return 0;
} 使用了lrs_set_receive_option 中的EndMarker变量? 上边该脚本的完整代码,没有使用lrs_set_receive_option 中的EndMarker变量啊。
减少并发用户也不行,50个用户运行3分钟左右报错。10个用户5分钟左右,3个用户20分钟左右 我也遇到这个问题了。。楼主解决了没? 偶也是这样的问题,已用户数量不多,只有4个并发。
LR9。0
脚本回放是正确有,PASS了25个事情,failed有4个。
怀疑是服务器无法即时返回数据所导致。QQ:274906097
如有人解决的,请共享一下你的经历。谢谢
页:
[1]