このチュートリアルでは、Parasoft Recorder のデプロイ、API トラフィックの記録、スマート API テストの生成、およびスマート API テスト生成の構成について説明します。このセクションの内容:
前提条件
このチュートリアルを実行するには、SOAtest デスクトップまたはサーバーにリモートアクセスできること、また Advanced Test Generation 機能のライセンスがアクティベートされていることが必要です。詳細については「Parasoft Recorder の基本 」を参照してください。
SOAtest Web プロキシの展開
- プラットフォームに応じた Parasoft Recorder インストーラーを実行します。Windows の場合は parasoft_recorder_<version>_win32.exe、Mac OS の 場合は parasoft_recorder_<version>_macos.dmg です。Mac OS の場合、インストーラーがマウントされたら、Parasoft Recorder.pkg をダブルクリックします。
- 確認画面が表示されたら、ライセンス契約に同意します。
- 確認画面が表示されたら、インストールする場所を選択します。Windows のデフォルト値は
C:\Program Files\Parasoft\Parasoft Recorder
、Mac OS のデフォルト値は/Applications/Parasoft
です。 - Windows にインストールする場合、SOAtest Web Proxy を Windows サービスとしてインストールするかどうかの確認が表示されます。サービスとしてインストールすると、Windows サービスを使用して Web Proxy を制御できます。デフォルトのポートは 40090 です。[はい] を選択して [次へ] をクリックします。
- Parasoft Recorder Chrome Extension をインストールするかどうか確認されたら、[はい] を選択して [次へ] をクリックします。Google Chrome ストアにアクセス可能なインターネット接続が必要です。
- Mac OS にインストールする場合、インストール後に Web Proxy を開始するかどうか、またインストール マシンにログインするたびにプロキシを開始するかどうかの確認が表示されます。デフォルトのポートは 40090 です。両方のオプションを有効化して [Continue] をクリックします。SOAtest で Smart テストを生成するには、Web Proxy を実行する必要があります。後で自動的な起動を無効化できます。
- [インストール] をクリックして完了します。
- インストーラーは、Parasoft Web Root Certificate Authority (CA) を探し、見つからなかった場合は CA をインストールするようメッセージを表示します。通常、CA は SOAtest または Virtualize デスクトップのインストールに伴ってインストールされます。CA は SSL 経由のトラフィック記録を行うために必要です (「インストール」を参照)。確認が表示されたら、CA のインストールを選択して続行します。
- Chrome ブラウザーを開き、アドレス バーに
chrome://extensions
と入力します。 - スライダーをクリックしてプラグインを有効化します。
プラグインを有効化したら、SOAtest サーバーへの接続を設定する必要があります。
SOAtest サーバーへの接続
- アドレス バーに表示される Parasoft アイコンをクリックします。後で設定を変更する必要がある場合、アイコンを右クリックして [オプション] を選択することもできます。
- [オプション] リンクをクリックして接続設定画面にアクセスします。
- 次のオプションを設定します。
- Web Proxy API ポート: 40090 (デフォルト値)
- SOAtest ホスト: SOAtest が実行されているマシンのマシン名または IP アドレスです。
- SOAtest ポート: SOAtest サーバー ホストのポート番号です。
- SOAtest サーバーが SSL 経由で通信するよう設定されている場合、[セキュア (HTTPS)] オプションを有効にします。
- ユーザー名/パスワード: SOAtest サーバーのログイン認証情報です。
- [接続のテスト] をクリックして設定が正しいかを検証し、[保存] をクリックして接続設定を保存します。
テストの作成
このセクションでは、ParaBank デモ アプリケーションに対していくつかのテスト シナリオを作成します。テスト生成設定を変更したり、Smart API Test Generator に指示して Resource Template から HTTP 認証設定、HTTP ヘッダー設定、JSON アサーション設定を適用したりする方法についても説明します。このチュートリアルを始める前に、ParaBank サーバーを開始してください (「ParaBank の設定」を参照)。
シナリオ 1 - ログイン
Chrome ブラウザーで ParaBank を開きます。
- Parasoft ロゴをクリックし、Parasoft SOAtest オプションの API トラフィックを有効にします。
- [記録の開始] を選択し、アプリケーションにログインします (username: john、password: demo)。
- Parasoft ロゴをクリックし、[記録の停止] を選択します。
- テスト名の入力を求められたら、"parabank-login" と入力し、[テスト アセットの作成] をクリックします。
- テスト アセットを CTP で開くかを訊ねられたら、確認ダイアログをクリックします。
SOAtest デスクトップでアセットを表示することもできます。 - Test 1 をダブルクリックし、設定を参照します。テストはログイン認証情報をポストします。
- Test 2 をダブルクリックし、設定を参照します。テストはアカウントの概要情報を取得します。
- 値が変わらないかぎり、その後の実行でテストは成功します。
シナリオ 2 - 送金
- Parabank にログインし、新規シナリオの記録を開始します。
- [Transfer Funds] リンクをクリックし、[Amount] フィールドに 100 と入力します。
- デフォルトの [From] および [To] アカウントフィールドに 12345 を指定し、[Transfer] をクリックします。
- 記録を停止し、テスト名の入力を求められたら、テストの名前を指定します (parabank-transfer など)。
- [テスト アセットの作成] を実行し、通知をクリックして CTP でテストを参照します。SOAtest デスクトップでテストを表示することもできます。このチュートリアルのシナリオでは CTP を使用します。
- API Testing モジュールが表示され、テストを参照できます。テストはユーザー名の下の users ディレクトリに表示されます。
- test 1 ("GET parabank . . .") をクリックし、設定を確認します。テストはログイン シナリオの Test 2 と似ていますが、JSON Data Bank が追加されており、レスポンス値をキャプチャして保存するようになっています。
- test 2 をクリックし、設定を確認します。API 呼び出し URL に送金データが追加されています。
- テストを再実行します。テストは失敗します。
- [レポートの表示] リンクをクリックしてエラーを調査します。
- いくつか問題がありますが、最も重要なのは 401 エラーです。これは、未認可のアクセスに関するものです。[トラフィックの表示] リンクをクリックして詳細を参照します。レスポンスは、SOAtest がシナリオを実行するためにログインできなかったことを示しています。
認証の有効化
- 送金シナリオの test 1 をクリックし、[HTTP 認証] オプションを有効化します。
- ログイン認証情報を指定し、変更を保存します。
- テストを再実行します。test 1 は成功しますが、test 2 には認証情報が設定されていないため、失敗します。test 1 と同様に認証情報を指定します。
- 今後のテストでは、よりスケーラブルな方法で認証を有効化したいと思います。そのため、特定のエンドポイントに対して生成されるすべてのテストで認証設定を有効化するよう SOAtest をトレーニングします。SOAtest デスクトップで parabank-transfer.tst ファイルを右クリックし、[Smart Test Template のトレーニング] を選択します。
- 確認を求められたら、Smart Test Template に HTTP 認証設定を追加することを確認します。
- Smart Test Template ビューで新規リソースをクリックし、認証設定が表示されることを確認します。
別のシナリオを記録して、認証設定が使用されることを確認します。
シナリオ 3 - 新規口座の開設
- Parabank にログインし、新規シナリオの記録を開始します。
- [Open New Account] リンクをクリックし、口座 12345 の預金を使用して新しい当座預金口座を開くことを指定します。
- [Open New Account] をクリックし、記録を停止します。
- 名前の入力を求められたら、新規アセット名として parabank-new-account を指定し、[Create Test Asset] をクリックします。
- ParaBank をログアウトし、SOAtest デスクトップまたは CTP で新規テスト アセットを参照します。シナリオを記録する前にログインしていたにもかかわらず、HTTP 認証設定がテストに含まれていることが分かります。
- テストを実行すると、口座の残高がテスト実行のたびに変わるため、テストは失敗します。
- 値の変化が重要ではない場合、テストとともに作成された Diff ツールを削除し、初期値を考慮しないようにできます。
- テストを再実行すると、今度は成功します。テスト生成時の Diff ツールおよび JSON Assertor ツールの扱いを設定する方法については、「テスト作成の設定」を参照してください。
アサーションの追加
- parabank-login テストを再実行します。レスポンスで返される値が変わっているため、test 2 が失敗します。
- Diff ツールを削除してテストを再実行します。テストは成功します。
- このフェーズでは GET 呼び出しによって返される値については考慮しませんが、JSON Assertor を追加して、呼び出しがデータを返すことを検証したいと思います。SOAtest デスクトップで Test 2 を右クリックして [出力の追加...] を選択します。
- 左パネルで [レスポンス] > [トラフィック] をクリックし、ツール選択パネルで [JSON Assertor] を選択します。
- [終了] をクリックし、設定タブをクリックします。
- [追加] をクリックし、構造アサーション フォルダーから [Has Content アサーション] を選択します。
- [次へ] をクリックし、 id 要素を選択します。
- [次へ] をクリックし、 ["Apply to All "item[*]"] オプションをを選択してアサータ―がレスポンスのすべての兄弟ノードに適用されるようにします。
- 設定タブで [Has content] ドロップダウンから [固定] を選択し、値に
true
を指定します。 - 変更を保存し、テストを実行します。
- テストは成功しますが、生成されるすべてのテストが同様の方法で
id
要素をアサートするようにしたいと思います。テストを右クリックし、[Smart Test Template のトレーニング] を選択します。 - 変更を確認して [OK] をクリックします。
- Resource Template に JSON Assertor ツールが追加されます。ツールはトラフィックの値を使用するよう設定されています。
- 「Scenario 1 -Logging In」の手順に従って
parabank-login2
という名前の新しいテストを作成します。 - テストには Smart Test Template で指定した認証およびアサーション設定が含まれます。
- テストを実行し、テストが成功することを確認します。
テスト作成の設定
Diff および JSON Assertor ツールを持つテストは、テスト実行時に特定の値を期待します。テスト シナリオが特定の値を必要としない場合は、tst_creation.properties 設定ファイルでツールを無効にすると、Web Proxy がこれらのツールを自動的に作成しなくなります。詳細については「Parasoft Recorder の詳細設定」を参照してください。
- 設定ファイルを開きます。ファイルは SOAtest デスクトップのワークスペースの TestAssets ディレクトリにあります。SOAtest デスクトップではなく CTP を使用して API テストを作成し実行する場合、Parasoft Recorder のインストール ディレクトリにある付属の tst_creation.properties を使って設定できます。Mac OS の場合、SOAtest Web Proxy アプリケーションのアイコンを右クリックし、[Show Package Contents] をクリックします。
disableDiffCreation
およびdisableAssertorCreation
プロパティのコメントを解除し、true
を指定します。- ファイルを保存します。
- 新規テストを作成してテスト作成設定を検証します。