LoadRunner+DLL压ICE接口仍是比较可行的
LoadRunner+DLL压ICE接口还是比较可行的
ICE接口性能太好了,用Ruby写的RoadRunner压不起来,估计改成进程方式会好很多。
用LR+DLL这个方法是很可行的。
Init
ICE接口性能太好了,用Ruby写的RoadRunner压不起来,估计改成进程方式会好很多。
用LR+DLL这个方法是很可行的。
Init
int id, scid; char *vuser_group; vuser_init() { lr_whoami(&id, &vuser_group, &scid); srand(id*scid*time()); lr_load_dll("iceclient_stresstest.dll"); Initialize("userService:default -h 10.2.224.242 -p 10002",1); return 0; }
char params[1024]; int rt = 0; char longId[32]; char nickname[32]; Action() { sprintf(nickname,"memUdb_%dx%dx%d",rand()%1000,rand()%1000,rand()%1000); switch(rand()%3){ case 0: sprintf(longId,"cntaobao%s",nickname); break; case 1: sprintf(longId,"cnalichn%s",nickname); break; case 2: sprintf(longId,"wangwang%s",nickname); } lr_save_string(nickname,"nickname"); lr_save_string(longId,"longId"); memset(params,0,1024); strcat(params,lr_eval_string("<?xml version=\"1.0\" encoding=\"gb2312\"?>")); strcat(params,lr_eval_string("<ICEPrx>")); strcat(params,lr_eval_string("<Case>")); strcat(params,lr_eval_string("<Param name=\"registerInfo\" type =\"Sequence\">")); strcat(params,lr_eval_string("<Param name=\"content\">")); strcat(params,lr_eval_string("<Param name=\"key\" type=\" ::std::string\">longId</Param>")); strcat(params,lr_eval_string("<Param name=\"value\" type=\"::std::string\">{longId}</Param>")); strcat(params,lr_eval_string("</Param>")); strcat(params,lr_eval_string("<Param name=\"content\">")); strcat(params,lr_eval_string("<Param name=\"key\" type=\" ::std::string\">userId</Param>")); strcat(params,lr_eval_string("<Param name=\"value\" type=\"::std::string\"></Param>")); strcat(params,lr_eval_string("</Param>")); strcat(params,lr_eval_string("<Param name=\"content\">")); strcat(params,lr_eval_string("<Param name=\"key\" type=\" ::std::string\">nickname</Param>")); strcat(params,lr_eval_string("<Param name=\"value\" type=\"::std::string\">{nickname}</Param>")); strcat(params,lr_eval_string("</Param>")); strcat(params,lr_eval_string("<Param name=\"content\">")); strcat(params,lr_eval_string("<Param name=\"key\" type=\" ::std::string\">password</Param>")); strcat(params,lr_eval_string("<Param name=\"value\" type=\"::std::string\">111111</Param>")); strcat(params,lr_eval_string("</Param>")); strcat(params,lr_eval_string("<Param name=\"content\">")); strcat(params,lr_eval_string("<Param name=\"key\" type=\" ::std::string\">email</Param>")); strcat(params,lr_eval_string("<Param name=\"value\" type=\"::std::string\">{nickname}@alibaba.com</Param>")); strcat(params,lr_eval_string("</Param>")); strcat(params,lr_eval_string("</Param>")); strcat(params,lr_eval_string("</Case>")); strcat(params,lr_eval_string("</ICEPrx>")); lr_start_transaction("LoadFunc"); rt = LoadFunc(params); lr_output_message("rt = %d",rt); if(rt == -1|| rt == -2){ lr_end_transaction("LoadFunc", LR_FAIL); } lr_end_transaction("LoadFunc", LR_AUTO); return 0; }
vuser_end() { return 0; }