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?

[T-DASH] 変数を含むXPathの画面要素に対してテスト自動化する

Last updated at Posted at 2024-08-20

Outline

テスト自動化の操作・検証対象となる画面要素が、ほぼ同じ構成であるが、一部分だけ異なる場合がある。例えば、以下の図のように、複数のプランがあり、その任意のプランを選んでテスト(複数のデータバリエーションテスト)を行いたい場合が該当する。

image.png

この図では、左下のプレミアムプランの”このプランで予約”のボタンの(最適化した)XPathは以下のとおりである

//h5[text()="プレミアムプラン"]/../a[text()="このプランで予約"]

ただ、ほかのプランで予約するテストをしたい場合どうなるか?
以下のとおりである。

画面要素 XPath
お得な特典付プラン //h5[text()="お得な特典付プラン"]/../a[text()="このプランで予約"]
ディナー付きプラン //h5[text()="ディナー付きプラン"]/../a[text()="このプランで予約"]
お得なプラン //h5[text()="お得なプラン"]/../a[text()="このプランで予約"]

もし、これをひとつづつ画面要素として登録すると、画面要素の数が多くなり、保守が大変である。
また、テストケース側では、テストデータの都度画面要素を選びなおしになるため、こちらも保守が大変である。

これを解決させるには、以下のように画面要素に変数を含めることである。

画面要素 XPath
${planname} //h5[text()="${planname}"]/../a[text()="このプランで予約"]

こうすれば、変数${planname}のみをコントロールするだけで済む。

もちいるテスト自動化ツール

テスト対象

テスト自動化練習サイトを用いる。
Email : ichiro@example.com / Password : password でログイン後、宿泊予約をクリックした画面で、変数で指定したプランを予約する。

T-DASH

画面定義

画面キャプチャツールでは、変数を含んだ画面要素のXPathは取れません。
そのため、chrome developer toolを使い、かつ変数化できそうなところを探し出して、XPathを直接画面定義に記載する。

要素名
任意_このプランで予約 //h5[text()="${planname}"]/../a[text()="このプランで予約"]

image.png

カスタム動作

T-DASHの標準機能では、変数を新規に定義して値を設定する機能はありません。
そのため、変数を設定するカスタム動作を作成する

以下設定内容を reserve.yamlのファイル名で保存する

ACT-CAT-CUSTOM-792c1a17-5c76-489e-8155-05106db44f12:
  action_category_name: 予約
  icon: ''
  color: '#de5b64'
  custom_data:
    file_name: Reservation
    pip_list: []
    library_list: []
  actions:
    ACT-CUSTOM-028f3104-9d1e-4856-98a3-6a8781d804d2:
      action_name: plannameの変数を設定する
      action_type: operation
      action_format: 「設定値1」を変数plannameに設定する
      action_note: ''
      action_args:
      - value1
      action_def:
      - - Set Suite Variable
        - ${planname}
        - ${value1}

次に、作成された reserve.yamlをT-DASHの動作定義 -> カスタム動作 -> カスタム動作をインポート にてインポートし、実際にインポートされた設定内容を開く

このカスタム動作は、単純に設定値1の値を、変数${planname} 、画面定義で用いた変数を新規に定義して設定する。

image.png

テストケース

1行目で、カスタム動作「plannameの変数を設定する」を呼び出し、${planname}にプラン名「ディナー付きプラン」を設定する
5行目で、変数${planname}を含むXPathである、「任意_このプランで予約」をクリックする。

image.png

テスト実行

1行目で指定したプラン、「ディナー付きプラン」が選ばれて実行されたことが確認できる

image.png

同様にして、変数を「お得なプラン」に変更すれば、「お得なプラン」が選ばれることが確認できる

image.png

このようにして、同じ構造の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?