Outline
テストケースにおいて、ある一定条件を満たしたとき、そのテストケースを中断してそれ以降のテスト実行をパスしたい。ただし、後続するテストケースを実行させたい場合がある。
たとえば、商品購入のテストケースで、在庫の概念があるとする。
テストケース1
- 対象商品を検索する
- 商品が存在しない場合、以降実行を行わない <- 条件に応じて後続処理を判断
- 商品購入をする
テストケース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の動作定義 -> カスタム動作 -> カスタム動作をインポート にてインポートする
このカスタム動作の引数として、存在有無をチェックする画面要素になります。
スクリプト
実行結果
「対象商品」が存在するときのテスト実行結果である。
ログのように、要素が存在するため、以降のテスト(「対象商品」の要素をクリックするなど)は実行されない。