51Testing软件测试论坛

标题: loadrunner socket编程,关于并发的疑问 [打印本页]

作者: jieyange    时间: 2011-10-17 14:46
标题: loadrunner socket编程,关于并发的疑问
init:
#include "lrs.h"
int i=0;
#define MAX_NUM 100
#define SEND_TIME 100
int socketID[MAX_NUM];
static int index = 0;
vuser_init()
{
    lrs_startup(257);
        memset(socketID, 0, MAX_NUM*sizeof(int));
    return 0;
}

action:
#include "lrs.h"


char socketId[12];
char data[256] = "[ccccccccccc1(ITV085902A2277.7777N11177.<yj>E555.522201110120000)]";
int seeds = 0;
int ret = 0;
Action()
{
        data[1] = 0x93;
        data[12] = 0x35;
        lr_rendezvous("大量发送数据");
        lr_think_time(5);
        lr_start_transaction("senddata");
seeds = 10000*srand(time(NULL));
        memset(socketId, 0, 12 );
        sprintf(socketId, "socket%d", abs(seeds));
        ret = lrs_create_socket(socketId, "TCP", "LocalHost=0", "RemoteHost=192.168.1.230:4018", LrsLastArg);
        if( ret == 0 ) {  
                for(i=0; i<1; i++ ) {
                lrs_set_send_buffer(socketId, data, strlen(data));
                        lr_output_message("socketid=%s, send data is %s, return value is: %d", socketId, data, ret);
                lrs_send(socketId, "data3", LrsLastArg);
                }
       lrs_close_socket(socketId);
        }       
    lr_end_transaction("senddata", LR_AUTO);
    return 0;
}

脚本大致就是这样的
遇到的问题是:压力测试,测的是网关那块的,因为要建立大量的不同用户进行数据并发,基于每个用户得建立一个socket连接,所以脚本就那样写了,可是问题是连接建立起来了,但10用户连上去就6-7个发送数据成功了,这是为什么啊?求高人指导,谢谢
作者: jieyange    时间: 2011-10-17 14:48
在线等答案,已经1个星期了 还是没有解决,如果高人方便,可以加我QQ:12296618,不胜感激~
作者: 真实的追求者    时间: 2011-10-17 14:59
等待高人解决
作者: 8463212    时间: 2011-10-17 16:03
首先查看一下有多少用户登录成功啦   完事才能确定数据发送成功
作者: jieyange    时间: 2011-10-18 15:31
回复 4# 8463212
连接都是成功的,但是服务端接收数据有时会接收不到,而且每次成功的比例不相同




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