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] テスト自動化で任意のページにある対象要素を探す

Last updated at Posted at 2024-06-27

Outline

検索、リスティングページで、探したい要素が任意のpageにあるとする。
任意というのは、テストの実行毎にことなるpageに表示されるという意味である。
この場合、テスト自動化では、固定ページの要素を見つけるという処理では、テストは成功するときもあれば、失敗するときもある。
このため、要素が見つかるまでページ送りを考えたくなる。

image.png

今回、この実装の考え方、実装に関して解説する

テスト対象

qbookの記事一覧から、一つの記事をさがしだし、クリックする
アクセスしたページに該当記事がなかったら、ページャーの”次”ボタンをクリックする
これを一定回数繰り返す(上限を設定するのは、数百ページとかある場合、もし記事が存在しない時に、数百ページのページング処理を繰り返すため、失敗するまでのテスト時間がかかってしまうからである。)

技術的な情報

robot frameworkの

  • FOR-END文でループする
  • Exist For Loop IF 文で条件を満たしたら(対象の要素が見つかったら)ループを抜ける
  • Run Keyword And Return Status 文で、条件文(要素が存在するか)の結果を取り出します。この時、Falseになってもテストは継続します
FOR  ${i}  IN RANGE  10
     ${IS_ELEMENT_EXISTANCE} =  Run Keyword And Return Status  XXXXX
     Exit For Loop IF ${IS_ELEMENT_EXISTANCE}
     yyyyy
END

T-DASH

カスタム動作

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

ACT-CAT-CUSTOM-f7057005-3f12-4487-a156-cf06ae8d61e3:
  action_category_name: Pager
  icon: ''
  color: '#e21628'
  custom_data:
    file_name: Pager
    pip_list: []
    library_list: []
  actions:
    ACT-CUSTOM-aadb1f56-1bbe-48f0-9bd6-dfba00166de5:
      action_name: 見つかるまで次のページをクリックする
      action_type: operation
      action_format: 「画面名」「要素名」が見つかるまで次のページをクリックする
      action_note: ''
      action_args:
      - screen
      - element
      action_def:
      - - FOR
        - ${i}
        - IN RANGE
        - '10'
      - - ''
        - ${IS_ELEMENT_EXISTANCE} =
        - Run Keyword And Return Status
        - Page Should Contain Element
        - ${location}
      - - ''
        - Exit For Loop IF
        - '''${IS_ELEMENT_EXISTANCE}''==''True'''
      - - ''
        - Click Element
        - xpath=//a[@class="pagination__link pagination__link--next minimalbox"]
      - - END
      - - Click Element
        - ${location}

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

image.png

4行目の10はページング処理の上限を定義します。
7行目のxpathはpagerのXPathです。developertoolなどでページ送りをする要素のXPathを取得してここに記載します。

image.png

テストケース

image.png

3行目が、記事一覧の1ページ目から、「負荷テストとは?」の記事を探す処理である。

image.png

テスト実行

実行して、詳細のレポートが下図である。
for loopの0~3回目では、「負荷テストとは?」の要素がみつからないため(false)pagerをクリックします
4回目では、「負荷テストとは?」の要素が見つかったため、For loopからexitします

image.png
image.png

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?