51Testing软件测试论坛

标题: 急!请高手指点 [打印本页]

作者: lihua_1268    时间: 2008-2-1 11:15
标题: 急!请高手指点
LR并发50个用户运行一段时间后,出现错误
Error : Unable to save to parameter lrs_save_searched_string :. Error code : 9015.
(单用户运行正确,脚本应该没有问题)

50个用户运行几分钟后,就有部分用户退出,有的是事务失败,有的是直接出现error。
报的都是9015问题
作者: iori    时间: 2008-2-1 11:26
数据的接收有问题,代码贴出来看看
作者: nishuangxi    时间: 2008-2-1 11:27
我也遇到过这个问题,应该是服务器的问题,服务器没有响应,所以才会保存失败,可以用少量用户先试试,如果没有问题,说明不是脚本的问题
作者: iori    时间: 2008-2-1 11:30
应该是某个查询中返回数据的接收有问题,没有将全部的数据接收完,而剩下的部分数据被留到下一个buffer的接收中,从而导致了后面接收到的buffer有问题
作者: cuizhihui    时间: 2008-2-1 11:32
原帖由 nishuangxi 于 2008-2-1 11:27 发表
我也遇到过这个问题,应该是服务器的问题,服务器没有响应,所以才会保存失败,可以用少量用户先试试,如果没有问题,说明不是脚本的问题


同意 。

先用几个用户跑下试试。没问题,再增加用户。 看增加到多少用户会出现问题。

或许会发现点问题呢!
作者: lihua_1268    时间: 2008-2-1 11:33
那出现这种问题该如何解决啊?现在工作进行不下去了。我需要测试内存泄露,用户量少或者运行时间短都不行啊
作者: lihua_1268    时间: 2008-2-1 11:36
代码如下:
Action()
{

        char buf[4096];
        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;
}
作者: iori    时间: 2008-2-1 11:47
使用了lrs_set_receive_option 中的EndMarker变量?
作者: lihua_1268    时间: 2008-2-1 18:02
上边该脚本的完整代码,没有使用lrs_set_receive_option 中的EndMarker变量啊。

减少并发用户也不行,50个用户运行3分钟左右报错。10个用户5分钟左右,3个用户20分钟左右
作者: whyleave    时间: 2008-9-22 17:13
我也遇到这个问题了。。楼主解决了没?
作者: xuebao_zx    时间: 2009-3-17 14:10
偶也是这样的问题,已用户数量不多,只有4个并发。
LR9。0
脚本回放是正确有,PASS了25个事情,failed有4个。
怀疑是服务器无法即时返回数据所导致。QQ:274906097

如有人解决的,请共享一下你的经历。谢谢




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