0
0

[T-DASH] 条件を満たしたとき、テストケースを途中で終了し、次のテストケースに移す

Last updated at Posted at 2024-09-11

Outline

テストケースにおいて、ある一定条件を満たしたとき、そのテストケースを中断してそれ以降のテスト実行をパスしたい。ただし、後続するテストケースを実行させたい場合がある。

たとえば、商品購入のテストケースで、在庫の概念があるとする。

テストケース1

  1. 対象商品を検索する
  2. 商品が存在しない場合、以降実行を行わない <- 条件に応じて後続処理を判断
  3. 商品購入をする

テストケース2
テストケース3
 :

技術的な情報

robot framework のseleniumのkeywordsを用いる

要素があるかどうかのステータスを取得する

まず最初に、要素があるかどうかを検証し、あるばあいTrue、ないばあいFalseの値を取得する。
"Run Keyword And Return Status"と"Element Should Be Visible"の2つのkeywordsを用いる。

以下はlocatorが${location}の要素の存在有無をTrue/Falseで返すものである

${DOES_ELEMENT_EXIST} =	Run Keyword And Return Status	Element Should Be Visible	${location}

テストケースを途中で中断する

"Pass Execution If"のkeywordsを用いる。
先ほどの存在有無のステータスをチェックする条件文をいれて、この条件文が成立する場合、 'message'のログを残して、後続の処理を行わず日本テストケースを終了する。
条件を満たさない場合は、処理を継続する。

Pass Execution If	'${DOES_ELEMENT_EXIST}'=='True'	  'message'

T-DASHの手順

カスタム動作

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

ACT-CAT-CUSTOM-5c3fa408-54eb-48d4-80ca-0f50c7bc2766:
  action_category_name: TestContro
  icon: ''
  color: '#df1a9a'
  custom_data:
    file_name: TestControl
    pip_list: []
    library_list: []
  actions:
    ACT-CUSTOM-bd74caa0-ab0f-4663-8b81-37abf92ca53f:
      action_name: 要素が存在する場合、処理を中断して次のテストケースにPASSする
      action_type: operation
      action_format: 「画面名」「要素名」が存在する場合、処理を中断して次のテストケースにPASSする
      action_note: ''
      action_args:
      - screen
      - element
      action_def:
      - - ${DOES_ELEMENT_EXIST} =
        - Run Keyword And Return Status
        - Element Should Be Visible
        - ${location}
      - - Log
        - '${DOES_ELEMENT_EXIST} '
      - - Pass Execution If
        - '''${DOES_ELEMENT_EXIST}''==''True'''
        - pass execution
      - - Log
        - Continune Test

次に、作成された TestContro.yamlをT-DASHの動作定義 -> カスタム動作 -> カスタム動作をインポート にてインポートする

image.png

このカスタム動作の引数として、存在有無をチェックする画面要素になります。

スクリプト

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