Web テスト、モバイル・テスト、または API テストの並列実行

複数の UFT One テストを並列で実行するには、ParallelRunner CLI ツールを使用します。GUI テストをモバイル・デバイスと Web ブラウザで実行できるほか、API テストを実行することもできます。ParallelRunner は、GUI テストによって呼び出される API テストと、その逆の API テストによって呼び出される GUI テストもサポートします。

ParallelRunner を使用した API テストの実行は、UFT One バージョン 15.0.2 以降でサポートされています

サポート環境

Web の並列テストは、Web Add-in でサポートされているコントロールについて、特定のブラウザでサポートされます。サポートされているブラウザのリストについては、ブラウザのパラメータ値のリストを参照してください。

モバイル・デバイスでの並列テストは、UFT Mobile を使用する場合にサポートされており、ローカル・デバイスでテストする場合はサポートされていません。

先頭に戻る

並列テストを開始する前に

並列テストを開始する前に、次の手順を実行します。

ライセンス

お使いのライセンスでユース・ケースがサポートされていることを確認します。

ParallelRunner では、最大 4 つのテストの並列実行がサポートされています。さらに、デスクトップ Web テストを並列実行するには、コンカレント・ライセンス・サーバが必要です。Web テスト実行はそれぞれ 1 つのコンカレント・ライセンスを消費します。

ParallelRunner ポートへのアクセス UFT One コンピュータのファイアウォールによって ParallelRunner が使用するポート(標準設定で 50051)がブロックされていないことを確認します。
モバイル Web テスト

モバイル Web ブラウザをテストする場合は、[モバイル]タブの[記録と実行環境設定]で、正しいブラウザが選択されていることを確認します。

詳細については、「モバイル・アプリをテストするための設定の定義」を参照してください。

Web テスト

次の点に注意してください。

ParallelRunner コマンドで Web ブラウザを指定すると、これらのブラウザはテストを実行する前に起動されます。この値は、[記録と実行環境設定]で定義された設定と、テスト内で設定されたすべてのブラウザ・パラメータ化より優先されます。

つまり

  • この実行では、コマンドで指定されたブラウザを起動するように、[記録と実行環境設定]が変更されます。

    [記録と実行環境設定]が[開いているブラウザで記録と実行を行う]に設定されている場合、現在の実行では、このオプションは選択が解除されます。

    [記録と実行環境設定]が[特定のブラウザを起動するように設定されている場合、これらのブラウザは起動されません。

  • テストに WebUtil.LaunchBrowser ステップが含まれている場合、追加のブラウザ・ウィンドウが追加で起動されます。テストがブラウザを正しく区別していることを確認してください。

先頭に戻る

テストの並列実行

ParallelRunner ツールは <UFT One インストール・フォルダ>/bin ディレクトリにあります。

次の手順を実行します。

  1. UFT One を閉じます。ParallelRunner と UFT One は同時に実行できません。

  2. コマンド・ラインからテストを並列実行します。テストと環境の詳細は次の方法で定義します。

ParallelRunner を使用したテスト実行は[高速]モードで実行されます。詳細については、「高速モード」を参照してください。

詳細については、次を参照してください。

先頭に戻る

コマンド・ライン・オプションを使用したテスト、環境、およびパラメータの定義

コマンド・ラインからテストを実行する場合は、個別のコマンドで各テストを別々に実行します。

GUI テストの場合、各コマンドで実行対象として異なる選択肢を指定すると、テストが複数回実行されます。次の要素に対して選択肢を指定することができます。 

  • ブラウザ
  • デバイス
  • データ・テーブル
  • テスト・パラメータ

コマンド・ラインからテストを実行するには、以下のセクションで定義された構文を使用します。選択肢を区切るにはセミコロン(;)を使用します。

ParallelRunner によって、指定した選択肢のすべての組み合わせをテストするために必要な回数のテストが実行されます。

例: 

テストを各ブラウザに対して 1 回ずつ、3 回実行します。

ParallelRunner -t "C:\GUIWebTest" -b "Chrome;IE;Firefox"

テストを各ブラウザで各データ・テーブルに対して 1 回ずつ、4 回実行します。

ParallelRunner -t "C:\GUIWebTest" -b "Chrome;Firefox" -dt ".\Datatable1.xlsx;.\Datatable2.xlsx"

テストを各ブラウザで各データ・テーブルを使用して各テスト・パラメータ・セットで 8 回実行します。

ParallelRunner -t "C:\GUIWebTest" -b "Chrome;Firefox" -dt ".\Datatable1.xlsx;.\Datatable2.xlsx" -tp "param1:value1, param2:value2; param1:value3, param2:value4"

ヒント: 別の方法として、1 つのファイルで複数のテストが設定されている .json ファイルを参照する方法があります。このファイルでは、各テスト実行を個別に設定します。詳細については、「.json ファイルを使用したテスト、環境、パラメータの定義」を参照してください。

Web テストのコマンド・ライン構文

コマンド・ラインから、次の構文を使用して各 Web テストを実行します。

ParallelRunner -t <テスト・パス> -b <ブラウザ> -r <結果パス>

例:

ParallelRunner -t "C:\GUIWebTest_Demo" -b "Chrome;IE;Firefox" -r "C:\parallelexecution"

複数のブラウザを指定すると、テストは各ブラウザで 1 回ずつ、複数回実行されます。

モバイル・テストのコマンド・ライン構文

コマンド・ラインから、次の構文を使用して各モバイル・テストを実行します。

ParallelRunner -t <テスト・パス> -d <デバイスの詳細> -r <結果パス>

例:

ParallelRunner -t "C:\GUITest_Demo" -d "deviceID:HT69K0201987;manufacturer:samsung,osType:Android,osVersion:>6.0;manufacturer:motorola,model:Nexus 6" -r "C:\parallelexecution"

複数のデバイスを指定すると、テストは各デバイスで 1 回ずつ、複数回実行されます。

利用可能なデバイスの待機

利用可能なデバイスがない場合に、すぐにテスト実行を失敗にするのではなく、適切なデバイスが利用可能になるまで待機するように、ParallelRunner を設定することができます。これを行うには、ParallelRunner コマンドに -we オプションを追加します。

API テストのコマンド・ライン構文

コマンド・ラインから、次の構文を使用して各 API テストを実行します。

ParallelRunner -t <テスト・パス> -r <結果パス>

例:

ParallelRunner -t "C:\APITest" -r "C:\API_TestResults"

コマンド・ライン・オプション

コマンド・ラインから直接テストを実行する場合は、次のオプションを使用します。

  • オプション名には大文字と小文字の区別がありません。

  • ダッシュ(-)の後にオプションの省略形を使用するか、2 つのダッシュ(--)の後にオプションの正式名を使用します。

-t

--test

文字列。必須。

実行する UFT One テストが含まれるフォルダのパスを定義します。

パスにスペース文字が含まれる場合は、パスを二重引用符("")で囲む必要があります。例:-t ".\GUITest Demo"

同じパスでの複数のテストはサポートされていません。

-b
--browsers

文字列。オプション。Web テストでサポートされています。

複数のブラウザはセミコロン(;)を使用して定義します。ParallelRunner でテストが複数回実行され、指定したすべてのブラウザでテストが行われます。

次の値がサポートされています。

  • Chrome

  • Chrome_Headless

  • ChromiumEdgeUFT One 15.0.1 以降)

  • Edge

  • Firefox

  • Firefox64

  • IE

  • IE64

  • Safari

  • この値は、[記録と実行環境設定]で定義されたすべての設定と、テスト内で設定されたすべてのブラウザ・パラメータ化より優先されます。WebUtil.LaunchBrowser メソッドは影響を受けません。
  • 実行結果レポートで同じブラウザ・タイプに対して別々のカラムが生じるのを避けるため、ブラウザ名の大文字と小文字には一貫性を持たせることをお勧めします。詳細については、「ParallelRunner の応答と実行結果の例」を参照してください。
  • Safari は、リモートの Mac マシンでのテストの場合にサポートされます。詳細については、「リモートの Mac コンピュータに接続する」を参照してください。

-d

--devices

文字列。オプション。モバイル・テストでサポートされています。

複数のデバイスはセミコロン(;)を使用して定義します。ParallelRunner でテストが複数回実行され、指定したすべてのデバイスでテストが行われます。

この文字列で以下の属性を使用して、特定のデバイス ID を使用してデバイスを定義したり、機能でデバイスを検索したりします。

  • deviceID:UFT Mobile デバイス・ラボ内の特定のデバイスのデバイス ID を定義します。この属性は、他のデバイス機能属性と一緒に使用することはできません。

  • manufacturer:デバイスの製造者を定義します。

  • model:デバイスのモデルを定義します。

  • osType:デバイスのオペレーティング・システムを定義します。

    次のいずれかの値です。AndroidiOSWindows Phone

    この値が定義されていない場合は、標準設定として[記録と実行環境設定]で定義されている OS タイプが使用されます。

  • osVersion:デバイスのオペレーティング・システムのバージョンを定義します。次のいずれかの値です。

    • Any:バージョン番号を未定義のままにします。

    • 特定のバージョン。例:10.0

    • ブール演算子とバージョンの値。例:>10.0<10.0>=10.0<=10.0

:この文字列のカンマ、コロン、セミコロンの前後に余分なスペースを追加しないでください。特殊文字をサポートするために、文字列は常に二重引用符("")で囲むことをお勧めします。

例:

–d "manufacturer:apple,osType:iOS,osVersion:>=11.0"

-dt

--dataTables

文字列。オプション。Web テストまたはモバイル・テストでサポートされます。

このテストに使用するデータ・テーブルのパスを定義します。UFT One では、テストに保存されているデータ・テーブルではなく、指定したテーブルが使用されます。

複数のデータ・テーブルはセミコロン(;)を使用して定義します。ParallelRunner でテストが複数回実行され、指定したすべてのデータ・テーブルを使用してテストが行われます。

パスにスペース文字が含まれる場合は、パスを二重引用符("")で囲む必要があります。

例:-dt ".\Data Tables\Datatable1.xlsx;.\Data Tables\Datatable2.xlsx"

-o

--output

文字列。オプション。

テストの実行中と実行後にコンソールに表示される結果出力を指定します。

次の値がサポートされています。

  • Normal:(標準設定)コンソールの実行出力は自動的に更新されます。

    たとえば、実行ステータスが「保留中」から「実行中」に変化し、さらに「成功」や「失敗」に変化する、などです。

  • Static:テスト実行の開始時にレポートのパスが表示され、テストが完了すると実行ステータスが表示されます。

  • Disable:コンソールに出力がまったく表示されません。

-r

--reportPath

文字列。オプション。

テストの実行結果を保存するパスを定義します。標準設定では、実行結果は %Temp%\TempResults に保存されます。

文字列にスペース文字が含まれる場合は、文字列を二重引用符("")で囲む必要があります。例:- r "%Temp%\Temp Results"

-rl

--report-auto-launch

オプション。

コマンドに含めると、テスト実行が開始されたときに自動的に実行結果が開きます。更新頻度を指定するには、「-rr--report-auto-refresh」 オプションを使用します。

詳細については、「ParallelRunner の応答と実行結果の例」を参照してください。

-rn

--reportName

文字列。オプション。

レポート名を定義します。レポート名は、並列実行のサマリ・レポートを開いたときにブラウザのタブに表示されます。標準設定では、この名前は「Parallel Report」です。

この名前をカスタマイズすれば、複数のレポートを一度に開いたときに実行が区別しやすくなります。この目的のため、各レポート名にはタイムスタンプも追加されます。

文字列にスペース文字が含まれる場合は、文字列を二重引用符("")で囲む必要があります。例:- rn "My Report Title"

-rr

--report-auto-refresh

オプション。

開いている実行結果ファイルを自動的に更新する頻度(秒)を指定します。

例:-rr 5

整数が指定されない場合の標準設定:5 秒

-tp

--testParameters

文字列。オプション。Web テストとモバイル・テストでサポートされます。

テスト・パラメータに使用する値を定義します。パラメータの名前と値のペアをカンマで区切ったリストを指定します。

指定されないテスト・パラメータについては、テスト自体で定義されている標準設定値が使用されます。

例:-tp "param1:value1,param2:value2"

複数のテスト・パラメータ・セットはセミコロン(;)を使用して定義します。ParallelRunner でテストが複数回実行され、指定したすべてのテスト・パラメータを使用してテストが行われます。

例:-tp "param1:value1, param2:value2; param1:value3, param2:value4"

パラメータ値にカンマ(,)、セミコロン(;)、またはコロン(:)が含まれている場合は、値をバックスラッシュと二重引用符の組み合わせ(\")で囲みます。

たとえば、TimeParam の値が 10:00;00 の場合は、次のようになります。

-tp "TimeParam:\"10:00;00\""

注:コマンド・ライン・オプションを使用して、パラメータ値に二重引用符(")を含めることはできません。代わりに、ParallelRunner コマンド用の JSON 設定ファイルを使用します。

-we

--wait-for-environment

オプション。モバイル・テストでサポートされています。

コマンドに含めることで、各モバイル・テスト実行に対して、利用可能なデバイスがない場合にすぐに失敗となるのではなく、適切なデバイスが利用可能になるまで待機するよう指定します。

先頭に戻る

.json ファイルを使用したテスト、環境、パラメータの定義

ParallelRunner を実行し、コマンド・ラインから直接 .json 設定ファイルを参照します。

.json ファイルでは、次のことが可能です。

  • 並列実行する複数のテストの指定
  • 複数の実行で使用する複数の環境およびパラメータの定義

.json 設定ファイルを使用して ParallelRunner を実行するには、次の手順を実行します。

  1. .json ファイルで、テスト実行ごとに別々の行を追加します。.json のオプションを使用して、各実行で使用する環境とパラメータを記述します。

  2. コマンド・ラインで、次のコマンド・ライン・オプションを移用して .json ファイルを参照します。

    -c

    文字列。.json 設定ファイルのパスを定義します。

    次の構文を使用します。

    ParallelRunner -c <.json ファイルのパス>

    例:

    ParallelRunner -c parallelexecution.json

  3. コマンド・ライン・オプションを追加して、実行結果を設定します。詳細については、-o-rl-rr を参照してください。

    .json 設定ファイルとともに使用できるのは、これらのオプションだけです。その他のコマンド・ライン・オプションはすべて無視されます。

.json 設定ファイルの例

次に、.json 設定ファイルの構文の例を示します。このファイルでは、最後のテストはローカル・デスクトップ・ブラウザとモバイル・デバイスの両方で実行されます。「同期を含む .json 設定ファイルの例」も参照してください。

{
 "「reportPath」": "C:\\parallelexecution",
"「reportName」":"My Report Title",
 "「waitForEnvironment」":true,
 "parallelRuns": [
  {
   "「test」": "C:\\Users\\qtp\\Documents\\Unified Functional Testing",
   "「dataTable」": "C:\\Data Tables\\Datatable1.xls",
   "「testParameter」":{
     "para1":"val1",
     "para2":"val2"
    }
   "「reportSuffix」": "Samsung_OS_above_6",
   "env": {
    "mobile": {
     "device": {
      "「manufacturer」": "samsung",
      "「osVersion」": ">6.0",
      "「osType」": "Android"
     }
    }
   }
  },
  {
   "「test」": "C:\\Users\\qtp\\Documents\\Unified Functional Testing",
   "「dataTable」: "C:\\Data Tables\\Datatable2.xls",
   "「testParameter」":{
     "para1":"val3",
     "para2":"val4"
    }
   "「reportSuffix」": "Moto_Nexus_6_OS_equals_7",
   "env": {
    "mobile": {
     "device": {
      "「manufacturer」": "motorola",
      "「model」": "Nexus 6",
      "「osVersion」": "7.0",
      "「osType」": "Android"
     }
    }
   }
  },
  {
   "「test」": "C:\\Users\\qtp\\Documents\\Unified Functional Testing",
   "「reportSuffix」": "ID_HT69K0201987",
   "env": {
    "mobile": {
     "device": {
      "「deviceID」": "HT69K0201987"
     }
    }
   }
  },
  {
   "「test」": "C:\\Users\\qtp\\Documents\\Unified Functional Testing",
   "「reportSuffix」": "Web_Chrome",
   "env": {
    "web": {
     "「browser」": "Chrome"
    }
   }
  } ,
  {
   "「test」":  "C:\\Users\\qtp\\Documents\\API Test",
   "「reportSuffix」":  "API"
  } ,
  {
   "「test」": "C:\\Users\\qtp\\Documents\\Unified Functional Testing",
   "「dataTable」": "C:\\Data Tables\\Datatable3.xls",
   "「reportSuffix」": "Mobile_Web",
   "env": {
    "web": {
     "「browser」": "Chrome"
    },
    "mobile": {
     "device": {
      "「manufacturer」": "motorola",
      "「model」": "Nexus 6",
      "「osVersion」": "7.0",
      "「osType」": "Android"
     }
    }
   }
  }
 ]
}

.json 設定ファイルのオプション・リファレンス

.json 設定ファイルで次のオプションを定義して、コマンド・ラインから参照します(大文字と小文字が区別されます)。

reportPath

文字列。テストの実行結果を保存するパスを定義します。

標準設定では、実行結果は %Temp%\TempResults に保存されます。

reportName

文字列。

レポート名を定義します。レポート名は、並列実行のサマリ・レポートを開いたときにブラウザのタブに表示されます。標準設定では、レポート名は .json ファイル名と同じです。

この名前をカスタマイズすれば、複数のレポートを一度に開いたときに実行が区別しやすくなります。この目的のため、各レポート名にはタイムスタンプも追加されます。

test

文字列。実行する UFT One テストが含まれるフォルダのパスを定義します。

reportSuffix

文字列。実行結果のファイル名の末尾に追加するサフィックスを定義します。たとえば、テストを実行した環境を示すサフィックスを追加できます。

例:"reportSuffix":"Samsung6_Chrome"

標準設定:"[N]"。これは、同じ並列実行の同じテストに複数の結果がある場合に、現在の結果インスタンスのインデックス番号を示します。

注: 

  • 実行結果のファイル名は「<test name>_<reportSuffix>」という構造であり、一意である必要があります。そのため、同じテストの複数の実行に同じサフィックスを指定しないでください。
  • サフィックスを決めるときは、結果のファイル名が 22 文字を超えると、ParallelRunner によってコマンド・ウィンドウに表示される出力で、ファイル名が切り捨てられることに注意してください。
browser

文字列。Web テストの実行時に使用するブラウザを定義します。

次の値がサポートされています。

  • Chrome

  • Chrome Headless

  • ChromiumEdgeUFT One 15.0.1 以降)

  • Edge

  • IE

  • IE64

  • Firefox

  • Firefox64

  • Safari

  • この値は、[記録と実行環境設定]で定義されたすべての設定と、テスト内で設定されたすべてのブラウザ・パラメータ化より優先されます。WebUtil.LaunchBrowser メソッドは影響を受けません。
  • 実行結果レポートで同じブラウザ・タイプに対して別々のカラムが生じるのを避けるため、ブラウザ名の大文字と小文字には一貫性を持たせることをお勧めします。詳細については、「ParallelRunner の応答と実行結果の例」を参照してください。
  • Safari は、リモートの Mac マシンでのテストの場合にサポートされます。詳細については、「リモートの Mac コンピュータに接続する」を参照してください。
deviceID

文字列。UFT Mobile デバイス・ラボ内の特定のデバイスのデバイス ID を定義します。

deviceID とデバイス機能属性の両方が指定されると、デバイス機能属性は無視されます。

manufacturer

文字列。デバイスの製造者を定義します。

model

文字列。デバイスのモデルを定義します。

osVersion

文字列。デバイスのオペレーティング・システムのバージョンを定義します。

次のいずれかの値です。

  • Any:バージョン番号を未定義のままにします。

  • 特定のバージョン。例:10.0。

  • ブール演算子とバージョンの値。例:>10.0<10.0>=10.0<=10.0

osType

デバイスのオペレーティング・システムを定義します。

次のいずれかの値です。

  • Android
  • iOS
  • Windows Phone

dataTable

文字列。Web テストとモバイル・テストでサポートされます。

このテスト実行に使用するデータ・テーブルのパスを定義します。UFT One では、テストに保存されているデータ・テーブルではなく、指定したテーブルが使用されます。

dataTable 定義は、関連するテスト実行を記述するセクションに配置します。

testParameter

文字列。Web テストとモバイル・テストでサポートされます。

このテスト実行のテスト・パラメータに使用する値を定義します。パラメータの名前と値のペアをカンマで区切ったリストを指定します。

例: 

"testParameter":{
      "para1":"val1",
      "para2":"val2"
    }

testParameter 定義は、関連するテスト実行を記述するセクションに配置します。

パラメータ値にバックスラッシュ(\)または二重引用符(")が含まれる場合は、その文字の前にバックスラッシュを追加します。例:"para1":"val\"1" では、パラメータ para1 に値 val"1 が割り当てられます。

指定されないテスト・パラメータについては、テスト自体で定義されている標準設定値が使用されます。

waitForEnvironment

各モバイル・テスト実行に対して、利用可能なデバイスがない場合にすぐに失敗となるのではなく、適切なデバイスが利用可能になるまで待機するよう指定する場合は、このオプションを true に設定します。

先頭に戻る

条件の使用による並列実行の同期

並列実行の同期と制御を行うには、テスト実行間の依存関係を作成し、実行の開始時刻を制御します(ParallelRunner コマンドで .json ファイルを使用する場合にのみサポート)。

条件を使用することで、テスト実行では次の動作を実行できます。 

  • 数秒待ってから実行を開始する
  • 別のテスト実行の後に実行する
  • 別のテストが実行され、特定のステータスに到達した後にのみ開始する

.json ファイルで定義されたテスト実行ごとに、実行開始のタイミングを制御する条件を作成します。条件は、「test」セクションで、次に説明する要素を使用して作成します。

次の種類の条件を作成できます。 

  • 単純条件:1 つ以上の待機ステートメントが含まれます。
  • 複合条件:複数の条件と、すべての条件を満たす必要があるかどうかを指定する AND/OR 演算子が含まれます。
testRunName テスト実行の名前。waitForTestRun または waitForRunStatuses 条件で、他のテスト実行によって使用されます。
condition

このテストの実行を制御するために使用されるすべての待機条件を含むメインの要素。

待機オプションを含めたり、conditions 要素をネストしたりすることができます。

conditions

1 つ以上の単純条件の配列または追加の複合条件を含む要素。

conditions 要素は複合条件に含めることができます。

operator

operator に続く conditions 要素の条件が、すべて満たされる必要があるかどうかを指定します。

取り得る値: 

  • AND:テスト実行の開始前に、operator の後のすべての条件が満たされる必要があります。
  • OR:operator に続く条件のいずれかが満たされると、すぐにテスト実行が開始されます。
waitSeconds

このテスト実行の開始前に指定した秒数だけ待機するように、ParallelRunner を設定します。

waitForTestRun

指定した実行の終了後にこのテスト実行を実行するように、ParallelRunner を設定します。待機する実行は testRunName を使用して指定します。

waitForTestRun オプションは、他のオプションと組み合わせることができます。

  • waitSeconds を使用すると、指定した実行の終了後に一定の秒数待機します。
  • waitForRunStatuses を使用すると、指定したテストが特定のステータスに到達するまで待機します。

例:次の条件は、テスト実行 3 が指定したステータスのいずれかに到達してから 10 秒後にテスト実行 1 を実行するように、ParallelRunner を設定します。

"testRunName": "1",
         "condition":{
                "waitForTestRun": "3",
                "waitSeconds": 10,
                "waitForRunStatuses": ["passed", "failed", "warning", "canceled"]
}

注:複数の待機オプションを組み合わせる場合、暗黙的に指定される演算子は AND です。

waitForRunStatuses

指定した実行が特定のステータスに到達した後にこのテスト実行を実行するように、ParallelRunner を設定します。

  • 待機する実行は testRunName を使用して指定します。

  • 待機する 1 つ以上のテスト・ステータスの文字列を指定します。指定したテストが指定したステータスのいずれかに到達すると、条件が満たされます。

    例:"waitForRunStatuses": ["passed", "failed", "warning", "canceled"]

同期を含む .json 設定ファイルの例

次に、並列実行を同期させる .json 設定ファイルの例を示します。

{
  "reportPath": "C:\\parallelexecution",
  "reportName": "My Report Title",
  "waitForEnvironment": true,
  "parallelRuns": [{
    "test": "C:\\Users\\qtp\\Documents\\Unified Functional Testing\\GUITest_Mobile",
    "testRunName": "1",
    "condition": {
          "operator": "AND",
          "conditions": [{
            "waitSeconds": 5
            }, {
              "operator": "OR",
              "conditions": [{
                "waitSeconds": 10,
                "waitForTestRun": "2"
              }, {
                "waitForTestRun": "3",
                "waitSeconds": 10,
                "waitForRunStatuses": ["failed", "warning", "canceled"]
              }
            ]
          }
        ]  
      },
    "env": {
      "mobile": {
        "device": {
          "osType": "IOS"
        }
      }
    }
  }, {
    "test": "C:\\Users\\qtp\\Documents\\Unified Functional Testing\\GUITest_Mobile",
    "testRunName": "2",
    "condition": {
      "waitForTestRun": "3",
      "waitSeconds": 10
    },
    "env": {
      "mobile": {
        "device": {
          "osType": "IOS"
        }
      }
     }
  }, {
    "test": "C:\\Users\\qtp\\Documents\\Unified Functional Testing\\GUITest_Mobile",
    "testRunName": "3",
    "env": {
      "mobile": {
        "device": {
          "deviceID": "63010fd84e136ce154ce466d79a2ebd357aa5ce2"
        }
      }
    }
  }]
}

この .json file を使用して ParallelRunner を実行すると、次のような動作となります。

  • テスト実行 3 は、デバイス 63010fd84e136ce154ce466d79a2ebd357aa5ce2 を待機します。

  • テスト実行 2 は、テスト実行 3 の終了後に 10 秒間待機し、iOS デバイスが利用可能になるまで待機します。

  • テスト実行 1 は、ParallelRunner コマンドの実行後にまず 5 秒間待機します。

    続いて、実行 2 が終了するか、実行 3 が「失敗」、「警告」、「キャンセル済み」のいずれかのステータスに到達した後に、10 秒間待機します。

    さらに、iOS デバイスが利用可能になるまで待機します。

先頭に戻る

分離モードでのステップの実行

複数のテストを並列実行する場合、同じオブジェクトを操作する関連ステップがあると、ステップが互いに干渉して、並列テストの実行でエラーが発生する場合があります。

エラーの発生を防ぐために、こうしたステップは分離モードで実行されるように設定し、並列実行される他のテストの干渉から保護します。

並列実行するステップは、以下のユーティリティ・ステップで囲みます。

  • ParallelUtil.StartIsolatedExecution
  • ParallelUtil.StopIsolatedExecution

例:

ParallelUtil.StartIsolatedExecution

Browser("Advantage Shopping").Page("Google").WebEdit("Search").Click

Dim mySendKeys

set mySendKeys = CreateObject("WScript.shell")

mySendKeys.SendKeys("Values")

ParallelUtil.StopIsolatedExecution

詳細については、『UFT One Object Model Reference』の ParallelUtil オブジェクトのリファレンスを参照してください。

先頭に戻る

並列実行の停止

コマンド・ラインからテスト実行を終了するには、キーボードで CTRL+C キーを押します。

  • まだ完了していないことを示す「実行中」または「保留中」ステータスのテストは、即座に停止します。

  • キャンセルされたこれらのテストでは、実行結果は生成されません。

先頭に戻る

ParallelRunner の応答と実行結果の例

次のコードは、ParallelRunner を使用してテストを実行した後にコマンド・ラインに表示される応答の例です。

>ParallelRunner -t ".\GUITest_Demo" -d "manufacturer:samsung,osType:Android,osVersion:Any;deviceID:N2F4C15923006550" -r "C:\parallelexecution" -rn "My Report Name"

Report Folder: C:\parallelexecution\Res1

ProcessId, Test, Report, Status

3328, GUITest_Demo, GUITest_Demo_[1], Running -

3348, GUITest_Demo, GUITest_Demo_[2], Pass

この例では、実行が完了すると、C:\parallelexecution\Res1 ディレクトリに次の結果ファイルが保存されます。

  • GUITest_Demo_[1]
  • GUITest_Demo_[2]

parallelrun_results.html ファイルに、並列実行されたすべてのテスト実行の結果が表示されます。ブラウザのタブのレポート名は、「My Report Name」です。

表の最初の行は、ParallelRunner コマンドで定義されたルールを示します。それ以降の行は、結果とテスト中に使用された実際の環境を示します。

ヒント: 各テスト実行で、HTML レポートアイコンをクリックすると、個別の実行結果が開きます。これは、UFT One が HTML の実行結果を生成するように設定されている場合にのみサポートされます。

例:

注:レポートでは、ブラウザ名は大文字と小文字を区別して比較され、ブラウザ名ごとに個別のカラムが表示されます。そのため、IE と ie に対して別々のカラムが表示されます。

先頭に戻る

ParallelRunner ポートの変更

ParallelRunner では、<UFT One インストール・フォルダ>/bin ディレクトリにある parallel.ini ファイルで設定されたポートが使用されます。標準設定のポートは 50051 です。

そのファイルで設定されているポートがすでに別の場所で使用されている場合は、次のいずれかの手順を実行して変更します。

  • <UFT One インストール・フォルダ>/bin/parallel.ini ファイルを編集用に開き、設定されているポート番号を変更します。

  • このファイルの編集に関してアクセス許可の問題がある場合は、%ProgramData%\UFT ディレクトリに parallel.custom.ini という名前の新しいファイルを作成します。

    次のコードを追加します。

    [Mediator]
    Port=<ポート番号>

    parallel.custom.ini ファイルの設定は、parallel.ini ファイルの設定よりも優先されます。

先頭に戻る

その他の参照項目: