このセクションでは、ISO 8583 Client ツールについて説明します。ISO 8583 Client ツールを使用すると、さまざまなチャネルとメッセージ パッケージング構成を使用して ISO 8583 メッセージを送受信することができます。

このセクションの内容:

ISO 8583 Client とは

ISO 8583 は、カード所有者がクレジット カードを使用して行う電子的金融取引のデータを交換するシステムのための規格です。しかし、ISO 8583 規格に基づくトランザクションをテストする際には、いくつかの課題があります。

  • 一貫性: ISO 8583 には多くのバリエーションやローカル実装があります。
  • 保守性: ビジネス上重要な既存の支払関連システムが拡張され続けており、保守およびテストを必要とします。

Parasoft SOAtest は、このような課題を解決する包括的なテスト フレームワークであり、一貫性のある先進的な方法で ISO 8583 規格に基づくシステムの品質を管理することを可能にし、ISO 8583 規格を全体的な SOA/IT 品質ガバナンスの一部とします。また、SOAtest の生産性向上に役立つフレームワーク (データ ソース、テスト スイート、豊富なデータ検証機能など) を利用し、継続的な回帰テスト基盤を構築して電子支払システムを安全に拡張することができます。

ISO 8583 ツールには使いやすい GUI があり、わかりにくいバイナリ メッセージ形式を扱うことができます。ISO 8583 を使用して以下を行うことができます。

  • クライアント (カード保持者) をシミュレートし、ISO 8583 メッセージを送受信する。
  • メッセージ フィールド構成用のビジュアルなインターフェイスを使用してメッセージを構成する。
  • カスタマイズ可能なメッセージ ヘッダーを設定する。
  • 柔軟性の高い豊富なデータ検証機能を使用して ISO 8583 規格に基づくシステムの回帰テストを作成する。
  • 複数ステップからなるシナリオに ISO 8583 テストを結合し、複雑な金融取引をテストする。
  • 任意の構造化された固定長バイナリ メッセージ (ISO 8583 規格に準拠していなくても構いません) を容易に構成および送受信する。

ISO 8583 ツールの設定

テスト ケース エクスプローラーで ISO 8583 ツールのノードをダブルクリックするとツールの構成パネルが表示され、オプションを設定できます。

[ツール設定] タブ

[ツール設定] タブでは、以下の基本的なツール設定を指定することができます。

  • 名前: ツール名を指定します。
  • ホストおよびポート: メッセージの送信先ターゲット システムを指定します。
  • メッセージ交換パターン: 同期レスポンスを期待する: SOAtest がレスポンスを受け取るかどうかを指定します。[同期レスポンスを期待する] を選択した場合、SOAtest はメッセージを送信してレスポンスを受け取ります。  [同期レスポンスを期待する] を選択しない場合、SOAtest は一方向のメッセージを送信し、レスポンスを受け取りません。

  • 接続設定: 選択したトランスポート プロトコルについて、「キープ アライブ接続」または「接続を閉じる」を指定します。
    • キープ アライブ接続: このオプションを選択した場合、現在のテストによって TCP 接続が開いた状態で維持され、同一のホストおよびポートが設定された後続の ISO 8583 ツールのテストで再利用されます。たとえば、後続のテストは同じソケット接続を再利用できます。
    • 接続をクローズする (デフォルト): このオプションを選択した場合、後続のテストは新しい TCP 接続 (新しいソケット) をオープンします。
  • メッセージ タイプ (MTI) セレクター: メッセージ タイプのインジケータ値を指定して、受け取るか無視するかを指定します。ツールが処理するメッセージを細かく指定することができます (たとえばシステム メッセージは無視するなど)。テキスト フィールドを使って、受け取るかまたは無視する特定の MTI あるいは MTI の範囲を指定します。たとえば、0800 だけを無視したり、0100-0199 などの範囲を指定したりすることができます。
  • メッセージ フィールド: ISO 8583 メッセージ フィールドのパッケージングを指定します。利用可能な選択肢は、jPOS (www.jpos.org) の提供する構成に基づきます。各構成は、メッセージで許可される フィールドの ID と、フィールドのデータ型および長さを指定します。
    • ドロップダウン メニューで [カスタム] を選択すると、ユーザー固有のメッセージ構成を記述するパッケージャー ファイルを参照できます。カスタム パッケージャーは、jPOS ベースの XML ファイルです。そのようなパッケージャー ファイルのサンプルについては、www.jpos.org を参照してください。このマニュアルが作成された時点では、次の URL からさまざまな XML パッケージャー構成を参照することができます: http://jpos.svn.sourceforge.net/viewvc/jpos/trunk/jpos6/modules/jpos/cfg/packager/
  • トランスポート チャネル: メッセージの送受信方法を設定するプロトコル構成を指定します。これらのオプションは、ISO 8583 メッセージ ヘッダーおよびトレイラーの処理方法や、メッセージ全体の長さを送受信する方法、およびその他の要因に影響を与えます。jPOS (www.jpos.org) やその他の一般的な構成で提供されているチャネルに基づいて、さまざまなチャネル オプションを選択できます。
    • ドロップダウン メニューで [カスタム] を選択すると、ユーザー独自のチャネル実装を指定できます。[カスタム] を選択すると、ドロップダウン メニューの隣にテキスト フィールドが表示され、完全修飾クラス名を指定できます。カスタム チャネル クラスは、org.jpos.ISOChannel インターフェイスを実装するか、org.jpos.BaseChannel を拡張する必要があります。次の URL でチャネル実装のサンプルを参照することができます: http://jpos.svn.sourceforge.net/viewvc/jpos/trunk/jpos6/modules/jpos/src/org/jpos/iso/channel/

    • カスタム チャネル クラスを作成したら、SOAtest のクラスパスにチャネル クラス追加する必要があります。SOAtest のクラスパスに Jar を追加する方法の詳細については、「システム プロパティの設定」を参照してください。

  • スクリプト フック: ISO 8583 メッセージを送信する前にカスタム操作を行うことができます。スクリプト フックで使用されるメソッドは、3 つのパラメーターを次の順序で受け取ることが期待されています。ISOMsg, ISOChannel, Contextスクリプト フックのスクリプトは、ISOMsg オブジェクトがインスタンス化され、ISO 8583 ツールの [入力] エリアで指定されたコンテンツが設定された後、メッセージが送信される前に実行されます。Javadoc および関連する jPOS クラスについては、次を参照してください: http://jpos.org/doc/javadoc/index.html

[入力] タブ

[入力タイプ] タブでは、ISO 8583 メッセージの構成を行うことができます ([メッセージ] サブタブ)。また、任意のヘッダーを設定することもできます ([ヘッダー] サブタブ)。

[メッセージ] サブタブ

[メッセージ] タブでは、以下のオプションを設定できます。

  • 入力モード: [ISO 8583 フォーム] ビューは、リクエスト メッセージの構成に使用できる (そして使用が推奨される) GUI ビューです ([リテラル XML] ビューおよび [フォーム XML] ビューも使用できます)。[フォーム ISO 8583] ビューでは、[追加] ボタンをクリックして新しいフィールドを追加できます。1 つ以上のフィールドを選択し (複数のフィールドを選択する場合は、CTRL キーを押したままフィールドをクリックします)、[削除] をクリックすると、選択されたフィールドが削除されます。単一のフィールドを選択した場合、フィールドをドラッグすることもできます。
    ISO 8583 メッセージの各ビューで宣言されたフィールドの順序は、実際に送信されるフィールドの順序には影響を与えません。フィールドは常に数値フィールド ID の昇順で送信されます。これは、ISO 8583 のメッセージ仕様に準拠しています。ただし、スクリプトを使用した場合、フィールドの順序は、値が初期化される順序に影響を与えます。詳細については「Scripting ISO 8583 Header and Message Fields」を参照してください。

    [フォーム ISO 8583] ビューには、以下のオプションがあります。

    • フィールド ID: 数値を入力します。メッセージ フィールド構成 (またはパッケージ ファイル) で宣言された値だけが有効です。ただし、実際に使用するフィールド以外のフィールドもパッケージに宣言することができます。
    • 値: 特定のフィールド値のエリアでクリックすると、[固定] または [スクリプト] を選択できます。テストからデータ ソースを参照できる場合は、[パラメータライズ] オプションも選択できます。
    • タイプ: [文字列] または [バイナリ] を選択できます。[バイナリ] を選択した場合、値はコンテンツの十六進表記であり、2 桁で 1 バイトを表現していることを示しています。[文字列] を選択した場合、値はメッセージ パッケージャーで指定されたフィールドの型 (メッセージ フィールド構成) に基づいて解釈されるべきであることを示しています。
    • 説明: 説明: (任意) メッセージの説明を入力してわかりやすくすることができます。このオプションは、送信されるメッセージには影響を与えません。
    • データ ソースの使用: 空文字列の除外: (データ ソースが利用可能な場合にだけ表示されます)。このセルのチェック ボックスがオンの場合、値をデータ ソース列にマッピングできます。テストが実行され、データ ソース行が反復されるとき、データ ソース行の指定された列が空かどうかに応じて、ISO フィールドがメッセージに追加されるか、または除外されます。データ ソースの値が空の場合、フィールドは除外されます。この機能は、データ ソースを使用して多数のテストを反復する回帰テストを作成し、テストの一部は特定の ISO フィールドを使用するが、他のテストではそれらの ISO フィールドを使用しない場合に便利です。このオプションを使用すると、データ ソースの値に基づいて、動的にフィールドをメッセージに含めることができます。
  • [リテラル XML] および [フォーム XML] ビューを使用すると、XML 形式で ISO 8583 メッセージを構成できます。実際のメッセージは、jPOS XML チャネルおよび XML パッケージャーが選択されている場合を除き、(XML ではなく) バイナリ形式で送信されます。メッセージの XML 表現は、次のように定義されます。

    <isomsg>
    	<header>{Hexadecimal representation binary content}</header> 
    	<field id="{INTEGER}" value="{STRING}" [type="binary"]/>+
    </isomsg>


    サンプル メッセージは以下のようになります:

    <isomsg>
    	<header>16380c18601860a186b01868fff486e0bb21</header>  
    <field id="0" value="0100"/>
    <field id="2" value="5048993400009931"/>
    <field id="3" value="031000"/> 
    ...
    	<field id="128" value="0D0F030D040C0602" type="binary"/>
    </isomsg>

     

     

    • type 属性は任意であり、値が "binary" の場合、value 属性の値はコンテンツの十六進表記であり、2 桁で 1 バイトを表現していることを示しています。type 属性を省略すると、値はメッセージ パッケージャーで指定されたフィールドの型 (メッセージ フィールド構成) に基づいて解釈されるべきであることを示しています。[フォーム XML] ビューでは、データ ソースがある場合、データ ソースによるパラメータライズが可能です。

[ヘッダー] サブタブ

[ヘッダー] タブを使用すると、ISO 8583 メッセージのカスタム バイナリ ヘッダーを構成できます。ドラッグ & ドロップ操作でヘッダー フィールドを並べ替えたり、ボタンをクリックして新規フィールドの追加やフィールドの削除を行うことができます。複数のフィールドをまとめて削除するには、CTRL キーを押しながら複数のフィールドを選択します。ボタンの隣に表示されるサイズは、すべてのフィールドのサイズを合計したものです。

[ヘッダー] タブには、以下のオプションがあります。

  • 名前: ヘッダー名を指定します。
  • 値: 特定のフィールド値のエリアでクリックすると、[固定] または [スクリプト] を選択できます。テストからデータ ソースを参照できる場合は、[パラメータライズ] オプションも選択できます。
  • タイプ: ヘッダー フィールドのデータ タイプを指定します。利用可能なタイプは、値セルのコンテンツが送信される方法に影響します。[Binary (hex)] オプションは、値セルのコンテンツが raw バイナリ データの十六進表記であり、そのまま送信されるべきであることを示しています。十六進表記は、2 桁の十六進数が 1 バイトを構成すると仮定します。
  • サイズ: フィールドのサイズを指定します。
  • 除外: (データ ソースが利用可能な場合にだけ表示されます)。このセルのチェック ボックスがオンの場合、値をデータ ソース列にマッピングできます。テストが実行され、データ ソース行が反復されるとき、データ ソース行の指定された列が空かどうかに応じて、ISO フィールドがメッセージに追加されるか、または除外されます。データ ソースの値が空の場合、フィールドは除外されます。この機能は、データ ソースを使用して多数のテストを反復する回帰テストを作成し、テストの一部は特定の ISO フィールドを使用するが、他のテストではそれらの ISO フィールドを使用しない場合に便利です。このオプションを使用すると、データ ソースの値に基づいて、動的にフィールドをメッセージに含めることができます。

トラフィックの確認

ISO 8583 テストを実行すると、送受信されたメッセージの XML 表現がトラフィック ビューアーに表示されます。解析を容易にするために XML 表現が使用されます。XML 表現は実際に送受信されたバイト ストリームを表してはいません。ソケット レベルでキャプチャされたままのメッセージの十六進数ダンプは、Traffic Viewer の [ヘッダー] セクションに表示されます。

テスト内で再利用するための値を抽出し回帰コントロールを作成

ISO 8583 のメッセージ交換を行うシナリオをセットアップした後、レスポンス メッセージに対して回帰コントロールやさまざまな検証機能を適用できます。

回帰コントロールを適用するには、次の操作を行います。

  • ISO 8583 テストを右クリックし、ショートカット メニューの [回帰コントロールの作成/更新] をクリックします。すると、Diff ツールが連結され、XML で表現された ISO 8583 のレスポンスがキャプチャされます。[テストの追加 / 出力の追加] ツールバー ボタンをクリックして、他の XML ベースの検証ツールを連結したり、後続のテストで使用する値を抽出するために XML Data Bank を連結できます。

ヘッダーと ISO 8583 メッセージ フィールドをスクリプトにする

値セルで [スクリプト] を選択すると、カスタム コードを記述してフィールド値を生成できます。このような使用方法の例としては、コンテンツを暗号化する場合や、MAC 値を生成する場合などが挙げられます。 

スクリプト メソッドは、0 個、1 個、または2 個の引数を受け取ります。 

1 つの引数が宣言されている場合、引数は現在のリクエスト ISO 8583 メッセージを表す ISOMsg オブジェクトを参照します。ISOMsg オブジェクトは、現在のフィールドまでが初期化されています。 

たとえば、10 番目のフィールドにスクリプトが指定されている場合、ISOMsg オブジェクトはその前にある 9 個のフィールドをフィールド値に基づいて設定します。そのため、ISO フィールドの順序を変更すると、実際に送信されるメッセージのフィールド順序には影響がありませんが、結果が異なる場合があります。2 つ目の引数が宣言されている場合、この引数は Context を参照します。Context を使用すると、環境変数やデータ ソースの値などにアクセスすることができます。 

詳細については、SOAtest Extensibility API のマニュアルを参照してください。Extension framework API のマニュアルを参照するには、[Parasoft] メニューの [ヘルプ] をクリックし、『Parasoft SOAtest Extensibility API』というブックを探してください。

  • No labels