您的位置:首页 > 其它

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

2014-02-08 18:42 267 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: