SOAtest は、固定長メッセージ形式を柔軟にサポートします。さまざまな固定長形式が存在するため (そして唯一の標準はないため)、簡単な設定で、SOAtest はユーザーが利用している固定長メッセージを認識します。そのため、ユーザーは独自のメッセージ タイプを使用して作業する際に、SOAtest のインターフェイスを利用して、メッセージの設定、送信、検証を行うことができます。

SOAtest で固定長メッセージを設定して検証するには、以下の設定を一度だけ行う必要があります。

  1. 使用する固定長メッセージを表すデータ モデルを定義します。
  2. データ モデルを登録して、Fixed Length Client ツールで (および他の適用可能なツールで) SOAtest がデータ モデルを利用できるようにします。

この時点で、Fixed Length Client、Fixed Length Call Back Tool、および XML Converter でデータ モデルを利用できます。Fixed Length Client でメッセージを設定し、Fixed Length Client の出力で検証を設定できます。

固定長データ モデルの作成

まず、データ モデルを作成するメッセージ形式を理解する必要があります。1 行につき 1 件のレコードがあるメッセージを考えてみましょう。各レコードは単純に姓と名の 2 個のフィールドから構成されます。  フィールドの長さはそれぞれ 10 文字であり、右寄せで、空白文字で埋められます。

     Smith    John
       Doe    Jane

このメッセージ形式のための固定長データ モデルを作成するには、以下の操作を行います。

  1. 以下の操作を行って、新しい空の .tst ファイルを作成します。
    1. [ファイル] > [新規] > [プロジェクト] を選択します。
    2. [SOAtest] > [空のプロジェクト] を選択し、[次へ] をクリックします。
    3. プロジェクト名に FixedLength と入力し、[終了] をクリックします。
  2. 以下の操作を行って、新規にデータ モデル定義ファイルを作成します。
    1. [ファイル] > [新規] > [データ モデル定義ファイル] を選択します。
    2. ファイル名として Names と入力し、場所として /FixedLength を選択します。



    3. [終了] をクリックします。データ モデルのエディターが開きます。
    4. [名前] フィールドに Names と入力し、[説明] フィールドに First and Last Name と入力します



  3. [全般] セクションを展開して以下を指定します。
    • 名前 - people
    • レコード名 - person
    • レコード セパレーター - {platform newline}



  4. [コンポーネント] の行を選択し、エディター下部の [追加] ボタンを 2 回クリックしてデータ モデルに 2 個のフィールドを追加します。



  5. 1 番目のフィールドを展開し、以下を指定します。
    • 名前 - LastName
    • 整列 - right
  6. 2 番目のフィールドを展開し、以下を指定します。
    • 名前 - FirstName
    • 整列 - right



  7. データ モデルのエディターを保存します。
  8. エディター右上の [データ モデル ディレクトリの登録] リンクをクリックします。作成したデータ モデルが SOAtest に登録されます。これで、データ モデルが適切なツールで利用できるようになりました。

Fixed Length Client の新規作成

新規に Fixed Length Client を作成するには、以下の操作を行います。  

  1. 前の演習で作成した FixedLength.tst ファイルを探します。
  2. 以下の操作を行って、新規に Fixed Length Client を作成します。
    1. テスト スイート ノードを右クリックし、[新規追加] > [テスト] を選択します。
    2. Fixed Length Client を選択し、[終了] をクリックします。



  3. [メッセージ タイプ] コンボ ボックスで Names: First and Last Name を選択して、作成したデータ モデルを選択します。



  4. [リクエスト] タブで、[入力モード] に [フォーム入力] が設定されていることを確認します。
  5. 自動生成された person 要素を変更します。姓 (LastName) として Smith を入力し、名前 (FirstName) として John を入力します。



  6. people 要素を選択し、[挿入] ボタンをクリックして 2 番目の person 要素を追加します。



    2 番目の person 要素を選択し、姓 (LastName) として Doe を入力し、名前 (FirstName) として Jane を入力します。



  7. [トランスポート] タブで [ルーター エンドポイント] に http://localhost:8080/parabank/echo.jsp と入力します。  



  8. エディターを保存します。
  9. テストを実行します。
  10. Traffic Viewer を開き、送られたコンテンツが、このチュートリアルの最初に説明したサンプル メッセージと同様であることを検証します。

固定長データ モデルの拡張 - 可変数の繰り返しセグメントの追加

この演習では、各 person が所有するペットの数を可変の数字で指定できるようにします。上記で使用したデータ形式をベースにして、以下を追加します。

  • ペットの数を指定する数字フィールド。長さは 2 文字で、パディングは 0 です。
  • 可変の数のセクション。個々のセクションは、ペットの種類とペットの名前のフィールドから構成されます。セクションの数は、ペットの数のフィールドで指定した数と同じです。ペットの種類のフィールドは、長さが 5 文字で右寄せです。ペットの名前のフィールドは、長さが 10 文字で右寄せです。

以下はそのようなデータの例です。

     Smith    John00
       Doe    Jane02    Cat   Fluffy  Dog   Spot

では、既存のデータ モデルを拡張して、新しいデータ モデルを作成しましょう。

  1. 以下の操作を行って、新しいデータ モデルを作成します。
    1. ナビゲーター ビューで FixedLength プロジェクトを開きます。
    2. プロジェクトを右クリックし、[リフレッシュ] をクリックしてビューの表示を最新の状態にします。
    3. Names.datamodel ファイルを右クリックし、[コピー] を選択します。



    4. これを FixedLength プロジェクトに貼り付けます。
    5. ダイアログが表示されたら、NamesAndPets.datamodel と入力します。



  2. FixedLength プロジェクトにある新しい NamesAndPets.datamodel ファイルをダブルクリックします。
  3. 名前に Names and Pets と入力し、説明を削除します。
  4. [コンポーネント] を選択して [追加] ボタンをクリックします。新しいフィールドが追加されます。
  5. [ フィールド] を [セクション] に変更して、もう一度 [追加] ボタンをクリックします。新しいセクションが追加されます。





  6. 新規に追加した 3 番目のフィールドを展開し、以下のように設定します。
    • 名前 - NumberOfPets
    • タイプ - integer
    • 長さ - 2
    • 整列 - right
    • パディング - 0



  7. 新しいセクションの [全般] を展開し、以下のように設定します。
    • 名前 - pets
    • レコード名 - pet
    • 次のレコードの条件 - xpath
    • XPath - count($section/*) < $section/../NumberOfPets
  8. 新しいセクションの [コンポーネント] を展開し、[フィールド] が選択されていることを確認してから [追加] ボタンを 2 回クリックします。

  9. 以下の操作を行って、コンポーネントを編集します。
    1. 新しいセクションの [コンポーネント] を選択し、[表の編集] ボタンをクリックします。



    2. 行 1 で、[名前] に PetType を、[長さ] に 5 を、[整列] に right を指定します。
    3. 行 2 で、[名前] に PetName を、[整列] に right を指定します。



    4. [すべてのデータ モデルに戻る] ボタンをクリックします。
    5. エディターを保存します。
  10. 新しい Fixed Length Client を FixedLength.tst ファイルに追加し、[メッセージ タイプ] として Names and Pets: を選択します。

  11. 以下の操作を行って、1 人目の情報を入力します。
    1. [リクエスト] タブで people 要素を選択します。
    2. 次のようにデフォルト値を変更します。
      • LastName - Smith
      • FirstName - John
      • NumberOfPets - 0



    3. pets 要素を削除します。

  12. 以下の操作を行って、2 人目の情報を入力します。
    1. people 要素を選択し、[挿入] ボタンをクリックして 2 番目の person 要素を追加します。
    2. 次の値を入力します。
      • LastName - Doe
      • FirstName - Jane
      • NumberOfPets - 2



    3. 2 番目の person の pets ノードを右クリックし、[複数挿入] を選択し、Count に 2 を指定して [OK] をクリックします。
    4. 1 番目の pet について、次のように指定します。
      • PetType - Cat
      • PetName - Fluffy
    5. 2 番目の pet について、次のように指定します。
      • PetType - Dog
      • PetName - Spot

  13. [トランスポート] タブで、[ルーター エンドポイント] に http://localhost:8080/parabank/echo.jsp を設定します。
  14. ツールを保存します。
  15. テストを実行します。
  16. Traffic Viewer を開き、送られたコンテンツが、モデル化しているサンプル データと同様であることを検証します。

これらの演習に対応する .tst ファイルは <SOAtest install dir>/examples/tests/FixedLength.tst にあります。

  • No labels