FAQ – Ranorex 機能

テスト作成

オブジェクトに対して、テスト実行時のマウスクリック位置が座標で記録されるが、常に真ん中をクリックするよう事前に設定できますか?
Ranorexの「設定」メニューにある、「レコーダーの初期設定」タブにおいて、「レコーディング」-「レコーディング時の座標モード」を “None” に設定することで対応できます。
テスト実行時に、任意のタイミングでテスト対象アプリケーションの画面をキャプチャできますか?

画面キャプチャ用のアクション(Capture Screenshot)を使用することで対応できます。

  1. レコーディングモジュールを開きます。
  2. リポジトリアイテムから、対象オブジェクトをアクションテーブルの画面キャプチャを行いたい箇所にドラッグアンドドロップします。(※ アプリケーションの画面全体をキャプチャしたい場合は、最上位のフォルダ(アプリケーションフォルダ)を指定します。
  3. 表示されるアクションのメニュー一覧から、「スクリーンショットのキャプチャ」を選択します。
テスト実行時にアクションが失敗しても処理を継続するにはどうしたら良いですか? たとえば、バリデーション(Validation)のアクションなどで、検証に失敗した場合でも、テストを継続させたい場合など。

以下の方法で対応可能です。

  • レコーディングモジュールのアクション毎のエラー :対象のアクションを右クリックし、ショートカットメニューから「失敗時に処理を続行」を選択します。
  • テストケース毎のエラー:対象のテストケースを右クリックし、ショートカットメニューの「エラー処理」から以下を選択します。
      • 次の繰り返しに移動して実行:次のテストに移行してテストを続行します。(データ駆動などにより、複数回テストを実行する場合に、すべてのテストを実行します)
      • 次のテストケースに移動して実行:対象のテストケースのテストを終了し、次のテストケースのテストを実行します。
      • 次の親テストケースに移動して実行:対象のテストケースのテストを終了し、次の親のフォルダーにあるテストケースのテストを実行します。同じ階層にあるテストケースはスキップされます。
      • 停止:テストを終了します。
バリデーションとして、テスト対象のアプリケーションの画面に表示される、文字の表示切れを検証できますか?

文字の表示切れについては、属性値としてのバリデーションを行うことはできません。

画像比較(期待値とする表示画像とのCompareImage)によるバリデーションまたは、テスト実行時に取得したスクリーンショットを目視でチェックする方法で対応いただく形になります。

イメージバリデーションの類似度の判定方法について教えてください。

対象の画像のすべてのピクセルの対して、RGB値を比較します。
類似度(Similality)は、各ピクセル値の平均二乗誤差の和で計算されます。

例えば、10×10 サイズで、ただ一つのピクセルを除き、他のすべてのピクセル値が同じ2つの画像を比較する場合を考えます。

この異なるピクセルが、画像AではRGB(255,255,255)、画像BではRGB(0,0,0)の場合、この2つの画像の類似度(Similality)は「99%」となります。

この異なるピクセルが、画像AではRGB(128,128,128)、画像BではRGB(0,0,0)の場合、この2つの画像の類似度(Similality)は「99.75%」となります。

1つのテストケース/スマートフォルダーで、複数データソースを使用できますか?

いいえ、できません。
1つのテストスイートに、複数データソースを「登録」することはできますが、1つのテストケース/スマートフォルダーには、1つのデータソースのみが使用できます。

複数データソースを使用したい場合は、テストケース/スマートフォルダーを分割する必要があります。
また、バインドするデータソースを変数化などにより動的に指定することはできません。
他の方法として、データソース機能を使用せず、ユーザーコード(C#、VB.NETによるコーディング)で、一連のテストシナリオとデータ処理を記述する方法があります。

データソースのテストデータ複数行ある場合、1行目のテストでエラーが発生すると後続(エラーが発生した以降のテストデータ)はテストされますか?

データソースを使用しているテストケース/スマートフォルダーのエラー処理設定に依存します。
テストケース/スマートフォルダーを右クリックし、ショートカットメニューから「次の繰り返しに移動して実行」を選択することにより、次のデータを使用してテストが継続されます。

非表示部分も含めた全画面でのイメージバリデーションを検証できますか?

いいえ、できません。
イメージバリデーションでは、表示されている範囲のみが検証の対象となります。

KeySequenceアクションを使用して半角カタカナを入力できますか?

はい、可能です。

以下の対応を行うことで対応できます。

KeySequenceアクションは、キーボードにマッピングしたキーコードをシミュレートします。そのため、通常、半角カタカナを入力しようとすると、対応するキーボードの英数字が入力されます。

対応方法として、ソースコード内でKeyboard.CharacterMappingEnabled=falseを設定することにより、キーボードにマッピングしたキーコードが送られなくなり、半角カタカナの入力が可能となります。また、他の対応方法として、KeySequenceアクションの代わりにSetValueアクションを利用することも可能です。

Keyboard.CharacterMappingEnabled=falseを使用した対応方法については、以下の手順で設定を行ってください。

  1. Ranorex Studoにて、「プロジェクト」ビューからProgram.csファイルを開きます。
  2. Mainメソッド内に、Keyboard.CharacterMappingEnabled=falseのコードを記述します。

コード記述例(Ranorex v8.3.1のProgram.csファイル):
public static int Main(string[] args)
{
// Uncomment the following 2 lines if you want to automate Windows apps
// by starting the test executable directly
// if (Util.IsRestartRequiredForWinAppAccess)
// return Util.RestartWithUiAccess();

Keyboard.CharacterMappingEnabled = false;

3. 対象のKeySequenceアクションにて、入力したい半角カタカナの文字列を指定します。

※ Program.csのソースファイルに記述することでテストの実行開始時に、この設定が有効となります。また、特定のレコーディングモジュールだけでこの設定を有効にしたい場合は、ユーザコード(User Code)アクションを使用ください。

実行したアクションの結果を条件に、次に実行するアクションを分岐することができますか?

アクションテーブルでの条件分岐による編集はできませんが、ユーザーコードを使用することで対応できます。なお、Ranorex バージョン7以降では、テストケース/スマートフォルダー単位での条件分岐による処理が可能になりました。

テストケース/スマートフォルダー単位での条件分岐については、Ranorex Blogの記事「分岐条件をご参照ください。

イメージバリデーションにおいて、PDF文書の比較を行うことはできますか?

PDFのビューアで表示された画面全体を1つのオブジェクトとして認識されるため、画面内の個々の文書や画像を比較することができません。

方法としては、外部ツールを利用することで対応できる可能性があります。
例として、DiffPDFというツールは、文書内、文書の見た目を比較して差分を表示します。
ツール内に何カ所の差異が検出されたかを表示する領域があるため、これをRanorexの検証対象とすることで、差分有無を確認することができる可能性がございます。

データソースを使用し、バリデーションのnullチェックを行うことはできますか?

Excelファイルを使用した場合はnullを扱うことができないため、ユーザーコードでの対応が必要となります。

たとえば、バリデーションアクションをユーザコードに自動変換した場合、以下の様に修正します。
データソースで使用するExcelファイルの該当セルで「(null)」と入力しておくことで、これをnullに変換(それ以外は元の値をそのまま使用)してバリデーションを行います。

修正前のコード:
Validate.Attribute(repo.Form.TextInfo, “Text”, var);

修正後のコード:
String tmp = var.Equals(“(null)”) ? null ? var;
Validate.Attribute(repo.Form.TextInfo, “Text”, tmp);

イメージバリデーションにおいて、比較画像の任意の領域を対象外にするといった指定ができますか?

Ranorex v9.3以降では可能です。※v9.3で画像比較のマスク機能が追加されました。

マスク機能の設定方法については、Ranorex Blogの記事「Ranorex v9.3の新機能(イメージバリデーション)」をご参照ください。

イメージバリデーションにおいて、類似度を指定することはできますか?

はい、可能です。

バリデーションアクションのCompareImageにて、プロパティの”Image Based”-“Similarity”から指定することができます。

0.0 ~ 1.0の範囲で指定でき、1.0 = 100%(完全一致)になります。

イメージバリデーションにおいて、テスト結果レポートに表示されるDifference imagesの2つの画像について教えてください。

左の画像(白黒画像)

2値表記で両方の画像の違いを示しています。黒は、比較した画像がその領域でまったく同じであることを意味します。白いピクセルは、比較した画像が異なることを示します。

右の画像

比較した画像間の量的な違いを視覚化したものです。 色は、2つのイメージのカラー値を減算し、その差をグレーイメージに適用することによって計算されます。 比較した画像の色の差が大きいほど、差のある画像は色が濃くなります。灰色の部分は差が無い部分になります。

イメージバリデーションについては、Ranorex Blogの記事「イメージ バリデーション機能の使用方法をご参照ください。

Windowsの拡張デスクトップ/ディスプレイ領域でもテストのレコーディングおよび、実行はできますか?

はい、可能です。
拡張ディスプレイ環境でレコーディングしたアプリケーションの操作は、操作対象のウィンドウが主ディスプレイ、副ディスプレイのいずれの領域にあっても、正しく再生することができます。
また、拡張領域も含めて単一のディスプレイ領域として扱うことができます。

「The pointer cannot be moved to point ‘{X=n,Y=n}’ since it is outside of the visible desktop.」エラーが発生する場合

このエラーは、拡張ディスプレイを無効にした状態で再生を行うと発生します。
拡張ディスプレイ領域で操作をレコーディングし、再生時に表示を複製モードにしたり、外部ディスプレイを取り外した場合など。
Ranorexが単一のディスプレイと認識してレコーディングした領域が、実行時に無効(存在しない)ために発生するエラーとなります。
そのため、レコーディング時と同じディスプレイ環境でテストを実行する必要があります。

イメージバリデーションの画像領域を矩形以外で指定できますか?

いいえ、できません。
矩形のみの対応となります。

RanoreXPathの属性値において、”&(amp)nbsp;”にマッチさせるためにはどうしたら良いですか?

正規表現において、”¥s” を使用することで、スペースおよび&nbspにマッチさせることができます。

例:2,000 円
上記のInnerText(桁区切りされた数値)に正規表現を使用してマッチさせる場合、
font[@innertext~’¥d{1,3}(,¥d{3})*¥b¥s円’] とすることで対応いただけます。
金額部分を変数(例:$price)にした場合は、font[@innertext~$price+’¥s円’] となります。

補足情報として、外部データソースのデータ値に “ ” に相当するスペースを入力されたい場合は、
IMEパッドを用いて、”U+00A0″文字を選択することで対応いただけます。

数式で算出されているExcelデータでも、データバインディングすることはできますか?

はい、可能です。

式の演算結果の値がデータとして変数に渡されます。
なお、Excel上での書式設定は考慮されませんのでご留意ください。
※日付型の場合には、「08/15/2019 15:00:00」といったデータが渡されます。

変数名に日本語を使用することはできますか?

リポジトリ変数の名前には日本語を使用することができませんので、基本的には半角英数字をご使用ください。

テスト実行

テスト実行時に画面(右下)に表示される進捗ダイアログ(プログレスダイアログ)を表示させないようにすることはできますか?

はい、可能です。

以下の手順で設定を行ってください。

  1. Ranorex Studioにて、任意のプロジェクトを開きます。
  2. ツールバーの「テストスイートの表示」などからテストスイートを表示します。
  3. ツリーでテストスイートを選択、右クリックメニューから「プロパティ」を選択します。
  4. 「全般」タブの下にある「プログレス ダイアログの表示」のチェックボックスをオフにします。

※ 上記設定は、テストスイートからテストを実行した場合のみ反映されます。個々のテストケースやレコーディングモジュールからテストを実行した場合には、プログレスダイアログが表示されます。

Ranroexのリモートテスト機能(Ranorex Agent)を利用したい場合は、テスト環境にRanorex Agentのみをインストールすれば良いですか?

Ranorex Agentだけでなく、Ranorex自体のインストールも必要です。

テスト対象となるアプリケーションによって、最低限必要となるコンポーネントは以下のようになっています。

  • Webアプリケーション
    • Ranorex Agent
    • Ranorex Main Components
    • Ranorex Internet Explorer Add-on / Ranorex Firefox Add-on / Ranorex Chrome Add-on

※ WebブラウザーのAdd-onは、使用するWebブラウザーのみインストールしてください。

  • Windows(デスクトップ)アプリ
    • Ranorex Agent
    • Ranorex Main Components

 

  •  モバイルアプリ(iOS/Android)
    • Ranorex Agent
    • Ranorex Main Components
    • Ranorex Studio
Runtimeライセンスを利用してテスト実行を行いたい場合、Ranorexのインストールは必要ですか?

基本的にはRanorexのインストールが推奨されますが、必須ではありません。

Ranorexのインストールを行えないテスト環境などにおいては、テストの実行に必要なRanorexのライブラリ、アセンブリ、ライセンス情報を任意のフォルダーに配置することでテストを実行することができます。
詳細については、Ranorexのユーザガイドの「手動でのリモート実行」をご参照ください。

なお、Ranorexバージョン6.x以降においては、リモートテスト機能(Ranorex Agent)を使用することを推奨しています。
詳細については、Ranorexのユーザーガイドの「Ranorex Agent」をご参照ください。

テストの実行回数を指定することはできますか?

以下の方法で対応可能です。

  • テストケースのプロパティから”Iteration Count”を指定(※Ranorexバージョン7以降で対応)
  • レコーディングモジュールの設定(SETTINGS)で、「現在のレコーディング」タブにある、「リプレイの繰り返し回数」を指定
  • データソースを利用(データ行数分、繰り返し実行)
  • ユーザーコードでループ処理のコードを記述
テストの実行速度を速めるための設定などはありますか?

テストの実行速度については、以下2つの方法でレコーディングモジュールごとの速度変更を行うことが可能です。

  • ターボモード:レコーディングモジュールの各アクションで指定されているディレイ(プロパティのDuration)をスキップし、高速に動作させます。
    Delayや、Wait Forアクションで設定したディレイはスキップされません。
  • 検索処理のタイムアウト係数:レコーディングモジュールの各アクション(マウスカーソルの移動など)に対する実行速度を変更します。値は係数で指定し、値を増やすことで速度が上がり、減らすことで速度が下がります。アクションで指定されているディレイには適用されないため、アクションが実行される間隔は変わりません。

以下の手順で設定を行ってください。

  1. Ranorex Studioにて、対象のレコーディングモジュールを開きます。
  2. レコーディングモジュール画面の「SETTING」をクリックします。
  3. 表示される画面にて、「現在のレコーディング」タブを開きます。
  4. ターボモードを有効とする場合は、「リプレイとコード生成でターボモードを有効にする」にチェックを入れます。これにより、ターボモードが有効となり、実行速度が速まります。また、検索処理のタイムアウト係数変更し、速度を速めるには、「検索処理のタイムアウト係数」の値を小さくします。

詳細については、以下のRanorex ユーザガイドをご参照ください。

Ranorexをインストールせずにテストを実行することができますか?

はい、可能です。
テスト実行に必要なライブラリ、アセンブリ、ライセンス情報を、テスト実行環境の任意のフォルダーに配置することでテスト実行を行うことができます。

手順については、以下のRanorexユーザガイド「手動でのリモート実行をご参照ください。

テスト実行時にエラーが発生しても、テストを続行させることができますか?

はい、可能です。
本FAQの「Ranorex 機能」-「テスト作成」にある、以下の項目をご参照ください。

テスト実行時にアクションが失敗しても処理を継続するにはどうしたら良いですか?
たとえば、バリデーション(Validation)のアクションなどで、検証に失敗した場合でも、テストを継続させたい場合など。

コマンドラインインタフェースはありますか?

はい、ございます。
テスト用の実行モジュールが(*.exe)が、Ranoexのソリューションのフォルダ内({ソリューション フォルダ名}\{プロジェクト フォルダ名}\bin\Debug)に生成されます。

詳細については、以下のRanorexユーザーガイド「コマンドライン実行をご参照ください

Ranorex Agentによるリモートテストにおいて、デプロイした実行ファイルや生成されるレポートは何処に生成されますか?

テスト実行環境(Ranorex Agent側)の「C:¥Users¥<ユーザー名>¥AppData¥Local¥Temp¥Ranorex」に生成されます。

また、ホスト側では、[レポートを開く]を実行した時点で「C:¥Users¥<ユーザー名>¥AppData¥Local¥Temp¥RanorexDownloads」にレポートが生成されます。

Ranorex Studioのエージェントの設定で、Ranorex Agentが認識されません。

8081ポートが既に使われている可能性があります。ポートが重複してもエラーは表示されません。McAfeeのセキュリティソフトを使用している場合、 Framework Serviceや、McAfee Agent Common Serviceのプロセスでポートが使用されているため、これらのプロセスを停止するか、もしくはポートを変更する必要があります。

参考

コマンドプロンプトで以下のコマンドを実行すると、ポートを専有しているプロセスを確認することができます。コマンド結果にて、画面右側にプロセスIDが表示されるため、タスクマネージャーでどのプロセスが使用されているかを確認することができます。

netstat -ano¦find “8081”

テスト実行マシンの性能により、テスト作成マシンでの記録時とアプリケーションの 応答時間が異なるため、テストが失敗してしまいます。

“Delay”アクションや”WaitFor”アクションを使用することで、対応いただけます。

“Delay”アクションは、固定値として次のアクションまで待つ時間を設定することができます。
“WaitFor”アクションは、例えば、アプリケーション画面に、対象のオブジェクトが表示/非表示されたら、次のアクションを実行するといった条件を設定することができます。

レポート

Ranorexがインストールされていないマシン環境でも、テスト結果レポートを閲覧できるファイル形式で出力できますか?

HTMLまたはPDF形式にて出力できます。

HTML形式によるレポート出力

Ranorexで生成されるレポートのファイル形式(*.rxlog)の実体はHTMLおよびXMLです。そのため、出力レポートの拡張子を変更することで、Webブラウザーで参照できるようになります。

    1. Ranorex Studioにて、テストスイートを表示します。
    2. テストスイートを右クリックし、ショートカットメニューから「プロパティ」を選択します。
    3. 「レポート」タブにある「レポートファイル」にて、出力するレポートのファイル形式を”.html”に変更します。

PDF形式によるレポート出力

標準のレポートをPDF形式に変換する方法が提供されています。詳細は、Ranorex Blogの以下の記事をご参照ください。

エラーが発生した際、画面ショットが取得されレポートされるが、レポートさせない方法はありますか?

以下の方法で対応可能です。

  1. テストスイートを右クリックし、ショートカットメニューから「プロパティ」を選択します。
  2. 表示される画面にて、「レポート」タブを表示します。
  3. 「スクリーンショット」-「撮影モード」のプルダウンメニューから「Off」を選択します。
テスト実行毎にレポートの出力ディレクトリを変更できますか?

ディレクトリ名および、レポートファイル名には、次のプレースホルダーを使用できます。そのため「%S_%Y%M%D_%T」の様な書式を指定することで対応できます。

  • %T 時間
  • %D 日付
  • %M 月
  • %Y 年
  • %L 実行レベル
  • %C 実行設定名
  • %H ホスト名
  • %S テストスイート名
テスト結果レポートをPDF形式で出力できますか?
画像比較の結果をレポートに表示できますか?

はい、可能です。

以下の手順で設定を行ってください。

  1. レコーディングモジュールを開きます。
  2. 「Validate」-「CompareImage」アクションのプロパティを開きます。(アクションを右クリックし、ショートカットメニューから「プロパティ」を選択します)
  3. プロパティ画面にて、「Report Difference Images」のプルダウンメニューから、適切なメニューを選択します。 以下のメニューを選択することができます。
    • Never:何もしません。(デフォルト設定)
    • OnFail:失敗時にレポートします。
    • OnSuccess:成功時にレポートします。
    • Always:失敗/成功時にレポートします。
スクリーンショットなどの、テスト結果として出力される画像ファイルの形式を変更できますか?

いいえ、できません。
ただし、スクリーンショットにおいては、ユーザコード(C#または、VB.NETによるコーディング)を使用することで対応できます。

ユーザコードによる対応については、Ranorexのテクニカルサポートもしくは、担当営業までお問い合わせください。

“Retry Count”を使用してテスト実行すると、失敗アクションが表示されません。 失敗アクションを表示する方法はありますか?

Ranorex オートメーションヘルパー機能で用意されている、コードモジュール(CollectErrorMessagesModule.cs)を使用することで、レポートに失敗アクションを表示することが可能となります。
コードモジュールは、テストスイート内に配置することで使用できます。

Ranorexオートメーションヘルパーの使用方法については、ユーザーガイドの「オートメーションヘルパーの追加と更新」をご参照ください。

全てのアクションに対してスクリーンショットを取得し、レポート上に保存することはできますか?

Ranorexのオプション機能としては、用意されておりませんが、”Program.cs”ファイルに直接、以下のユーザーコードを記載することで対応いただけます。

もしくは、以下のユーザーコードを設定したコードモジュールを用意し、[Setup]配下に配置することで対応いただけます。

[ユーザーコード]
TestReport.TracingScreenshotCountLocal = int.MaxValue;
ActivityStack.Instance.UpdateActivity += delegate { TestReport.SaveLocalScreenshotBuffer(); } ;

レポートに出力される変数に流し込まれた外部データをマスクすることはできますか?

はい、可能です。
データソースの管理画面にて、マスク対象のカラムを指定することで、対応できます。

マスク指定については、ユーザーガイドの「データソースの管理と割り当て」をご参照ください。