当前位置 博文首页 > newsyoung1的专栏:LoadRunner 并发测试

    newsyoung1的专栏:LoadRunner 并发测试

    作者:[db:作者] 时间:2021-09-19 10:25

    用LoadRunner 模拟10万个连接,并发发送数据。脚本如下:

    #include "lrs.h"
    
    Action()
    {
    	int NUM = 300;    //每个用户创建的连接数
    	int i=0;
    
    	//连接服务器
    	for(i=0; i< NUM; i++)
    	{
       	   char name[20];
    	   memset(name,0,20);
    	   sprintf(name,"socket%d",i);
    	   //lr_output_message("%s", name);
    	   lrs_create_socket(name,"TCP", "LocalHost=0", "RemoteHost=127.0.0.1:10011",LrsLastArg);
    	}
    
        //lr_rendezvous("OK");
    	 
    	//连接服务器,约定加密Key
    	for(i=0;i < NUM; i++)
    	{
    	   char name[20];
    	   memset(name,0,20);
    	   sprintf(name,"socket%d",i);
    
    	   lr_start_transaction("Login");
    
    	      
    	   lrs_receive(name, "buf_session_key",LrsLastArg);
    
    	   lrs_send(name, "buf_login_send", LrsLastArg);		   
    	   lrs_receive(name, "buf_login_rcv",LrsLastArg);
    
    	   lrs_send(name, "buf_validate_key_send", LrsLastArg);		   
    	   lrs_receive(name, "buf_validate_key_rcv",LrsLastArg);
    
    	   lr_end_transaction("Login", LR_PASS);	
    
    	}
    
    	//收发数据包
    	while(1)
    	{
    		//lr_rendezvous("OK2");
    		for(i=0;i < NUM; i++)
    		{
    		   char name[20];
    		   memset(name,0,20);
    		   sprintf(name,"socket%d",i);
    
    		   lr_start_transaction("Communicate");
    
    		   lrs_send(name, "buf_comm_send", LrsLastArg);		   
    		   lrs_receive(name, "buf_comm_rcv",LrsLastArg);
    
    		   lr_end_transaction("Communicate", LR_PASS);	
    
    
    		   if(i % 20 == 0)
    		   {
    			   lr_think_time(0.005);
    			   //lr_think_time(1);
    		   }		   
    		}
    		
    	}
    
    	//关闭服务器
    	for(i=0; i< NUM; i++)
    	{
    	   char name[20];
    	   memset(name,0,20);
    	   sprintf(name,"socket%d",i);
    	   lrs_close_socket(name);
    	}
    
    
        return 0;
    }
    
    

    data.ws 定义请求包(16进制格式)请求包长度,返回包长度

    ;WSRData 2 1
    
    recv buf_session_key 18
    
    send  buf_login_send 38
    "\x54\x48\x02\x00\x00\x00\x1c\x00\x00\x00\x74\x68\x69\x6e\x6b\x69\x76\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x35\x36\x36\x63\x63\x32\x66\x32"
    
    recv buf_login_rcv 415
    
    send  buf_validate_key_send 138
    "\x54\x48\x04\x00\x00\x00\x80\x00\x00\x00\x49\x0c\xf4\x1b\x25\x4d\x3d\x3c\x58\x13\xd1\xea\xdc\xeb\xa0\xef\xb3\x81\x02\xb8\xc3\x95\x8b\x85\xa5\xc4\xdb\xea\x6e\x1b\x59\x4d\x72\xcd\xb0\xd5\x40\x02\x90\x18\x46\x58\x59\x00\x8d\xcf\xb4\x2b\x7b\xad\xc2\xd1\xa6\x67\x05\x24\xbb\x9f\x22\xc9\x7b\x4d\xbb\x93\x15\x1d\x0c\xf1\x2e\xaf\x1c\xf6\xe9\x03\x13\x5d\x76\xf6\x7c\x8d\xa3\x72\x9f\x4e\x91\x15\x36\x99\xe7\x59\x7b\x88\xc2\xb8\x22\x65\x36\x40\x60\x30\x48\xa6\x9d\xc1\x93\x31\x05\x92\x8e\x06\xc1\x04\x53\xb2\xf8\x4b\x3a\xbc\xfd\x5a\x98\x95\x37\x27\x5e\xba\xfc\x47"
    
    recv buf_validate_key_rcv 14
    
    
    send  buf_comm_send 149
    "\x54\x44\x00\x00\x01\x00\x01\x70\x00\x00\x00\xcc\xcc\xcc\xcc\x01\x00\x1a\x27\x00\x00\x71\x00\x00\x00\x00\x00\x00\x00\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\x83\x83\x31\x84\x5f\x29\x34\x09\xf2\x40\x7e\xf8\xbb\x95\x13\x3d\x3f\x52\x5a\xb7\xd1\x79\xaf\xa5\xe7\xb7\xc2\x2d\x89\x89\x2e\x21\x6a\x16\xc0\x1c\x14\xa5\xe7\x1f\x55\x3e\x0c\xf9\x27\xbd\x49\xb7\xa8\xc6\x25\xe6\x01\x0c\xea\x8d\x2b\xc9\x78\x78\xbb\x06\x60\x44\x8b\x75\x76\xd8\x1a\x64\x72\x67\x2d\xaf\x2c\x32\x4f\x10\xe5\x15\x1a\x03\x1e\x87\xe3\x99\xcf\x5c\xda\xa2\x4b\x90\xc1\xeb\x68\x0f\x76\x34\x6d\x9e\xb5\x5d\x27\x8e\xcd\xf0\x5b\x92\x77\x9b\xdd\xca"
    recv buf_comm_rcv 245



    cs