Skip to content

テストデータの操作

関連ページ

概要

ライフサイクルエクスペリエンスソリューションに短期間のみ使用する環境が導入されたことにより、環境に手動で入力したデータは、その環境が削除されると失われます。そのため、テストデータは、互換性のある任意の環境にデプロイできるスクリプト化されたテストデータファイルを使用して保持します。これにより、エンドユーザーは必要な初期テストデータをすばやく設定できます。このドキュメントでは、IFSのScript-A-Restツールを使用して、LE環境でテストデータスクリプトを作成およびデプロイする方法について説明します。

IFSScript-A-Rest

このツールは、IFS OData RESTful APIのテストや、簡単なスクリプトファイルを使用したテストデータのロードに使用できます。

主な機能:

  • IFS OData APIを使用したデータの作成、変更、および読み取り
  • URLと本文ペイロードの両方でパラメーターを使用
  • C#構文を使用した式の評価
  • 他のスクリプトを呼び出して、大規模なテストをより小さな単位に分割
  • 認証のサポート

このツールは.NET Core 3.1をベースとしており、WindowsおよびLinuxで実行できます。

はじめに

ビルド済みバイナリをインストールするには、以下の手順に従います。

  1. IFS Script-A-Restのバイナリとサンプルをlifecycle.ifs.comから取得します。これを行うには、ライフサイクルエクスペリエンス センターのビルドスタジオに移動し、ナビゲーターを開いてScript-A-Restを選択します。次に、Script-A-Restツールの最新バージョンをダウンロードします。次に、zipファイルを適切な場所に展開します。
tar_binaries
図1 - Build StudioのメインサイドバーからSARをダウンロード
  1. _install.cmdファイルを実行して、Script-A-Restのコンテキストメニューを登録します (この手順は任意です)。

  2. デフォルト以外のサーバーを使用する場合は、_script_a_rest.cmdファイルを編集して、使用するサーバーと認証情報を設定します。

  3. SCRIPT-A-RESTコンテキストメニューを使用してサンプルを実行します。テストファイルを右クリックし、Script-A-Restを選択します。

tar_context_menu
図2 - コンテキストメニューのScript-A-Rest

基本的な使用方法

以下のように簡単なテストデータスクリプトを作成します。

DockCode.md:  

# Markdown content to describe what script does  

```cs  
Create DockCodesHandling.svc/PurchaseDockCodes  
{  
"Contract": "1",  
"DockCode": "DockA",  
"Description": "Main Gate"  
}  

スクリプトは3つのバッククォートで囲む必要があります。

Script-A-Restを実行

ツールは、Script-A-Restコンテキストメニューから実行することも、以下の引数を指定してコマンドラインから実行することもできます。

ScriptARest.exe ServerUrl=https://xtendlkp-dep-rnd.ifsworld.com Username=ifsapp Password=ifsapp FileToRead=json1.md ResultFilePath=C:\\SAR_logs

認証するには、サーバーURL、ユーザー名、およびパスワードを指定すれば十分です。使用する認証情報を設定するように_script_a_rest.cmdファイルを編集します。Token引数を使用して、アクセス用の外部トークンを指定することもできます。Token引数が渡された場合、Script-A-Restはログオン処理を実行しません。

Script-A-Restにはappsettings.configという構成ファイルがあり、以下のようにデフォルト設定を定義できます。

{  
     "LogLevel": "Normal",  
     "ServerUrl": "https://someserver:48080",  
     "Username": "ifsapp",  
     "Password": "ifsapp",  
     "Token": "",  
     "client_secret": "",  
     "FileToRead": "someFile.md",  
     "ResultFilePath": "c:\\results",  
     "AdditionalUsers": {  
         "alain": {"Username": "alain", "Password": "alain"},  
         "User2": {"Username": "MFG2", "Password": "mfg2"},  
         "User3": {"Username": "MFG3", "Password": "mfg3"}  
     }  
}

これにより、コマンドライン引数を指定せずにScript-A-Restを実行できます。コマンドライン引数を指定した場合は、構成ファイル内の設定よりも優先されます。

appsettings.configファイルは、Script-A-Restがインストールされているフォルダーに配置する必要があります。

Script-A-Restは、ファイルを入力せずに対話モードで実行することもできます。これはOracle SQL*Plusとよく似ています。

対話モードを有効にするには、FileToReadパラメーターを指定せずにScriptARestを起動します。

ScriptARest.exe ServerUrl=https://xtendlkp-dep-rnd.ifsworld.com Username=ifsapp Password=ifsapp

注釈

上記の説明どおり、SAR実行ファイルを使用して、利用可能なテストデータスクリプトをいつでも再実行できます。ただし、キー値を変更せずに後で同じスクリプトを再実行すると、エントリがすでに存在する場合にエラーが報告されます。

ログレベル

LogLevelパラメーターを使用して、Test-A-Restが出力する情報量を制御できます。

サポートされているログレベルは以下のとおりです。

  • 通常(デフォルト)
  • 情報
  • Diag
  • デバッグ

ログレベルをDebugに設定する方法は以下のとおりです。

ScriptARest.exe ServerUrl=https://xtendlkp-dep-rnd.ifsworld.com Username=ifsapp Password=ifsapp FileToRead=MyTest.md ResultFilePath=C:\\SAR_logs LogLevel=Debug

テストスクリプトの例

以下のファイルは、lifecycle.ifs.comにあるscript-a-rest.zipフォルダ内にあります。

以下のファイルを使用して、個人および国のテストデータを作成できます。

  • AllTestData.md

以下に示すファイルを使用して、個人データと国データを個別に作成できます。

  • person.md
  • country.md

以下のファイルでは、パラメーターを使用して、子レコードを含む購買ドックコードを作成できます。このファイルはRandom() 関数を使用しているため、再実行して新しいデータを作成できます。

  • DockCodes.md

テストスクリプトの出力例を以下に示します。

IFS Script-a-Rest v 2.2.0 build   
======================================  

2019-10-31 13:23:59 Start  
2019-10-31 13:23:59 2WoRLZV7HT  
2019-10-31 13:24:00 Login OK: IFSSESSIONID48080=5FQhxcVAATxXQxuSxBF2REe_hjmXVH6IJAUZXRLeV6j7TR9XPaz_!-200659304; _WL_AUTHCOOKIE_IFSSESSIONID48080=2Nqll4..IXqn0DQcyKCy  
Number of Code blocks found in file: 1  
2019-10-31 13:24:00 Command:  Post DockCodesHandling.svc/PurchaseDockCodes  
2019-10-31 13:24:00 Request body:  
{  
        "Contract": "1",  
        "DockCode": "DockA",  
        "Description": "Main Gate"  
}  

2019-10-31 13:24:00 Result (201) Created  
2019-10-31 13:24:00 Response  
{"@odata.context":"https://lkppde1697.corpnet.ifsworld.com:48080/main/ifsapplications/projection/v1/DockCodesHandling.svc/$metadata#PurchaseDockCodes/$entity","@odata.etag":"W/\"Vy8iQUFDSU1HQUFGQUFCcElIQUFBOjIwMTkxMDMxMTMyNDAwIg==\"","luname":"PurchaseDockCode","keyref":"CONTRACT=1^DOCK_CODE=DockA^","Objgrants":null,"Contract":"1","DockCode":"DockA","Description":"Main Gate"}  
2019-10-31 13:24:00 Timings  time to first response: 165 ms. Time to response complete 165 ms.  
2019-10-31 13:24:00 End

環境でのベースラインテストデータの設定

開発者がLE環境をリクエストした場合、その環境のタイプがDEV、QAS、TOPIC、BAS、またはDELであれば、事前にロードされたテストデータを含む環境が提供されます。このデータは、R&Dが提供する既存のSARテストデータスクリプトを使用して設定されます。以下の製品のテストデータを利用できます。

注釈

当初は、製品によってテストデータのカバー範囲に差があります。

  1. 航空および防衛
  2. 資産管理
  3. 会計
  4. 人的資源管理
  5. 業種
  6. 製造
  7. 一覧 - プロジェクト
  8. サービス管理
  9. サプライチェーン

テストデータのデプロイメントは、環境作成リクエストの一環として自動的に開始されます。テストデータの読み込み状況は環境レベルで管理され、環境カードビューに表示されます。テストデータのロードは、環境の作成が完了すると開始されます。それまでは、ステータスは「未開始」と表示されます。

test-data-loading-status-not-started
図3 - テストデータ読み込みのステータス

環境の作成が正常に完了すると、テストデータ読み込みのステータスは「保留」に変わります。この状態では、バックグラウンドでテストデータのデプロイが行われている間も、ユーザーは環境にログインできます。

test-data-loading-status-pending
図4 - テストデータ読み込みのステータス:保留

環境の作成に失敗した場合、データ読み込み処理は開始されません。この場合、データ読み込みのステータスは「N/A」と表示されます。

test-data-loading-status-na-during-failed-state
図5 - テストデータ読み込み中の「該当なし」ステータス

テストデータのセットアップ全体には、環境が「実行」になってから最大45分かかる場合があります。処理が正常に完了すると、テストデータ読み込みのステータスは「完了」になります。

test-data-loading-status-completed
図6 - テストデータ読み込みのステータス:完了

テストデータ読み込みログ

テストデータのデプロイが完了すると、処理のログ (script-a-restログ) は個別のzipファイルとして保存され、ビルド場所またはリリースアップデートスタジオの「ログ」ページからアクセスできます。

buildplace_log_files_image
図7 - ビルド場所のログファイル

script-a-restフォルダー内のファイル

log_internal_test_rest_sub_structure
図8 - Script-A-Restフォルダー内のファイル

環境でのカスタムテストデータの作成とデプロイ

R&Dによって提供されるスクリプトに加えて、プロジェクトで行ったカスタマイズをテストする際に使用する独自のテストデータスクリプトを作成できます。これらのテストデータスクリプトは他のテストデータと同じ方法で作成できますが、管理しやすいようにR&Dの構造とは別に保存する必要があります。

カスタマイズ用に作成したテストデータは、testdatacustomフォルダー内に保存されます。プロジェクト開始時には、このフォルダは空であるか、まだ作成されていません。この場合、INTTSTコンポーネントのtest dataフォルダー内にtestdatacustomフォルダーを追加する必要があります(inttst/testdata/testdatacustom)。

tar_testdatacustom_folder
図9 - test dataフォルダー内でのtestdatacustomフォルダーの作成
tar_testdatacustom
図10 - testdatacustomフォルダー内のファイル

カスタムテストデータスクリプトは、testdata/testdatacustomフォルダー内にあるCustomTestData.mkdというマスタースクリプトを使用して呼び出されます。

テストデータスクリプトは、testdatacustomフォルダー内の任意のフォルダー構造に保存できますが、CustomTestData.mkdファイル内で、各スクリプトへの相対パスを正しく指定する必要があります (このファイルが存在しない場合は作成してください)。これは、カスタムテストデータスクリプトを追加した後、リポジトリを基に新しい環境をリクエストすると、CustomTestData.mkdが自動的に呼び出され、標準のR&Dテストデータのデプロイ後に、追加したカスタムテストデータスクリプトがデプロイされるためです。

R&Dが提供するスクリプトを変更する必要がある場合、そのプロセスはアプリケーション内の他のソースファイルを変更する場合と同じです。R&Dが提供するスクリプトを変更して、アプリケーションに対して行った特定のカスタマイズをテストするシナリオにより適したデータを作成できます。今後のアップデートによって発生する競合は、他のソースコードと同じプロセスに従って解決されます。

注釈

保守を容易にするため、まず新しいスクリプトを作成し、コアのR&Dテストデータスクリプトとは分けて、「testdatacustom」構造の下に配置することで、このようなニーズに対応することをお勧めします。

トラブルシューティング

テストスクリプト実行失敗

場合によっては、以下に示すようなエラーでテストスクリプトが失敗することがあります。

tar_error
図11 - テストスクリプトの失敗

このエラーが発生した場合は、C:\Users\\AppData\Local\Temp.net\...フォルダーの内容をクリアすると、問題が解決するはずです。

テストデータ読み込み失敗

テストデータ読み込み処理に失敗した場合、ログが作成され、ビルド場所の「Logs」ページからアクセスできます(詳細については、「テストデータ読み込みログ」を参照してください)。ログは、トラブルシューティングのために参照できます。失敗したテストデータスクリプトを特定したら、次の2つのいずれかを実行します。

  1. こちらの手順に従って、テストデータを手動でデプロイします。
  2. 既存の環境を削除し、別の環境を注文します。
test-data-loading-failed-popup
図12 - テストデータ読み込み失敗のポップアップメッセージ
test-data-loading-status-failed
図13 - テストデータ読み込みステータス:失敗

注釈

テストデータの読み込みに失敗した場合、失敗が発生したステージによっては、環境が一部のデータのみを含む状態、またはデータがまったくない状態で作成されている可能性があります。ただし、その環境は引き続き他の操作に使用できます。