loadrunner中实现windows socket协议进行压力测试

来源:互联网 发布:恶意知乎 编辑:程序博客网 时间:2024/06/08 05:34

loadrunner中的windows socket协议如果通过录制方式还是比较简单的,可以在data.ws中参数化一些值就可以了。但有些接口类的内容是没有办法进行录制的,只能通过手写函数实现。下面大概的说一下过程

 

vuser_init  部分:建立一个socket连接,要写到init里,这样在压力过程就相当于只建立一次。

 

#include "lrs.h"
vuser_init()
{
lrs_create_socket("socket1","TCP","RemoteHost=111.111.111.218:12000",LrsLastArg);

}

 

action 部分:send是发送信息的函数,同时也具有取值的功能,这要看data.ws中的tcp/ip令命是什么。 //是调试时留下的一些代码,无具体用处

 

#include "lrs.h"

Action()
{


//char *ActualBuffer;
//int NumberOfBytes;

 

lrs_send("socket1","buf0",LrsLastArg);

lrs_send("socket1", "buf1", LrsLastArg);

 

//lrs_set_receive_option(Mismatch, MISMATCH_CONTENT);
//lrs_set_recv_timeout(0,0);
//lrs_set_recv_timeout2(0,0);

//lrs_receive("socket1", "buf2", LrsLastArg);

//lrs_get_last_received_buffer("socket1", &ActualBuffer, &NumberOfBytes);

//lrs_save_param_ex("socket1", "user", ActualBuffer, 25,5, "ascii", "new_parameter");

//lrs_free_buffer(ActualBuffer);

//lr_output_message("%s", lr_eval_string("<new_parameter>"));

 

}

 

 

vuser_end 部分:关闭socket连接,要放到end里,这样在压力过程就相当于所有压力完成后关闭,而不是循环一次关一次

 

#include "lrs.h"
vuser_end()
{
lrs_close_socket("socket1");
}

 

 

data.ws 部分 send是对应action中的send请求。set queue的意思是:向queue这个key里面写入51211这个值/  get queue的意思是取了刚写入到queue这个key里面的值。

 

;WSRData 2 1

 

send  buf0 40
  "set queue 0 0 5\r\n"
  "51211\r\n"


send  buf1 8
  "get queue\r\n"

   

-1

 

 

 

 

 

 

原创粉丝点击