変更に強いRanoreXPathの設計方法
※本記事は、RanoreXPathに関する基礎知識をお持ちの方向けの内容となります。
※Ranorex ハンズオンセミナーを受講することで、RanoreXPathについて学習いただけます。
ブラウザー/Window OS/テスト対象アプリケーションのアップデートや、テスト対象アプリケーションの特性などにより、オブジェクト情報が意図せず変化しRanoreXPathの修正が必要となることで、メンテナンス工数が発生する場合があります。
本記事では、RanoreXPathの変化にともなうメンテナンス工数を抑えるための、RanoreXPathの設計方法について説明します。
本記事の最後に、RanoreXPathの設計方法に関する詳細資料を公開しておりますので、ダウンロードのうえ、是非ご活用ください。
目次
- RanoreXPathに影響を与える主な要因
- 変更に強いRanoreXPath設計のポイント
- メンテナンス工数を抑えるための方法
- RanoreXPath設計の進め方と推奨設定
- 資料ダウンロードのご案内
RanoreXPathに影響を与える主な要因
RanoreXPathは主に以下の要因で変化します。これらの要因をあらかじめ理解し、堅牢なRanoreXPathを設計することが重要です。
- ブラウザーのアップデート
- Windows OSのアップデート
- テスト対象アプリケーションのアップデート
- 動的な属性の使用
変更に強いRanoreXPath設計のポイント
RanoreXPathのメンテナンス工数を抑えるためには、さまざまな変更要因の影響を受けにくいパス設計をおこなうことが重要です。その対応として、以下の方法があります。
1. 変更されにくい属性を使用する
テスト対象アプリケーションのユーザーインターフェース(UI)は操作や開発によって変化しやすく、それにともない、RanoreXPath内の属性情報も変化する場合があります。RanoreXPath内の属性情報に、UI変化の影響を受けにくいものを使用することで、RanoreXPathの耐久性を向上させ、テストの安定性とメンテナンス効率の改善が期待されます。
例として、以下のようなRanoreXPathにおいて、text属性に動的な値(img_w3bnz2p1t58q2xi0)が使用されている場合、変更されにくい他の属性を使用することで、RanoreXPathを堅牢にすることができます。
- 変更前のRanoreXPath例:
/form[@controlname=’RxMainFrame’]/?/?/tabpage[@controlname=’RxTabDynamic’]/text[@text=’img_w3bnz2p1t58q2xi0′]
対象のリポジトリアイテムのパスエディター画面のツリー要素から、対象の要素(text要素)を選択し、属性の編集画面のtext属性のチェックを無効にし、controlname属性などの他の属性を有効にします。

- 変更後のRanoreXPath例:
/form[@controlname=’RxMainFrame’]/?/?/tabpage[@controlname=’RxTabDynamic’]/text[@controlname=’txtBoxID’]
2. 属性値を正規表現で指定する
自動生成されたRanoreXPathの中に、特定の形式の動的な属性値が存在する場合は、その形式に合わせて属性値を正規表現で指定することが可能です。属性値が変わった場合も、設定した正規表現に一致することにより、対象の要素を認識することができます。
例として、以下のようなRanoreXPathにおいて、text属性に特定の形式で変化する値(img_w3bnz2p1t58q2xi0)が使用されている場合、正規表現で指定することで、RanoreXPathを堅牢にすることができます。
- 変更前のRanoreXPath例:
/form[@controlname=’RxMainFrame’]/?/?/tabpage[@controlname=’RxTabDynamic’]/text[@text=’img_w3bnz2p1t58q2xi0′]
対象のリポジトリアイテムのパスエディター画面のツリーの要素から、対象の要素(text要素)を選択し、属性の編集画面のtext属性の演算子を、~(Regex Match)に変更し、属性値を指定する入力フォームに正規表現を使用した値を(img_.*)を設定します。

- 変更後のRanoreXPath例:
/form[@controlname=’RxMainFrame’]/?/?/tabpage[@controlname=’RxTabDynamic’]/text[@text=’img_.*’]
3. パス構造を簡略化する
アプリケーションのアップデートにより画面に変更が加えられることで、ツリー構造が変わり、既存のRanoreXPathでオブジェクトを認識できなくなる場合があります。このような場合、ワイルドカード演算子を使用してパス構造を簡略化することで、パス構造の変更に柔軟に対応できます。
例として、以下のようなRanoreXPathにおいて、Tabpage内の画面構成が今後変更される可能性がある場合は、//(any descendants)を使用することで、画面変更の影響を受けないRanoreXPathにすることができます。
- アップデート前のアプリケーションとツリー構造例:

- 変更前のRanoreXPath例:
/form[@title=’〇〇アプリ’]/tabpage[@controlname=’HOME’]/button[@controltext=’ログイン’]
- アップデート後のアプリケーションとツリー構造例:

- 変更後のRanoreXPath例:
/form[@title=’〇〇アプリ’]/tabpage[@controlname=’HOME’]//button[@controltext=’ログイン’]
メンテナンス工数を抑えるための方法
RanoreXPathの自動生成に関する設定として、「速度と堅牢性の設定」と「重み付けルールの設定」があります。これらの設定は、RanoreXPathを生成する前に、テスト対象アプリケーションの特性や運用方針に応じてあらかじめ設定しておくことで、変更に強いRanoreXPathを生成しやすくなり、後から修正する工数を抑えることができます。
1. 速度と堅牢性の設定
テスト実行時におけるオブジェクトの認識の速さや、アプリケーションの画面の変更にともなうオブジェクトの認識の強さは、RanoreXPathの構造に大きく依存しますが、RanoreXPathは「速度」と「堅牢性(壊れにくさ)」の2つの軸を基にバランスを見て生成されます。
どちらの設定に重点を置くかは、テスト対象アプリケーションの内部構造や改修頻度に合わせて調整する必要がありますが、テスト実行時にオブジェクト認識の速さに影響しない場合は、将来発生する可能性のあるメンテナンス工数を抑えるために、原則として「堅牢性」重視の設定をおこなうことを推奨します。
2. 重み付けルールの設定
Ranorexで自動生成されたRanoreXPathに使用される属性には、動的な情報が含まれる場合がありますが、テスト実行の度に属性値が変わることでオブジェクトが検出できずに失敗する場合があります。そのため、対象のオブジェクトのRanoreXPathを修正し、他のユニークな属性に変更するなどの修正が必要となります。
RanoreXPathの生成時に、どの属性を使用するかは 「重み付けルール」の設定で管理されます。重み付けルールでは、各属性に数値が設定されており、数値が高い属性から優先的に使用されます。
※各設定方法の詳細は、以下Blog記事の「RanoreXPathの生成条件」または本記事でダウンロード可能な「RanoreXPathの設計方法に関する詳細資料」をご参照ください。
RanoreXPath設計の進め方と推奨設定
RanoreXPathのメンテナンス工数を抑えるためには、変更に強いパス構造を理解したうえで、目的や状態に応じて適切な設計方法を選択することが重要です。以下では、RanoreXPath設計における基本的な進め方と、代表的なケースごとに推奨される設定について説明します。
1. 基本的な進め方
Step1. 変更に強いRanoreXPath構造を理解する
- RanoreXPathに影響を与える主な要因を理解する
- 変更に強い(メンテナンス工数を抑える)RanoreXPathの考え方を理解する
Step2. 変更に強いRanoreXPathを作成する
- 変更されにくい属性を使用する
- 属性値を正規表現で指定する
- パス構造を簡略化する
Step3. ケースに応じたRanoreXPathの生成設定をおこなう
- 速度と堅牢性の設定をおこなう
- 重み付けルールの設定をおこなう
2. ケース別の推奨設定
| ケース | 推奨される設定 |
| 一部のテスト対象オブジェクトのRanoreXPathに動的な属性が使用されている場合 | 変更されにくい属性をパスエディターから指定 |
| 属性値の一部が特定の形式で変化する場合 | 属性値を正規表現で指定 |
| 一部のオブジェクトの階層構造が変更された/今後変更される可能性のある場合 | パス構造の簡略化 |
| テスト対象アプリケーションのアップデートにより、内部構造に変更が発生する可能性がある場合 | 速度と堅牢性の設定(堅牢性重視型) |
| ブラウザーやWindows OSのアップデート後に、テスト対象オブジェクトの認識が安定しない場合 | 速度と堅牢性の設定(堅牢性重視型) |
| オブジェクト認識速度の向上を優先したい場合 | 速度と堅牢性の設定(速度重視型) |
| 複数のテスト対象オブジェクトのRanoreXPathに動的な属性が使用されている場合 | 重み付けルールの設定 |
| テスト対象アプリケーションの特徴に応じて、特定の属性を優先的に使用したい場合 | 特定の属性をパスエディターから指定 重み付けルールの設定 |
3. まとめ
メンテナンス工数を抑えるためには、アプリケーションの内部構造や生成されるRanoreXPathの特性を理解したうえで、どのような設定をおこなうかを検討することが重要です。
すべてのテストケースを作成した後にRanoreXPathの設定やパスの修正をしようとすると、本来修正しなくても良いパスも修正することになり、メンテナンス工数が掛かります。初期段階で適切な設定をおこなうことで、将来的にパスを修正する工数も軽減されます。
資料ダウンロードのご案内
本記事に関する、RanoreXPathの設計方法に関する詳細資料は、以下のリンクからダウンロード可能です。
