UIテスト自動化において、世の中にある多くのテストツールが、アプリのオブジェクトを特定するためにXPathを使用しており、アプリの内部情報(WebであればHTMLタグや属性など)を基にして、ロケーションパスによってオブジェクトを認識するためのXPathを生成しています。
アプリによっては、以下のような、メンテナンス性が低い、または正常に動作しないXPathが生成される場合があります。通常、このようなパスが生成された場合、パスの修正が必要となります。
- アプリの内部情報が動的であるため、アプリが実行されるたびにパスが変わる
- 特定のオブジェクトを一意のパスとして生成できない(1つのパスで複数オブジェクトが認識される)
- テストスクリプトの実行環境によってアプリの内部情報が変わる(OSやバージョンが異なるなど)
- パスの情報にインデックス番号が使用される(n番目の要素として認識される)
UIテスト自動化ツールのRanorexでは、XPathの生成において、パス内で使用される属性情報を重み付けルール機能で管理しています。この機能では、各属性に対して重み付けが設けられており、各属性に割り当てられている重み付けの値が高いほど優先的に使用されます。この値は、ユーザーが自由にルール設定できるため、上記のケースに対応したXPathを生成することができます。
たとえば、テスト自動化の学習用の練習サイトのHotel PlanisphereにあるログインのボタンをRanorexを使用してXPathを生成したものが以下のパスになります。
Aタグに設定されているhref属性の優先度を上げるようにルールを設定した後に、Ranorexを使用してXPathを再生成したパスが以下になります。
重み付けルールの設定方法
1.Ranorex Studioを起動し、メニューバーから設定(=)をクリックします。
3.表示される重み付けルールの編集画面にてルールを追加します。
ルール一覧には既存ルールが設定されており、追加をクリックすることで新規にルールを作成することができます。作成したルールは有効化または、無効化を選択することでルールの状態を有効/無効にすることができます。
・名前:ルール名を指定します。
・機能:重み付けを設定したい属性の機能名を指定します。
・属性:重み付けを設定したい属性名を指定します。
・重み付け:重み付けを設定したい属性が持つ重み付けの値を指定します。
機能名
機能名は、Ranorex Spyツールを使用することで確認できます。
Ranorex Spyツールで対象オブジェクト(要素)を選択したときに、*概要タブに表示される属性の青色の名前がその属性がカテゴライズされている機能名になります。
Ranorex Spyの使用方法
https://ranorex.techmatrix.jp/blog/2022/11/04/ranorex_spy/
アプリによって、生成されるXPathをユーザーが自由にカスタマイズすることができるため、事前にルールを設定しておくことでアプリの画面変更に強いパスが作れそうです。