RanoreXPathの基本構造
本記事は、Ranorex の基本操作を理解されている方向けの内容となります。
※Ranorex ハンズオンセミナーを受講することで、基本操作について学習いただけます。
・Ranorex ハンズオンセミナー(無料)
http://ranorex.techmatrix.jp/handson-details/
RanoreXPath とは?
Ranorex では、テスト対象のアプリケーション内にあるボタンや入力フォームなどのUI要素を認識するための情報として、RanoreXPath というパス情報を使用します。
RanoreXPathは、アプリケーション内部で保持している、システム情報で構成されています。
Webアプリケーションでは、DOM情報が使用され、デスクトップアプリケーションやモバイルアプリケーション(ネイティブアプリケーション)では、アプリケーション内のコントロールや、プロパティ情報が使用されます。
たとえば、デスクトップアプリケーションの場合には、Form要素やButton要素といったアプリケーションが持つ内部情報を基に、RanoreXPathが生成されます。
Webアプリケーションの場合には、Dom要素やSpan要素といったテスト対象アプリケーションの内部情報(HTML内のタグ情報)を基に、RanoreXPathが生成されます。
RanoreXPath の具体例
デスクトップアプリケーションのオブジェクトを一例とし、RanoreXPath の基本構造について紹介します。
今回は、開発元が提供している RxDemoApp.exe を使用します。
本アプリケーションは、以下のURLからダウンロードできます。
https://www.ranorex.com/ja/help/latest/ranorex-studio-fundamentals/ranorex-recorder/before-you-start-recording/
RxDemoAppのIntroductionタブ内には、Submitボタンが存在します。
Submitボタンに対するRanoreXPathを確認すると、以下のパス情報となります。
/form[@controlname=’RxMainFrame’]/?/?/tabpage[@controlname=’RxTabIntroduction’]/button[@controlname=’btnSubmitUserName’]
上記のRanoreXPathでは、form要素 / tabpage要素 / button要素が持つ情報が使用されています。
また、RanoreXPathの中では、各要素が持つ属性と、対象の属性が持つ値(属性値)が使用されます。たとえば、button要素の場合には、controlname属性(属性値:btnSubmitUserName)を使用しています。
下図では、SubmitボタンのRanoreXPathで使用されている form要素 / tabpage要素 / button要素 が認識している箇所を示しています。
RanoreXPathでは、1つのオブジェクトを認識するために、複数の要素および属性を組み合わせて生成されています。
また、前述したように、RanoreXPathとは、テスト対象アプリケーションが持つコントロールやプロパティ情報を基に生成されるため、SubmitボタンのRanoreXPath(たとえば、form要素のcontrolname属性:RxMainFrame)は、RxDemoAppが持つ内部情報となります。
RanoreXPathの生成条件
RanoreXPathは、2つの条件にしたがってRanoreXPathを生成します。
速度と堅牢性のスライダー
RanoreXPathは、速度と堅牢性の2つの軸を基に、RanoreXPathが生成されています。デフォルトの設定では、速度と堅牢性 両方を考慮して生成されています。
RanoreXPath の生成方法を用途によって変更したい場合、速度と堅牢性のスライダーを使用することで、RanoreXPathの生成方法を変更することができます。
設定方法
- Ranorex Studio を起動します。
- メニューバー から 設定(=)ボタンをクリックします。
- 詳細 タブを開きます。
上記手順により、RanoreXPath の設定 内に 速度/堅牢性スライダー が表示されます。
速度と堅牢性のスライダーについては、ユーザーガイド の 詳細設定- RanoreXPathの設定 をご参照ください。
RanoreXPathの特徴
速度と堅牢性スライダーを変更した場合に生成されるRanoreXPathの特徴について、RanoreXPathの具体例 でも使用した、RxDemoApp内のSubmitボタンを例にご紹介します。
■バランス型(デフォルト設定)
デフォルトの設定では、速度と堅牢性の割合は50パーセントずつとなります。
この場合、必要に応じて要素が省略された上で、バランスのとれたRanoreXPathが生成されます。
・SubmitボタンのRanoreXPath(デフォルト設定):
/form[@controlname=’RxMainFrame’]/?/?/tabpage[@controlname=’RxTabIntroduction’]/button[@controlname=’btnSubmitUserName’]
デフォルト設定では、いくつかの階層の要素がワイルドカード”?”により省略されていますが、form要素 / tabpage要素 / button要素が使用されており、バランスのとれたRanoreXPathであることを確認できます。
■速度重視型
スライダーを左側に移動させた場合、速度が重視されます。
この場合、各階層の要素は省略されず、多くの要素が含まれたRanoreXPathが生成されます。
RanoreXPathの中に多くの情報が含まれることで、オブジェクトの検索速度が向上します。
・SubmitボタンのRanoreXPath(速度に重点を置いた場合):
/form[@controlname=’RxMainFrame’]/tabpagelist[@controlname=’RxTabcontrol’]/tabpage[@controlname=’RxTabIntroduction’]/button[@controlname=’btnSubmitUserName’]
速度に重点を置いた場合には、すべての階層の要素が使用されていることを確認できます。
■堅牢性重視型
スライダーを右側に移動させた場合、堅牢性が重視されます。
この場合、すべての要素を使用せず、対象のオブジェクトを認識できる最低限の要素のみを使用し、RanoreXPathが生成されます。
RanoreXPathの中で使用される要素は最小限となるため、汎用性が高く、テスト対象アプリの見た目や内部構造の変更が発生したとしても、現状のRanoreXPathで認識できる可能性が高くなります。
・SubmitボタンのRanoreXPath(堅牢性に重点を置いた場合):
/form[@controlname=’RxMainFrame’]//button[@controlname=’btnSubmitUserName’]
堅牢性に重点を置いた場合には、多くの階層の要素が省略され、form要素とbutton要素のみが使用されていることを確認できます。
速度と堅牢性のスライダーを使用することにより、RanoreXPathの生成方法を変更できます。
重み付けルール
RanoreXPathの生成において、どのような属性を使用するかの設定は 重み付けルール機能で管理されています。重み付けルールには、各属性に対する重み付けが設定されており、重み付け値が高い属性が優先的に使用され、RanoreXPathが生成されます。
そのため、たとえばテスト対象アプリケーションの中で、優先的に使用したい属性が存在する場合には、新たに独自のルールを追加し、対象の属性の重み付けを高くすることで、対象の属性が使用されたRanoreXPathを自動的に生成することができます。
重み付けルールの詳細は、以下のBlog記事をご参照ください。
・自動テストと動的ID
http://ranorex.techmatrix.jp/blog/2016/06/20/automated-testing-and-dynamic-ids/
関連記事のご紹介
RanoreXPathに関しては、以下のBlog記事でもご紹介しておりますので、ぜひご一読ください。
・RanoreXPath – コツと小技
http://ranorex.techmatrix.jp/blog/2016/09/30/ranorexpath-tips-and-tricks/
・Ranorex v9.5の新機能(Self-Healing機能)
http://ranorex.techmatrix.jp/blog/2021/08/20/v9-5_self-healing/
まとめ
本記事では、RanoreXPathの基本構造についてご紹介しました。
RanoreXPathの構造を理解することで、テスト対象のアプリケーションに合ったRanoreXPathを生成し、より汎用的でメンテナンス性の高いテストシナリオを作成することができます。
今回は、RanoreXPathの基本構造についてご紹介しましたが、弊社ではRanoreXPathに特化したトレーニングとなる 応用コース(RanoreXPath) をご用意しております。
本トレーニングでは、より詳しいRanoreXPathの構造を学ぶことができます。ご興味のある方は、ぜひ こちら からお申込みください。