0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UIテスト自動化 メンテナンスコストを下げたい人のためのXPath作成

Last updated at Posted at 2025-03-28

UIテスト自動化において、世の中にある多くのテストツールが、アプリのオブジェクトを特定するためにXPathを使用しており、アプリの内部情報(WebであればHTMLタグや属性など)を基にして、ロケーションパスによってオブジェクトを認識するためのXPathを生成しています。

アプリによっては、以下のような、メンテナンス性が低い、または正常に動作しないXPathが生成される場合があります。通常、このようなパスが生成された場合、パスの修正が必要となります。

  • アプリの内部情報が動的であるため、アプリが実行されるたびにパスが変わる
  • 特定のオブジェクトを一意のパスとして生成できない(1つのパスで複数オブジェクトが認識される)
  • テストスクリプトの実行環境によってアプリの内部情報が変わる(OSやバージョンが異なるなど)
  • パスの情報にインデックス番号が使用される(n番目の要素として認識される)

UIテスト自動化ツールのRanorexでは、XPathの生成において、パス内で使用される属性情報を重み付けルール機能で管理しています。この機能では、各属性に対して重み付けが設けられており、各属性に割り当てられている重み付けの値が高いほど優先的に使用されます。この値は、ユーザーが自由にルール設定できるため、上記のケースに対応したXPathを生成することができます。

たとえば、テスト自動化の学習用の練習サイトのHotel PlanisphereにあるログインのボタンをRanorexを使用してXPathを生成したものが以下のパスになります。

 

Aタグに設定されているhref属性の優先度を上げるようにルールを設定した後に、Ranorexを使用してXPathを再生成したパスが以下になります。
 

重み付けルールの設定方法

1.Ranorex Studioを起動し、メニューバーから設定(=)をクリックします。
 

2.詳細タブを開き、重み付けルールの編集をクリックします。
 

3.表示される重み付けルールの編集画面にてルールを追加します。
 

ルール一覧には既存ルールが設定されており、追加をクリックすることで新規にルールを作成することができます。作成したルールは有効化または、無効化を選択することでルールの状態を有効/無効にすることができます。
 

新規ルールにて、必要な情報を設定してルールを作成します。
 

名前ルール名を指定します。
機能:重み付けを設定したい属性の機能名を指定します。
属性:重み付けを設定したい属性名を指定します。
重み付け:重み付けを設定したい属性が持つ重み付けの値を指定します。

機能名
機能名は、Ranorex Spyツールを使用することで確認できます。
Ranorex Spyツールで対象オブジェクト(要素)を選択したときに、*概要タブに表示される属性の青色の名前がその属性がカテゴライズされている機能名になります。

Ranorex Spyの使用方法
https://ranorex.techmatrix.jp/blog/2022/11/04/ranorex_spy/

重み付けの値
各続映に設定されている重み付けの値は、属性の一覧の表示をクリックすることで確認できます。数値が大きいほどXPathを生成する際に使用される優先度が高く、数値が小さいほど優先度が低くなります。



4.ルールを設定後、適用OKの順にクリックし、重み付けルールの編集画面を閉じます。
 

ルール条件
ルール条件を使用することで、属性の条件を細かく設定することもできます。条件は複数指定でき、すべての条件に一致するか、もしくはいずれか1つの条件に一致するかをマッチ条件で選択することができます。動的な値で値のフォーマットを正規表現で指定したい場合などに使用できます。




アプリによって、生成されるXPathをユーザーが自由にカスタマイズすることができるため、事前にルールを設定しておくことでアプリの画面変更に強いパスが作れそうです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?