Loadrunner中socket脚本分析

本文介绍如何在LR中利用Socket进行脚本开发,包括初始化WinSockDLL、创建及关闭Socket连接、发送与接收数据等步骤,并提供了完整的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在很多系统之间交互时,都是直接使用socket接口,分享下lR对socket脚本开发


Socket是一套建立在TCP/IP协议上的接口不是一个协议,只要底层实现TCP IP协议,都可以用socket进行通信。


init文件:

#include "lrs.h"

vuser_init()
{
    lrs_startup(257); // 初始化 WinSock DLL


    return 0;
}


action文件

#include "lrs.h"

Action()
{   
int rc;//保存创建socket,返回值
char *ActualBuffer; //保存返回报文

 int NumberOfBytes; //保存返回报文长度
         int rend_status,resp_start=0;//保存发送和接收,返回值

//创建返回socket
rc=lrs_create_socket("socket0", "TCP", "RemoteHost=96.0.49.180:12016",LrsLastArg);

//判断是否创建socket成功
if(rc!=0){
lr_output_message("Create socket 96.0.45.67:12015 Error, Error Code:%d", rc); 
lr_fail_trans_with_error("Not Create Socket!!!\n");
goto END_TRANSACTION;
}

//保存开始事务
lr_start_transaction("test");

//发送报文,报文保存buf0中,buf0在data.ws中定义
rc=lrs_send("socket0", "buf0", LrsLastArg);

lrs_set_recv_timeout(80, 0); //设置接收超时
lrs_set_recv_timeout2(10,0);//接收数据包长度比对超时

//接收报文,保存到buf1,buf1是data.ws文件中定义
       rc=lrs_receive("socket0", "buf1", LrsLastArg);


if(rc!=0 && rc!=LRS_RECV_MISMATCH) {    
lr_fail_trans_with_error("Not Receive Response_Packet!!!\n");
goto END_TRANSACTION;
}

//socket0返回报文,搜索匹配值

lrs_save_searched_string("socket0",LRS_LAST_RECEIVED,"result","LB=<ret_code>","RB=</ret_code>\n",1,0,-1);

lrs_save_searched_string("socket0",LRS_LAST_RECEIVED,"error_msg","LB=<ret_explain>","RB=</ret_explain>\n",1,0,-1);

//判断返回报文内容,

if (strcmp(lr_eval_string("<result>"),"00000")!=0) {
//设置事务fail
lr_fail_trans_with_error("Response_Packet retcode:%s ",lr_eval_string("<error_msg>"));
}
END_TRANSACTION: //设置goto点
lr_end_transaction("test", LR_AUTO);//记录结束事务
lrs_free_buffer(ActualBuffer);//释放内存
        lrs_close_socket("socket0");// 关闭socket
    return 0;
}

end文件中

#include "lrs.h"
vuser_end()
{
    lrs_cleanup(); //
    return 0;
}


data.ws文件:

;WSRData 2 1

send  buf0 *   //发送报文
"0000096799PAY1661009   <?xml version=\"1.0\" encoding=\"GB2312\"?><ebank>"

recv buf1 1   //接收报文
"1"
-1


注意:

1、本脚本为短链接脚本,固创建socket中保存中action中,如果是长链接,则将创建socket部分代码移到init中,将关闭socket部分代码移到end中。

2、data.ws文件不要//“”注释,这种方式注释内容会在保存到报文中






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值