このセクションでは、継続的テスト実行プロセスの一部として Selenic を自動化できるように、コマンドラインから Selenic を実行する方法について説明します。このセクションの内容:
Parasoft Selenic は2つの .jar ファイルとして実装されています。継続的テスト実行プロセスの一部として、最初に selenic_agent.jar ファイルを実行してテスト実行に関するデータを収集します。次に、selenic_analyzer.jar ファイルを実行して、エージェントで収集したデータを分析します。
アナライザーは、Selenic がテストとアプリケーションについて学習した内容に基づいて修正候補を生成します。レポートを確認して修正候補を手動で適用するか、セルフヒーリング機能を有効にして Selenic エージェントがテスト実行中に修正候補の適用および、または待ち条件の修復を自動的に行うようにすることができます。それは、下流のプロセスに影響を与えることなく、自動化された UI テストを継続する事を可能にします。
Selenic IDE プラグイン を使用している場合は、両方のプロセス(テスト実行に関するデータの収集と分析)は単一のアクションで実行されます。以下のビデオは、コマンドラインで Selenic を使用する方法の概要を説明しています。
テストを実行するときに -javaagent JVM引数を使用して selenic_agent.jar ファイルを指定および構成し、Selenic にテストロジックを教えます。テスト実行データを収集するには、captureDom オプションを有効にする必要があります。Selenic がレコメンドを提供するには、テスト実行が少なくとも1度は成功する必要があります。以下の例は、Java 実行可能ファイルを使用して Selenic エージェントを実行する方法を説明しています:
java -javaagent:/path/to/selenic_agent.jar=captureDom=true -cp /path/to/junit.jar;/path/to/folder/containing/test/classes junit.textui.TestRunner com.mypackage.MyTestClass |
このドキュメントのコマンドラインの例では、Maven コマンドを使用しています:
mvn test -DargLine=-javaagent:/path/to/selenic_agent.jar=captureDom=true |
次の形式を使用して Java エージェント引数を構成することにより、追加の Selenic 機能を使用できます。
mvn test -DargLine=-javaagent:/path/to/selenic_agent.jar=arg1=value1,arg2=value2 |
詳細については、Selenic エージェントオプション を参照してください。
Selenic はテスト実行データを <USER_HOME>/parasoft/recorded_data ディレクトリに保存します。Selenic アナライザーを実行するとデータを分析し、不適切なロケータを更新するための修正候補を生成します。
テストの実行結果は <PROJECT>/target/surefire-report ディレクトリに保存されます。
以下の例は、利用可能な Selenic エージェントオプション の使用方法を説明しています。
mvn test -DargLine=-javaagent:/Applications/parasoft_selenic/selenic_agent.jar=captureDom=true,screenshot=failures |
この例では、selfHealing オプションが有効になっています。これにより、Selenic は、ロケータと待ち条件にデフォルトのセルフヒーリング機能を適用できます。不適切なロケータを自動的に修復するには、Selenic Java エージェントを使用して、テストが少なくとも1度は正常に実行されている必要があります。待ち条件のヒーリングには前提条件はありません。
createApiTests オプションには次の前提条件があります。
mvn test -DargLine=-javaagent:/Applications/parasoft_selenic/selenic_agent.jar=createApiTests=true,proxyPort=40090,soatestHost=localhost,soatestPort=9080,username=admin,password=admin,selfHealing=true |
APIテストは、SOAtest サーバのワークスペースに作成されます。
Applitools はテストの実行中にスクリーンショットまたは "チェックポイント" をキャプチャし、それらをWebアプリケーションに表示して、UI の変更を視覚的に検証できるサードパーティ製のツールです。ツールを Selenic エージェントで実行するときに Applitools API を自動的に呼び出すように Selenic を構成できます。チェックポイントは、各 Selenium ナビゲーションアクションの前、各 Selenium クリックアクションの前、および各テストの終了時にキャプチャされます。
Applitools JAR ファイルは、Selenium テストを含むプロジェクトのクラスパスに既に存在している必要があります。JAR ファイルが存在しない場合、エラーメッセージがコンソールに出力されますが、テストは引き続き実行されます。
APPLITOOLS_API_KEY 環境変数は、CI システム内で構成するか、テストを実行するプロセスに Java システムプロパティとして渡す必要があります。環境変数を追加する方法については、Applitools のドキュメントを参照してください。
https://applitools.com/docs/topics/integrations/github-integration-ci-setup.html
API キーを取得する方法については、Applitools のドキュメントを参照してください:
https://applitools.com/docs/topics/overview/obtain-api-key.html
applitools および applitoolsApplicationName 引数を使用して Selenic エージェントを実行し、Applitools と連携したテストを実行します:
mvn test -DargLine=-javaagent:/Applications/parasoft_selenic/selenic_agent.jar=captureDom=true,applitools=true,applitoolsApplicationName=MyApplication |
テスト実行後、Applitools Webアプリケーションにチェックポイントが表示されるため、Applitools 機能を使用できます。
Applitools との連携と Selenic の screenshots
オプションを同時に使用できますが、Applitools は追加の視覚テスト機能を提供することを目的としています。
Selenic アナライザーを実行して、HTMLレポートを生成します(修正候補の生成 を参照)。追加の引数は必要ありません。Applitools によってキャプチャされた視覚的な変更に関する情報は、Selenic HTML レポートに表示されます。詳細については、結果の表示 の Applitools 連携の結果の表示 について参照してください。
Selenic のテスト影響分析機能を活用して、テスト対象のアプリケーションの変更によってどのテストが影響を受けるかを判断できます。この機能の使用に関する詳細については、テスト影響分析 を参照してください。
Selenic でテストを実行した後、selenic_analyzer.jar ファイルを実行して修正候補を生成します。アナライザーは、<USER_HOME>/parasoft/recorded_data ディレクトリ内のデータを分析し、不適切なロケータの修正候補を生成します。待ち条件のセルフヒーリングが有効になっている場合は、Selenic が作成するレポートに待ち条件に関する修正候補も含まれます。-allLocators オプションを使用すると、すべての成功および失敗したロケータに対する修正候補が生成されます。
java -jar /path/to/selenic_analyzer.jar |
追加の引数を指定して、Selenic が分析結果を出力する方法をカスタマイズできます。利用可能なすべての引数については、Selenic アナライザー引数 を参照してください。
java -jar /path/to/selenic_analyzer.jar -<arg> <arg_value> |
Selenic でテストを実行する時に以下のオプションを指定できます:
|
mvn test -DargLine=-javaagent:/path/to/selenic_agent.jar=captureDom=true,sessionId=ID_1 |
データを分析する時は、selenic_analyzer.jar ファイルの呼び出し時に -sessionId オプションを使用してテスト実行中に設定されたIDを参照します。例:
java -jar /path/to/selenic_analyzer.jar -sessionId ID_1 |
デフォルトでは、日付とタイムスタンプが使用されます。
Selenic は、data
プロパティで指定されたディレクトリに実行データを保存します。記録されたデータディレクトリ内の各サブディレクトリには、各セッションの実行データが含まれています。サブディレクトリは、sessionId
値で名前が付けられます。sessionId
パラメータが設定されていない場合、Selenic はデフォルトでタイムスタンプでサブディレクトリを識別し、データを保存します。
セッション ID を指定しない場合、別のプロジェクトでテストを実行する前に、プロジェクトでテストを実行するたびにアナライザーを実行する必要があります。セッション ID はテスト実行ごとに異なる必要があります。これにより、以前のテスト実行の結果が、後のテスト実行と結合されます。したがって、ビルド識別子またはデフォルトのタイムスタンプを使用することをお勧めします。
以下のオプションをサポートしています:
|
java -jar selenic_analyzer.jar -encodepass myPassword |
-help
このオプションは、サポートされている引数のリストをコンソールに出力します。
-machineId
このオプションは、マシン ID をコンソールに出力します。マシン ID は、Parasoft およびテクマトリックス社がローカルライセンスを発行するために必要です。ライセンス をご覧ください。
-maxSessionDaysToAnalyze <value>
このオプションは、修正候補を生成するために記録したデータを分析するときに何日分のテストセッションを含めるかを示します。デフォルトでは制限はないため、Selenic は利用可能なすべての記録データを分析します。
以下の例では、Selenic アナライザーは 12 日分の記録データを使用して、ロケータまたは待ち条件の修正候補を生成します:
java -jar selenic_analyzer.jar -maxSessionDaysToAnalyze 12 |
日数は、経過した暦日数に関係なく、データを記録した最新の日を指します。
-performanceBenchmarking
このオプションは、パフォーマンスベンチマークを有効にします。Selenic はテストメソッドの実行時間を収集してレポートに含めます。パフォーマンスベンチマーク機能は、最小単位のテスト実行に基づいて、テストメソッドごとの平均実行時間を計算します。指定したパーセンテージよりも平均時間を超えるテストメソッドには、レポートでフラグが付けられます。成功したテストの実行のみが平均時間を決定するための計算に含まれます。
平均を決定するために必要なテスト実行の最小数と、平均実行時間の超過に関する閾値を設定できます。パフォーマンスベンチマークパラメータの設定については、-performanceBenchmarkingMinRuns と -performanceBenchmarkingPercent をご覧ください。
このオプションはデフォルトで無効になっています。
以下の例では、パフォーマンスベンチマークを有効にし、-performanceBenchmarkingMinRuns
オプションに 5 を設定して、-performanceBenchmarkingPercent
オプションに 20 を設定します。
java -jar selenic_analyzer.jar -performanceBenchmarking -performanceBenchmarkingMinRuns 5 -performanceBenchmarkingPercent 20 |
例えば、5 回のテスト実行後、Selenic はテストメソッドの平均完了時間が 20 秒であると判断した場合を仮定します。6 回目の実行では、テストが完了するまでに 24.2 秒かかる場合、平均を 21 %上回る事を意味します。その場合、このテストは HTML レポートでフラグが付けられます。パフォーマンスベンチマークのレポート方法については、結果の表示 をご覧ください。
-performanceBenchmarkingMinRuns <number_of_runs>
このオプションは、-performanceBenchmarkingPercent オプションで設定したパーセンテージを超過した時に、レポートでフラグを立てるテストメソッドの平均実行時間を算出するために必要なテスト実行の最小数を設定します。テストの平均実行時間は、パフォーマンスベンチマーク機能のベースラインとして機能します。パフォーマンスベンチマーク機能の詳細については、-performanceBenchmarking をご覧ください。
デフォルト 5
-performanceBenchmarkingPercent
<percent_threshold>
このオプションは、平均実行時間に対する現在のテスト実行のテスト実行時間の閾値を設定します。現在実行中のテストが指定されたパーセンテージを超過してテストの平均実行時間を超えた場合、HTML レポートでテストにフラグが付けられます。パフォーマンスベンチマーク機能の詳細については、-performanceBenchmarking をご覧ください。
デフォルト 20
-publish
このオプションは、DTP のプロジェクトでテスト結果を公開します。DTP との接続とプロジェクトの設定を行う必要があります(DTP で結果を公開 を参照)。
-report <path_to_filename>
このオプションは、生成されるレポートファイルの場所と名前を指定します。
ディレクトリ/ファイルへの絶対パスがサポートされています。
例:
java -jar selenic_analyzer.jar -report /home/reports |
java -jar selenic_analyzer.jar -report "C:\reports\my-report.html" |
デフォルトでは次の場所が使用されます:
"{WORKING_DIR}/report.html"
-sessionId <value>
このオプションは、処理する記録済みデータを含むテストセッションの ID を指定できます。指定しない場合、最後に記録したセッションのデータが使用されます。
-settings <location_of_properties_file>
このオプションは、selenic_analyzer.jar の実行オプションを含む .properties ファイルを指定します。.properties ファイルには、Selenic 分析中に適用するライセンスおよびレポート設定が含まれています。追加情報については、以下のセクションを参照してください:
-source
<directory_or_file>
このオプションは、DTP で公開するソースファイルまたはソースファイルを含むディレクトリの場所を指定できます。複数の -source
フラグを使用して、一連のディレクトリまたはファイルを指定できます。Selenic の設定で DTP でソースを公開するように設定されていない場合、このオプションは効果がありません(DTP で結果を公開 の DTPへのソースファイルの公開 を参照)。
デフォルトは現在の作業ディレクトリです。
例:
java -jar selenic_analyzer.jar -source C:\my_project1 -source C:\my_project2 |
-surefire
<path_to_file>
このオプションは、Surefire XML レポートの場所を指定できます。Surefire XML レポートは、Maven でテストを実行するときに作成され、HTML レポートの作成に使用されます。
ディレクトリ/ファイルへの絶対パスがサポートされています。
次のワイルドカードもサポートされています:
**
- 2 つのアスタリスクを使用して、ディレクトリを照合します。
*
- 1 つのアスタリスクを使用して、ファイル名を照合します。
例:
-surefire "/home/folder"
-surefire "C:\folder\file.xml"
以下の例では、Selenicは /folder1/folder2/folder3、/folder2/folder3、および /folder3 で XML ファイルを検索します:
-surefire "**/folder3"
以下の例では、Selenicは folder3 内の "ProjectA" で始まるすべての XML ファイルを検索します:
-surefire "**/folder3/ProjectA*.xml"
デフォルトでは以下の場所が使用されます。
"**/target/surefire-reports/"