51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2100|回复: 1
打印 上一主题 下一主题

[原创] 求教loadrunner场景运行winsock协议脚本不成功问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-4-12 20:00:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 237667173 于 2012-4-12 22:52 编辑

录制环境  lr11 winsock 协议.  录制.net程序, 脚本调试后回放正常(socket中send和receive包都能捕获到)
代码
int GetReceiveCharPoint(char* cSocket)
{
        int iGReceive,iMaxSize = 2084000,iRCount = 0,iReturn = 0;
        char cTmp[50];        
        lr_free_parameter("GetReceive");
        itoa(iMaxSize,cTmp,10);
        sprintf(cTmp,"NumberOfBytesToRecv=%d",iMaxSize);
        do
        {
                iReturn = lrs_receive_ex(cSocket,"bufYY",cTmp,LrsLastArg);
                iGReceive = lrs_get_last_received_buffer_size(cSocket);
                lrs_save_param(cSocket,NULL,"GetReceive",0,iGReceive);                        iRCount++;
                lrs_free_buffer("bufYY");
        }while (iGReceive == iMaxSize) ;
        lr_output_message(lr_eval_string("<GetReceive>"));   
        return iReturn;
}

int LrsSendAndReceive(char *buf_desc, int isReturn, int iTimeOut)
{
        int iGetReceive,iJudge;
        char cTmp[20];
        lrs_create_socket("socket0", "TCP", "RemoteHost=<ServerIp>:<ServerPort>", LrsLastArg);
        lrs_set_send_timeout(0,500);
        lrs_set_recv_timeout(0,iTimeOut);
        lrs_set_recv_timeout2(0,iTimeOut);
        lrs_send("socket0", buf_desc, LrsLastArg);
        if (isReturn) {
                iGetReceive = GetReceiveCharPoint("socket0");
        }
        lrs_close_socket("socket0");
        return iGetReceive;
}
action{
   ...
}
调用时都是直接调用LrsSendAndReceive函数进行发送的,回放时候很正常,但是在场景运行中(1个用户)都会获取不到数据, 用抓包工具查看后只发现lrs_create_socket时有保持tcp链接的数据,但看不到lrs_send数据,故也未有lrs_receive数据,有人见过类似现象吗.
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2012-4-13 10:39:13 | 只看该作者
坑爹啊,帖子这么快就沉了,自己顶顶吧,难道问题很简单导致高手都不屑回答吗...
自己研究解决了,这条代码折腾的  lrs_set_send_timeout(0,500);
设置超时时间过短会导致在场景运行时候直接退出了,接收也是,想不通回放就能正常为啥场景运行时候就那么快超时结束.
再问个问题吧(有点死心会有人回答了..): 这个超时时间要设置多少合适.. 还是有什么能动态拼接数据包机制使得不用每次都等待那端固定的10s?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-22 23:14 , Processed in 0.077149 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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