关注我,每天分享软件测试技术的干货和面试经验。想获取测试资料,进入软件测试学习交流群的可以直接添加atstudy-js~~
随着敏捷测试的普及,接口测试在测试过程中的比重越来越大,也是DevOps过程中不可或缺的一部分。目前接口测试消息的类型很多,比如JSON、XML等常见的消息类型。网上有很多这些消息的细节,这里就不详细解释了。今天主要介绍一种银行和金融机构常用的报文——8583报文。

8583的消息在金融行业是众所周知的。你可以在网上找到很多关于它的信息,但对于一个新手来说,理解它还是相当困难的。本文从消息结构和解析方法等方面详细介绍了8583消息的用法,希望能为使用和测试它的用户提供一些帮助。
1 .简介
883报文是网络接入机构与中国银联信息处理中心系统进行在线交易时使用的报文,是一种国际标准的报文格式。该报文包括交易报文的结构、格式和报文字段,交易报文基本由64个字段组成,最多128个字段。每个字段都有个性化的规定,有固定长度和可变长度。
2.报文结构
2.1消息结构描述
该事务主要由四部分组成,即TPDU、消息头、位图和数据字段。其结构如图1所示:
图12.2 TPDU
TPDU,全称是传输协议数据单元,指的是传输协议数据单元。表示从一个传输实体发送到另一个传输实体的消息。其结构为TPDU = ID+目的地址+源地址,长度为5字节。
2.3消息标题
消息头主要记录应用类别定义、软件总版本号等信息。其结构报文头=应用类别定义+软件总版本号+终端状态+处理要求+软件子版本号,长度为6字节。
2.4位图
位图8583消息是最关键的内容,就像一个复杂的仪器主控制器,可以准确定位消息中会出现哪些消息字段。位区可以有一个位图或两个位图,位图的数量取决于事务类型。位图1将数据字段2定义为数据字段64,位图2将数据字段66定义为数据字段128。如果位图的第一位设置为‘1’,则表示使用了两个位图;否则,意味着只使用基本位图。
2.5数据域
数据字段构成了消息的主体,每个数据字段代表不同的含义。数据有三种编码格式,即:二进制编码、BCD编码和ASCII编码;字段的长度也可以分为三种情况,分别是:固定长度、2位变长+字段实际数据、3位变长+字段实际数据。各域的实际功能和用法请参见《中国银联银行卡联网技术规范第二部分报文接口规范》。
2.6示例消息解析
为了便于理解8583消息,让我们分析一个示例消息。具体消息内容如下:
0059600045000060011100000001007024048000 c 8001166259600000066006
61030000000000000001000000230401200630303033303733343130353538
343034353131303133353135360011140000010000393437463535453791
信息长度
059表示报文总长度,用两个字节显示,转换结果为89个字节。
传输协议数据单元
600450000表示TPDU,长度为5个字节。
报文标题
6001100000为报文头,长度为6字节,其中:60表示磁条卡的金融支付应用;01表示软件版本号;1标记终端状态;1被确定为加工要求;00000是保留位。
消息类型
000表示消息类型,这是一个授权类请求。
位图
7024048000C08011表示位图,解析后如下:

从分析的内容来看,分析结果是64位二进制数据,位图中1的位置代表对应的域,所以具体使用的数据域从左到右分别是第2域、第3域、第4域、第11域、第14域、第22域、第25域、第41域、第42域、第49域、第60域、第64域。接下来根据中国银联银行卡联网技术规范,逐一介绍具体数据域的划分和具体含义。
域2
1625966000026761是域2的内容,表示用户的主账号。前两位16表示数据长度,625966000026761表示用户的实际卡号。
域3
00000是字段3的内容,6位定长数字字符,表示交易代码处理。前两位数字03代表支票担保,0000代表默认值。
域4
000000000001是第四字段的内容,12位定长数字字符,表示交易金额。用人民币交易时,后两位数字代表角和分,所以实际显示的金额是0.01。
域11
00000是11号字段的内容,6位定长数字字符,表示被许可人系统的跟踪号。
域14
204是第14个字段的内容,4个定长数字字符,表示银行卡的有效期。门槛是银行卡的期限,2023年4月到期。
域22
020是22号字段的内容,3位定长数字字符,表示服务点输入方式代码。因为是3位BCD码,所以分组时压缩成两个字节,最后一位用0填充。
域25
06是字段25的内容,2个定长数字字符,表示服务点条件码,06代表预授权请求。
域41
330303330373334是字段41的内容,有8个定长字母、数字和特殊字符,表示卡机的终端识别码。因为是ASCII码,所以实际转换的数据是00030734。
域42
330353538343034353130313335是42号字段的内容,由15个定长的字母、数字和特殊字符组成,代表收款人的识别代码,即商户代码。因为是ASCII码,所以实际转换的数据是105584045110135。
域49
33536是字段49的内容,由3个定长字母、数字和特殊字符组成,代表交易货币代码。因为是ASCII编码,所以实际转换的数据是156。
域60
011140000010000是60号域的内容,这是一个自定义域,3位可变长度+最多100个字母、数字和特殊字符。01是3位变长,BCD压缩成两个字节,所以在头上加一个0,11表示后面有11位,具体是140000001000。如果用BCD码压缩,应该是6字节,所以后面加个0。
域64
334374635354537是64号域的内容,由8个定长字母、数字和特殊字符组成,用于验证信息来源的合法性。因为是ASCII码,所以实际转换的数据是947F55E7。
3.推荐工具
目前市面上还没有相对成熟的针对8583报文的测试工具,大多是一些针对8583位图和字段的解析工具,功能比较单一。下面介绍一个兼容8583报文测试分析的工具——中国农业银行青云自动化测试平台。云平台是一套集成了业务规则分析、自动化测试用例管理、测试数据管理、测试执行管理和结果分析的软件平台,支持自动化测试。我们可以利用这个平台实现8583报文的案例设计、测试执行和结果分析。接下来,我们简单介绍一下如何使用引擎云平台。
3.1案例记录和制作
登录青云平台后,在导航栏中选择“界面测试-案例管理”,点击案例记录按钮,在记录模式中选择“8583消息案例记录”选项,填写相应的消息、案例编号、案例描述等。,然后单击案例分析。实际效果如图2所示。

点击案例分析后,可以根据具体领域对消息内容进行分析,然后点击案例记录,完成案例的记录和生成。具体内容如图3所示。
图33.2案例执行
案例生成后,在导航栏中选择“接口测试-接口测试执行”,放入案例,点击执行,测试报文的传递就完成了。具体效果如下图4和图5所示。
图4图53.3案例结果显示和分析
案例执行完成后,在导航栏中选择界面测试-结果显示,选择该案例执行结果进行查看。可以看到这个案例执行的结果、分析和统计,实际效果如下图6所示。
图6

