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

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


你可能感兴趣的:(windows,action,include,压力测试,发送信息)