...
Table of Contents | ||
---|---|---|
|
はじめに
Parasoft Selenic は2つの .jar ファイルとして実装されています。継続的テスト実行プロセスの一部として、最初に selenic_agent.jar ファイルを実行してテスト実行に関するデータを収集します。次に、selenic_analyzer.jar ファイルを実行して、エージェントで収集したデータを分析します。
...
Scroll Ignore | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
テスト実行データの収集
テストを実行するときに -javaagent JVM引数を使用して selenic_agent.jar ファイルを指定および構成し、Selenic にテストロジックを教えます。テスト実行データを収集するには、captureDom オプションを有効にする必要があります。Selenic がレコメンドを提供するには、テスト実行が少なくとも1度は成功する必要があります。以下の例は、Java 実行可能ファイルを使用して Selenic エージェントを実行する方法を説明しています:
...
Code Block | ||
---|---|---|
| ||
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 エージェントオプション の使用方法を説明しています。
実行中に DOM を収集し、スクリーンショットを撮る
Code Block | ||
---|---|---|
| ||
mvn test -DargLine=-javaagent:/Applications/parasoft_selenic/selenic_agent.jar=captureDom=true,screenshot=failures |
APIテストの作成および不適切なロケータと待ち条件のセルフヒーリング
この例では、selfHeal この例では、selfHealing オプションが有効になっています。これにより、Selenic は、ロケータと待ち条件にデフォルトのセルフヒーリング機能を適用できます。不適切なロケータを自動的に修復するには、Selenic Java エージェントを使用して、テストが少なくとも1度は正常に実行されている必要があります。待ち条件のヒーリングには前提条件はありません。
...
Code Block | ||
---|---|---|
| ||
mvn test -DargLine=-javaagent:/Applications/parasoft_selenic/selenic_agent.jar=createApiTests=true,proxyPort=40090,soatestHost=localhost,soatestPort=9080,username=admin,password=admin,selfHealselfHealing=true |
APIテストは、SOAtest サーバのワークスペースに作成されます。
Applitools との連携
Applitools はテストの実行中にスクリーンショットまたは "チェックポイント" をキャプチャし、それらをWebアプリケーションに表示して、UI の変更を視覚的に検証できるサードパーティ製のツールです。ツールを Selenic エージェントで実行するときに Applitools API を自動的に呼び出すように Selenic を構成できます。チェックポイントは、各 Selenium ナビゲーションアクションの前、各 Selenium クリックアクションの前、および各テストの終了時にキャプチャされます。
前提条件
Applitools JAR ファイルは、Selenium テストを含むプロジェクトのクラスパスに既に存在している必要があります。JAR ファイルが存在しない場合、エラーメッセージがコンソールに出力されますが、テストは引き続き実行されます。
...
https://applitools.com/docs/topics/overview/obtain-api-key.html
使用法
applitools および applitoolsApplicationName 引数を使用して Selenic エージェントを実行し、Applitools と連携したテストを実行します:
...
テスト実行後、Applitools Webアプリケーションにチェックポイントが表示されるため、Applitools 機能を使用できます。
Applitools との連携と Selenic の screenshots
オプションを同時に使用できますが、Applitools は追加の視覚テスト機能を提供することを目的としています。
結果の表示
Selenic アナライザーを実行して、HTMLレポートを生成します(修正候補の生成 を参照)。追加の引数は必要ありません。Applitools によってキャプチャされた視覚的な変更に関する情報は、Selenic HTML レポートに表示されます。詳細については、Viewing Results 結果の表示 の Applitools 連携の結果の表示 について参照してください。
変更の影響を受けるテストの実行
Selenic のテスト影響分析機能を活用して、テスト対象のアプリケーションの変更によってどのテストが影響を受けるかを判断できます。この機能の使用に関する詳細については、Test Impact Analysis を参照してください。
Anchor | ||||
---|---|---|---|---|
|
Selenic でテストを実行した後、selenic_analyzer.jar ファイルを実行して修正候補を生成します。アナライザーは、<USER_HOME>/parasoft/recorded_data ディレクトリ内のデータを分析し、不適切なロケータの修正候補を生成します。待ち条件のセルフヒーリングが有効になっている場合は、Selenic が作成するレポートに待ち条件に関する修正候補も含まれます。-allLocators オプションを使用すると、すべての成功および失敗したロケータに対する修正候補が生成されます。
...
追加の引数を指定して、Selenic が分析結果を出力する方法をカスタマイズできます。利用可能なすべての引数については、Selenic アナライザー引数 を参照してください。
Code Block | ||
---|---|---|
| ||
java -jar /path/to/selenic_analyzer.jar -<arg> <arg_value> |
Anchor | ||||
---|---|---|---|---|
|
Selenic でテストを実行する時に以下のオプションを指定できます:
Table of Content Zone | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||
|
Anchor | ||||
---|---|---|---|---|
|
このオプションは、テスト実行中に記録したデータの場所を指定します。Selenic アナライザーの Command Line-data オプションは、このオプションに設定した値と一致するように設定する必要があります。
デフォルト <USER>/parasoft/recorded_data
proxyPort
UI テスト実行中に API テストを作成する場合は、SOAtest Web プロキシのポート番号を指定します。
詳細については、Parasoft Recorder のドキュメントをご覧ください。
デフォルト 40090
soatestHost
UI テスト実行中に API テストを作成する場合は、SOAtest サーバが稼働しているホストを指定します。
詳細については、Parasoft Recorder のドキュメントをご覧ください。
デフォルト localhost
soatestPort
UI テスト実行中に API テストを作成する場合は、SOAtest サーバのポート番号を指定します。
詳細については、Parasoft Recorder のドキュメントをご覧ください。
デフォルト 9080
secure
このオプションは、UI テスト実行中に API テストを作成する場合、Selenic が HTTPS 経由で SOAtest サーバと通信できるようにします。
デフォルト false
username
このオプションは、UI テスト実行中に API テストを作成する時に SOAtest サーバでユーザー認証が有効になっている場合、サーバにログインするためのユーザー名を指定します。
password
このオプションは、UI テスト実行中に API テストを作成する時に SOAtest サーバでユーザー認証が有効になっている場合、サーバにログインするためのパスワードを指定します。
maxSessionDaysToAnalyze
このオプションは、実行中に selfHealLocators オプションを適用するときに何日分のテストセッションを含めるかを示します。デフォルトでは制限はないため、Selenic は利用可能なすべての記録データを分析します。
以下の例では、Selenic エージェントが12日分の記録データを使用して、失敗したロケータまたは待ち条件を自動的に修復するための最良のオプションを決定します。
maxSessionDaysToAnalyze=12
日数は、経過した日数に関係なく、最後にデータが記録された日数を指します。
maxSessionDaysToKeep
このオプションは、ディスクに保持するテストセッションデータの日数を示します。
デフォルト 90
以下の例では、Selenic エージェントは12日分の記録データをディスクに保持します:
maxSessionDaysToKeep=12
指定された値は、データが記録された日数であり、カレンダーの日数ではありません。
screenshot
このオプションは、テストマシンがテスト実行中にスクリーンショットを撮る事を可能にします。
以下のいずれかの値を設定できます:
all
- Selenium テストの各 find element 呼び出しに関するスクリーンショットをキャプチャしますfailures
- 失敗した find element 呼び出しに関するスクリーンショットのみをキャプチャしますnone
- スクリーンショットをキャプチャしません
デフォルト none
Anchor selfHealing selfHealing
selfHealing
Anchor | ||||
---|---|---|---|---|
|
このオプションは、自己修復機能を有効にします。true に設定すると、Command Line
selfHealLocators
と Command Line
selfHealWaitConditions
オプションが有効になります。
デフォルト false.
Anchor selfHealLocators selfHealLocators
selfHealLocators
Anchor | ||||
---|---|---|---|---|
|
このオプションは、テスト実行中に収集した履歴情報に基づいて、Selenic がテスト実行時にロケータの更新を自動的に試行する事を可能にします。
selfHealing
が有効の場合、デフォルト true
Anchor selfHealWaitConditions selfHealWaitConditions
selfHealWaitConditions
Anchor | ||||
---|---|---|---|---|
|
このオプションは、Selenium の待ち条件を拡張して、Selenic がテスト実行中の不十分な待ち条件によるタイムアウトやその他のタイプのエラーを防ぐ事を可能にします。
selfHealing
が有効の場合、デフォルト true
Anchor additionalWaitTimePercent additionalWaitTimePercent
additionalWaitTimePercent
Anchor | ||||
---|---|---|---|---|
|
このオプションは、テスト実行中の不十分な待ち条件に関連するタイムアウトやその他のエラーを防ぐために、待ち条件を延長する時間を指定します。このオプションで指定される値は、元々設定されていた待ち条件に対する割合です。 Selenic は割合に基づいて追加時間を計算し、Selenium テストの待ち条件を延長します。以下の例では、元々4秒に設定されていた待ち条件が50%延長されて6秒になります。
additionalWaitTimePercent=50
selfHealing
と Command Line
selfHealWaitConditions
が有効の場合、デフォルト 50
minAdditionalWaitTime
このオプションは、テスト実行中の不十分な待ち条件に関連するタイムアウトやその他のエラーを防ぐために、元々の待ち条件を延長する最小秒数を指定します。結果の割合が最小値よりも小さい場合、Command Line
additionalWaitTimePercent
オプションで動的に設定された値をこのオプションの値でオーバーライドします。
selfHealing
と Command Line
selfHealWaitConditions
が有効の場合、デフォルト true
sessionId
このオプションは、テスト実行データの識別子を指定します。この設定はオプションであり、すべてのプロジェクトの Selenium データを1つのセッションにグループ化する事を可能にします。そのため、複数のプロジェクトにわたってテストを実行する場合にのみ使用する必要があります。それ以外の場合、各プロジェクトの Selenium データは個別のセッション ID で記録されます。そのため、別のプロジェクトでテストを実行する前に、プロジェクトでテストを実行するたびにアナライザーを実行する必要があります。
例:
No Format |
---|
mvn test -DargLine=-javaagent:/path/to/selenic_agent.jar=captureDom=true,sessionId=ID_1 |
データを分析する時は、selenic_analyzer.jar ファイルの呼び出し時に -sessionId オプションを使用してテスト実行中に設定されたIDを参照します。例:
No Format |
---|
java -jar /path/to/selenic_analyzer.jar -sessionId ID_1 |
デフォルトでは、日付とタイムスタンプが使用されます。
Selenic は、Command Linedata
プロパティで指定されたディレクトリに実行データを保存します。記録されたデータディレクトリ内の各サブディレクトリには、各セッションの実行データが含まれています。サブディレクトリは、sessionId
値で名前が付けられます。sessionId
パラメータが設定されていない場合、Selenic はデフォルトでタイムスタンプでサブディレクトリを識別し、データを保存します。
セッション ID を指定しない場合、別のプロジェクトでテストを実行する前に、プロジェクトでテストを実行するたびにアナライザーを実行する必要があります。セッション ID はテスト実行ごとに異なる必要があります。これにより、以前のテスト実行の結果が、後のテスト実行と結合されます。したがって、ビルド識別子またはデフォルトのタイムスタンプを使用することをお勧めします。
Anchor | ||||
---|---|---|---|---|
|
以下のオプションをサポートしています:
Table of Content Zone | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Anchor | ||||
---|---|---|---|---|
|
<path_to_recorded_data>
このオプションは、記録したデータの場所を指定します。Selenic エージェントの実行時に、Command Line
data
オプションに設定した場所と一致するように設定する必要があります。
デフォルト <USER>/parasoft/recorded_data
Anchor Command Line#-encodepass
<password>Anchor | ||
---|---|---|
|
<password> Command Line#-encodepass
<password>
|
<password>
-encodepass <password>
|
このオプションは、selenic.properties ファイルで使用できる暗号化されたパスワードを出力します。Licensing ライセンス をご覧ください。
以下の例では、myPassword
の代わりに使用できる暗号化された文字列をコンソールに出力します:
No Format |
---|
java -jar selenic_analyzer.jar -encodepass myPassword |
-help
このオプションは、サポートされている引数のリストをコンソールに出力します。
-machineId
このオプションは、マシン ID をコンソールに出力します。マシン ID は、Parasoft およびテクマトリックス社がローカルライセンスを発行するために必要です。Licensing ライセンス をご覧ください。
-maxSessionDaysToAnalyze <value>
このオプションは、修正候補を生成するために記録したデータを分析するときに何日分のテストセッションを含めるかを示します。デフォルトでは制限はないため、Selenic は利用可能なすべての記録データを分析します。
以下の例では、Selenic アナライザーは 12 日分の記録データを使用して、ロケータまたは待ち条件の修正候補を生成します:
Code Block | ||
---|---|---|
| ||
java -jar selenic_analyzer.jar -maxSessionDaysToAnalyze 12 |
日数は、経過した暦日数に関係なく、データを記録した最新の日を指します。
Anchor -performanceBenchmarking -performanceBenchmarking
-performanceBenchmarking
Anchor | ||||
---|---|---|---|---|
|
このオプションは、パフォーマンスベンチマークを有効にします。Selenic はテストメソッドの実行時間を収集してレポートに含めます。パフォーマンスベンチマーク機能は、最小単位のテスト実行に基づいて、テストメソッドごとの平均実行時間を計算します。指定したパーセンテージよりも平均時間を超えるテストメソッドには、レポートでフラグが付けられます。成功したテストの実行のみが平均時間を決定するための計算に含まれます。
平均を決定するために必要なテスト実行の最小数と、平均実行時間の超過に関する閾値を設定できます。パフォーマンスベンチマークパラメータの設定については、-performanceBenchmarkingMinRuns と -performanceBenchmarkingPercent をご覧ください。
このオプションはデフォルトで無効になっています。
以下の例では、パフォーマンスベンチマークを有効にし、-performanceBenchmarkingMinRuns
オプションに 5 を設定して、-performanceBenchmarkingPercent
オプションに 20 を設定します。
Code Block | ||
---|---|---|
| ||
java -jar selenic_analyzer.jar -performanceBenchmarking -performanceBenchmarkingMinRuns 5 -performanceBenchmarkingPercent 20 |
例えば、5 回のテスト実行後、Selenic はテストメソッドの平均完了時間が 20 秒であると判断した場合を仮定します。6 回目の実行では、テストが完了するまでに 24.2 秒かかる場合、平均を 21 %上回る事を意味します。その場合、このテストは HTML レポートでフラグが付けられます。パフォーマンスベンチマークのレポート方法については、Viewing Results結果の表示 をご覧ください。
Anchor -performanceBenchmarkingMinRuns <number_of_runs> -performanceBenchmarkingMinRuns <number_of_runs>
-performanceBenchmarkingMinRuns <number_of_runs>
Anchor | ||||
---|---|---|---|---|
|
このオプションは、-performanceBenchmarkingPercent オプションで設定したパーセンテージを超過した時に、レポートでフラグを立てるテストメソッドの平均実行時間を算出するために必要なテスト実行の最小数を設定します。テストの平均実行時間は、パフォーマンスベンチマーク機能のベースラインとして機能します。パフォーマンスベンチマーク機能の詳細については、Command Line-performanceBenchmarking をご覧ください。
デフォルト 5
Anchor -performanceBenchmarkingPercent <percent_threshold> -performanceBenchmarkingPercent <percent_threshold>
-performanceBenchmarkingPercent
<percent_threshold>
Anchor | ||||
---|---|---|---|---|
|
このオプションは、平均実行時間に対する現在のテスト実行のテスト実行時間の閾値を設定します。現在実行中のテストが指定されたパーセンテージを超過してテストの平均実行時間を超えた場合、HTML レポートでテストにフラグが付けられます。パフォーマンスベンチマーク機能の詳細については、Command Line-performanceBenchmarking をご覧ください。
デフォルト 20
-publish
このオプションは、DTP のプロジェクトでテスト結果を公開します。DTP との接続とプロジェクトの設定を行う必要があります(DTP で結果を公開 を参照)。
-report <path_to_filename>
このオプションは、生成されるレポートファイルの場所と名前を指定します。
ディレクトリ/ファイルへの絶対パスがサポートされています。
例:
No Format |
---|
java -jar selenic_analyzer.jar -report /home/reports |
No Format |
---|
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へのソースファイルの公開 を参照)。
デフォルトは現在の作業ディレクトリです。
例:
Code Block | ||
---|---|---|
| ||
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/"