2024年4月22日发(作者:)

Pos机收单系统性能压力测试实战

Socket协议测试Loadrunner脚本+8583报文解析Action:

#define _EOF '#'

#include "lrs.h"

Action(){char *recvbuf;

int recvlen=0;

int rc;

lr_start_transaction("Trans_1");

lrs_set_recv_timeout (60,0);

lr_start_transaction("Conn_1");

rc=lrs_create_socket("socket0","TCP","LocalHost=0","RemoteHost=

192.168.

205.150:7001",LrsLastArg);//RemoteHost处填入被测程序所在服务器IP

lr_output_message("%d",rc);

if (rc != 0 ) {

lr_end_transaction("Conn_1", LR_FAIL);

lr_end_transaction ("Trans_1", LR_FAIL);

return 0;}lr_end_transaction("Conn_1", LR_PASS);//判断socket是否链接成功

的事务lr_rendezvous("集合点");

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

lrs_receive ("socket0","buf1",LrsLastArg);

lrs_get_last_received_buffer("socket0",&recvbuf,&recvlen);

1 / 5

if(recvlen==130)

lr_end_transaction("Trans_1", LR_PASS);

else

lr_end_transaction ("Trans_1", LR_FAIL);//判断返回信息的长度是否正确,

recvlen处填入预期返回信息的长度

lrs_close_socket("socket0");

return 0;}:

;WSRData 2 1

send buf0 211

"x00xD1"//报文xx

"x60x00x09x00x00"//TPDU信息

"x4Cx52x49x00x1Cx00x00x00x21x58x77x96x98x00x00x00x21x

58x77x09x79x58x00x09x49x00x06x00x00x00x22x00x30"//主被叫号码

"x01x00"

"x02x00"//信息类型

"x70x38x05x80x30xC0x80x19"//位图

"x19x09x55x10x04x91x00x01x35x38x52"//卡号

"x00x00x00"//处理代码

"x00x00x00x00x02x00"//交易金额

"x00x00x14"//系统跟踪号

"x16x41x32"//本地交易时间

"x05x20"//本地交易日期

2 / 5

"x00x22"//服务点输入方式

"x00x09"//NETWORK INTERNATIONAL IDENTIFIEER

"x14"//服务点条件代码

"x37x09x55x10x04x91x00x01x35x38x52xD0x00x02x20x36x00x

60x00x00"

//二磁道数据

"x01x04x99x95x51x00x49x10x00x13x53x85x2Dx15x61x56x00x

00x00x00x00x00x00x03x00x00x00x21x41x41x40x00x01xD0x00x00

x00x00x00x0Dx00x00x00x00x00x00xD0x00x00x00x36x00x60x00"//

三磁道数据

"x32x30x31x30x30x36x30x31"//收卡单位终端标识码

"x30x30x34x31x31x30x30x34x35x31x31x30x30x31x32"//收卡商

户定义码"x01x56"//交易货币代码

"x00x00"//RESERVED PRIVATE

"x00x15x30x30x30x30x30x31x30x30x31x30x30x30x30x30x32"

//RESERVED PRIVATE

"x61x54x70xE7x33x6DxB5x48"//消息认证码

recv buf1 130

-1

发送报文原文:

00DCC030C852D852D4001D0000D035470E7336DB548

是16进制的,每两位代表一个字符,所以在Loadrunner里面发送数据的应

该每两位前面家转义符“x”来代表16进制。比如“x00”代表16进制的00。处理

好以后,如同上面代码里的buf0。

3 / 5

附:

发送报文的8583解析

00D1--报文xx

600900--TPDU信息

4CC0--主被叫号码

0100

0200 --mti信息类型2

30C08019--bitmap位图10

353852 --pan21

000 --processing code处理代码24

--amount交易金额30

0014 --SYSTEM TRACE AUDIT NUMBER系统跟踪号33

164132 --TIME, LOCAL TRANSACTION本地交易时间36

0520 --DATE, LOCAL TRANSACTION本地交易日期38

0022 --POINT OF SERVICE ENTRY MODE服务点输入方式40

0009 --NETWORK INTERNATIONAL IDENTIFIEER 42

14 --POINT OF SERVICE CONDITION CODE服务点条件代码43

353852D0000 --TRACK 2 DATA二磁道数据852D4001D0000D0

--TRACK 3 DATA三磁道数据117

363031--CARDACCEPTORTERMINALIDENTIFICACION收卡单位终端标识码125

2--CARDACCEPTORIDENTIFICATIONCODE收卡商户定义码140

4 / 5

0156 --CURRENCY CODE, TRANSACTION交易货币代码142

00 --RESERVED PRIVATE 144

2 --RESERVED PRIVATE 161

615470E7336DB548--MESSAGE AUTHENTICATION CODE FIELD消息认证码169

5 / 5