测试socket协议的loadrunner脚本(8583协议)8583报文解析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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);
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;}Data.ws:
;WSRData 2 1
send buf0 211
"\x00\xD1"//报文xx
"\x60\x00\x09\x00\x00"//TPDU信息
"\x4C\x52\x49\x00\x1C\x00\x00\x00\x21\x58\x77\x96\x98\x00\x00\x00\x21\x 58\x77\x09\x79\x58\x00\x09\x49\x00\x06\x00\x00\x00\x22\x00\x30"//主被叫号码
"\x01\x00"
"\x02\x00"//信息类型
"\x70\x38\x05\x80\x30\xC0\x80\x19"//位图
"\x19\x09\x55\x10\x04\x91\x00\x01\x35\x38\x52"//卡号
"\x00\x00\x00"//处理代码
"\x00\x00\x00\x00\x02\x00"//交易金额
"\x00\x00\x14"//系统跟踪号
"\x16\x41\x32"//本地交易时间
"\x05\x20"//本地交易日期
"\x00\x22"//服务点输入方式
"\x00\x09"//NETWORK INTERNATIONAL IDENTIFIEER
"\x14"//服务点条件代码
"\x37\x09\x55\x10\x04\x91\x00\x01\x35\x38\x52\xD0\x00\x02\x20\x36\x00\x 60\x00\x00"
//二磁道数据
"\x01\x04\x99\x95\x51\x00\x49\x10\x00\x13\x53\x85\x2D\x15\x61\x56\x00\x 00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x21\x41\x41\x40\x00\x01\xD0\x00\x00\ x00\x00\x00\x0D\x00\x00\x00\x00\x00\x00\xD0\x00\x00\x00\x36\x00\x60\x00"//三磁道数据
"\x32\x30\x31\x30\x30\x36\x30\x31"//收卡单位终端标识码
"\x30\x30\x34\x31\x31\x30\x30\x34\x35\x31\x31\x30\x30\x31\x32"//收卡商户定义码"\x01\x56"//交易货币代码
"\x00\x00"//RESERVED PRIVATE
"\x00\x15\x30\x30\x30\x30\x30\x31\x30\x30\x31\x30\x30\x30\x30\x30\x32"
//RESERVED PRIVATE
"\x61\x54\x70\xE7\x33\x6D\xB5\x48"//消息认证码
recv buf1 130
-1
发送报文原文:
00DCC030C852D852D4001D0000D035470E7336DB548
是16进制的,每两位代表一个字符,所以在Loadrunner里面发送数据的应该每两位前面家转义符“\x”来代表16进制。比如“\x00”代表16进制的00。处理好以后,如同上面代码里的buf0。
附:
发送报文的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