在本章节中:
ISO 8583 扩展是 Parasoft 的持续测试解决方案的自定义扩充套件。在客户端,可以使用它们来发送和接收自定义的 ISO 8583 消息。在服务端,可以使用它们来创建和发送自定义的虚拟化消息。
将为 ISO 8583 集成提供以下自定义扩展:
如果打算在 Load Test 中运行 ISO 8583 扩展插件,请注意 test_suite_loc
变量只可用于 input 字段。Load Test 不支持 .tst 项目中所使用 Parasoft 应用市场扩展的 project_loc
和 workspace_loc
变量。使用 test_suite_loc
变量可以指定相对于 .tst 项目文件位置的外部文件路径。例如:
${test_suite_loc}\Packager\GenericExamplePackager.xml
此扩展套件实现为 com.parasoft.soavirt.iso8583.main-<version>.jar,这取决于发行版提供的以下 jar:
可以从 UI 或命令行安装该扩展。
将 com.parasoft.soavirt.iso8583.main.jar 文件添加到 localsettings 属性文件中的 system.properties.classpath
属性。
例如:
system.properties.classpath=<path to jar>/com.parasoft.soavirt.iso8583.main.jar
一旦路径完成更改,将加载所有必需的依赖项。
需要使用 ISO 8583 传输的 Virtualize 消息响应程序必须配置为在 PVA 级别上使用自定义的 ISO 8583 监听器(有关其他消息,请查阅 添加项目、虚拟资产和响应程序套件 )。
一旦 PVA 被绑定到监听器上,则可将 ISO 8583 响应程序工具添加到 PVA,以正确地提供 ISO 8583 响应(请查阅 使用 ISO 8583)。
可以为 ISO 8583 消息监听器配置以下设置
Channel Name | 定义在发送/接收消息时要使用的 ISO 8583 频道。jPOS 库中包含的所有默认的频道实现(如,仅需端口、主机和包装器的频道实现)都可使用。有关更多详情,请查阅 Channels。 |
---|---|
Host | 定义在创建连接时要使用的主机。 |
Port | 定义在创建连接时要使用的端口。 |
Timeout | 定义连接超时之前可以等待多少秒。 |
Packager Name | 定义将要用来包装和打开 ISO 8583 消息的包装器。总的来说,这里将使用 GenericPackager 和通用包装程序 XML 说明。然而,如果预定义的 ISO 包装器更合适,则可以使用“包装器”部分中提到的所有包装器。如果实现了自定义的 ISO 包装器(如,ISOPackager 接口),则其必须包含在 SOAtest/Virtualize 类路径中,并且必须提供完全限定的类名。有关更多详情,请查阅 Packagers。 |
---|---|
Packager Path | 定义通用包装器说明 XML 文件的路径。 该字段仅使用于通用的包装器(如 GenericPackager 和 X92GenericPackager)。 |
Header Length | 指定输出响应的头长度。 |
---|
Keep connection alive | 启用此选项,让客户端保持连接并重复,以便后续的发布。 |
---|---|
Close connection after test execution | 启用此选项,在发布后直接关闭客户端连接。 |
可以为 ISO 8583 消息格式配置以下设置
Packager Name | 定义用来打包和解包 ISO 8583 消息的包装器。总的来说,这里将使用 GenericPackager 和通用包装程序 XML 说明。然而,如果预定义的 ISO 包装器更合适,则可以使用“包装器”部分中提到的所有包装器。如果实现了自定义的 ISO 包装器(如,ISOPackager 接口),则其必须包含在 SOAtest/Virtualize 类路径中,并且必须提供完全限定的类名。有关更多详情,请查阅 Packagers。 |
---|---|
Packager Path | 定义通用包装器说明 XML 文件的路径。 该字段仅使用于通用的包装器(如 GenericPackager 和 X92GenericPackager) |
可以为 ISO 8583 传输配置以下设置。
Channel Name | 定义在发送/接收消息时要使用的 ISO 8583 频道。jPOS 库中包含的所有默认的频道实现(如,仅需端口、主机和包装器的频道实现)都可使用。有关更多详情,请查阅 Channels。 |
---|---|
Host | 定义在创建连接时要使用的主机。 |
Port | 定义在创建连接时要使用的端口。 |
Timeout | 定义连接超时之前可以等待多少秒。 |
Packager Name | 定义创建频道时将使用的包装器。 该字段与 ISO 8583 Message Format Settings中的对等内容具有相同的工作原理。 |
---|---|
Packager Path | 定义通用包装器说明 XML 文件的路径。 该字段的工作原理等同于 ISO 8583 Message Format Settings。 |
Request Header | 定义要与请求一起发送的自定义头信息。该字段还可作为响应头大小模板,允许正确读取响应中的头信息。 |
---|
包装器定义如何组织 ISO 8583 消息,包括消息中的字段数和字段数据类型。它们允许 ISO 8583 消息的二进制数据应用到通用 ISO 消息,它可以轻松地被不同的包装器操作和格式化。默认情况下,提供大量的包装器,并且客户包装器用来支持特殊情况。
它们还为该自定义包装器中的 jPOS API 提供可扩展性,该包装器可定义为对自定义的 ISO 8583 消息进行描述,从而支持几乎任何类型的 ISO 8583 消息。
包装器名称 | 包装器说明 |
---|---|
Base1Packager | VISA Base1 二进制包装器。 |
Base1SubFieldPackager | VISA Base1 二进制子字段包装器。 |
BASE24Packager | BASE24 ASCII 包装器。 |
BERTLVAsciiHexPackager | BER TLV ASCII 包装器。 |
BERTLVBinaryPackager | BER TLV BINARY 包装器。 |
BERTLVEbcdicHexPackager | BER TLV EBCDIC 包装器。 |
BinaryHexTaggedSequencePackager | TLV BINARY 包装器。 |
CTCSubElementPackager | 验证用于字段 48 中子元素的包装器。 |
CTCSubFieldPackager | 验证用于字段 48 中子字段的包装器。 |
DummyPackager | Dummy 包装器。如果消息被封装或打开,将抛出异常。 |
EuroPackager | EuroPay 包装器。 |
EuroSubFieldPackager | EuroPay 子字段包装器。 |
FSDPackager | FSD ISO 消息包装器。 |
GenericPackager | 使用 XML 说明对 ISO 消息进行描述。 |
GenericSubFieldPackager | 使用 XML 说明对 ISO 子字段进行描述。 |
GenericTaggedFieldsPackager | 用于包含没有位图的 TLV 子字段的字段的包装器。 |
GenericValidatingPackager | 使用 XML 说明对 ISO 消息进行验证。 |
GICCSubFieldPackager | 用于 GICC 子字段的包装器。 |
ISO87APackager | ISO 8583 v1987 ASCII 包装器。 |
ISO87APackagerBBitmap | 使用二进制位图的 ISO 8583 v1987 ASCII 包装器。 |
ISO87BPackager | ISO 8583 v1987 ASCII 包装器。 |
ISO93APackager | ISO 8583 v1993 ASCII 包装器。 |
ISO93BPackager | ISO 8583 v1993 ASCII 包装器。 |
MasterCardEBCDICSubFieldPackager | MasterCard EBCDIC 子字段包装器。 |
PackagerWrapper | 包装其他的 ISO 包装器。 |
PostPackager | 用于 Postilion 的 ISO 8583 v1987 包装器。 |
X92GenericPackager | 使用 XML 说明对 ANSI X9.2 ISO 消息进行描述。 |
X92Packager | ANSI X9.2 包装器。 |
XML2003Packager | 将 ISO 8583 v2003 消息打包和解包到 XML 表示形式中。 |
XMLPackager | 将 ISO 8583 消息打包和解包到 XML 表示形式中。 |
自定义包装器有两种实现方式,以给自定义 ISO 8583 消息提供支持。
通用包装器 XML 说明在这个实现中,jPOS 库提供了可以处理大部分 ISO 8583 消息的通用包装器。通用包装器使用 ISO 8583 的 XML 说明,正确地打包和解包自定义的 ISO 8583 消息。 若要定义通用包装器说明,则通过声明 XML 文档类型进行启用:
ISO 包装器定义遵循以下文档类型:
ISO 字段定义放置在ISO 包装器定义中。ISO 字段定义可以是基本的 ISO 8583 类型,也可以是复杂类型。 基本 ISO 字段定义使用功能以下格式定义基本 ISO 字段定义:
id 属性定义字段号, length 属性定义数据长度, name 属性定义字段名, pad 属性(可选)指定字段是否应该填充字符, class 属性定义与字段数据类型相关联的字段包装器。如果需要,自定义字段包装器也可以通过实现 ISOFieldPackager 并包括在 SOAtest/Virtualize 类路径上的实现来创建。 默认提供以下 ISO 字段包装器(所有类名应以 XML 定义中的“org.jpos.iso”作为前缀)。
复杂 ISO 字段定义使用以下格式定义复杂 ISO 字段定义:
id, length, name, 和 class 属性与基本 ISO 字段定义具有相同的含义。但是,此处多了一个 packager 属性必须定义,它用来说明如何在子字段说明(其定义类似于基本的 ISO 字段)后使用 ISO 消息的其余部分包装该复杂 ISO 字段。 作为参考,本文还提供了自定义包装器示例,该示例为 VISA’s Base1 ISO 8583 消息提供了 jPOS 示例;请查阅插件的 zip 文件中包含的 base1.xml。 ISOPackager 接口在这个实现中,jPOS 库还提供了一个可用来定义自定义包装器的 Java 接口。如果通用包装器或其中一个默认的包装器不支持某个 ISO 8583 消息,则可实现一个自定义的 ISO 包装器。 |
频道定义了 ISO 8583 客户端和服务端之间如何通讯。它们确保在通过电线发送并在另一端进行了适当的重构之前,对通用 ISO 消息进行了正确地格式化。频道处理用于在客户端和服务端之间对 ISO 8583 消息进行转换的连接和协议。与包装器一样,jPOS 库提供了许多频道,可以处理大多数情况。但是,如果不存在合适的频道,则可以通过继承 BaseChannel 类来实现自定义 ISO 8583 频道。
默认提供以下频道:
频道名 | 频道说明 |
---|---|
AmexChannel | 美国特快频道。 |
ASCIIChannel | ISO 基本频道扩展,具有四个 ASCII 字符消息长度头信息。 |
BASE24Channel | 通过 X.25 链接的 ACI's BASE24。 |
BASE24TCPChannel | 通过 TCP 链接的 ACI's BASE24。 |
BCDChannel | ISO 基本频道扩展,具有以下消息格式 [LEN][TPDU][ISOMSG] 其中 LEN 为 2 个十六进制字节。 |
CSChannel | CS 标准频道。 |
FSDChannel | ISO 基本频道扩展,具有以下消息格式 [LEN][TPDU][ISOMSG] 其中按照 NBO(network byte order,网络字节顺序),LEN 为 2 个字节。 |
GICCChannel | GICC 频道。 |
GZIPChannel | ISO 基本频道扩展,GZIP 压缩通过频道发送的数据。 |
HEXChannel | ISO 基本频道扩展,具有四个 ASCII 十六进制的字符消息长度头信息。 |
LogChannel | ISO 基本频道扩展,从 ISO 日志程序中提取 ISOMSG 块。 |
NACChannel | ISO 基本频道扩展,具有以下消息格式 [LEN][TPDU][ISOMSG] 其中按照 NBO(network byte order,网络字节顺序),LEN 为 2 个字节。 |
NCCChannel | ISO 基本频道扩展,具有以下消息格式 [LEN][TPDU][ISOMSG] 其中按照 BCD (binary-coded decimal,二进制编码的十进制)格式,LEN 为 2 个字节。 |
PADChannel | ISO 频道适用于连接到 X.25 PAD。 |
PostChannel | ISO 基本频道扩展,具有以下消息格式 [LEN][ISOMSG] 其中按照 NBO,LEN 为 2 个字节(NBO)。 |
RawChannel | ISO 基本频道扩展,具有以下消息格式 [LEN][ISOMSG] 其中按照 NBO,LEN 为 4 个字节(NBO)。 |
RBPChannel | 记录边界保存频道。 |
TelnetXMLChannel | 通过 telnet 会话交换基于 XML 的 ISO-8583 消息,telnet 命令将被忽略。 |
VAPChannel | VISA 的 VAP 框架(已弃用)。 |
X25Channel | ISO 频道适用于连接到 X.25 PAD。 |
XMLChannel | ISO 基本频道扩展,交换基于 XML 的 ISO-8583 消息。 |
此工具集包括来自第三方的资源项,如下:
Parasoft 的 ISO 扩展发布在 GNU AGPL v3.0 许可证下。
更多的许可详情可在该插件的 licenses 文件夹中获得。