Outline
データ駆動開発は、スクリプトとデータを分離する開発技法である。
これにより、スクリプトのメンテナンス性を改善することができる。
そのため、テストコードから変数をできる限り外出しをする。
外だしする方法として、変数を用いることがある。
ただ、T-DASHでは変数を宣言(定義)して設定する機能がない。
その変数宣言方法いくつかあるとおもうが、できる限りエレガントに再利用性の高い方法を説明する
技術的情報
基本的に変数名を用いて定義する
robot framework風
Set Suite Variable ${hoge} abcde
Log ${hoge}
変数hogeにabcdeの値を設定する。
これで十分ことが足りるが、複数の変数を定義する場合、どうであろうか?
また、これをカスタム動作で定義することになるが、ハードコーディングで変数名を指定するのは使いやすいだろうか?
そこで、任意の変数名に対して値を設定する方法が必要になる
Set Dynamic Variable
[Arguments] ${argv1} ${argv2}
Set Sute Variable ${${argv1}} ${argv2}
${${argv1}} この記述により、${argv1}という変数を作り出す。
これにより、カスタム動作内ではハードコーディングなしで、保守性の高い変数宣言を実現できる
T-DASH
カスタム動作
以下設定内容を variables.yamlのファイル名で保存する
ACT-CAT-CUSTOM-8c3c0ac4-cbd0-42dc-986b-8590d2ab805f:
action_category_name: variables
icon: ''
color: '#309184'
custom_data:
file_name: variables
pip_list: []
library_list: []
actions:
ACT-CUSTOM-8b671349-a425-46a6-9d92-fddf6520a539:
action_name: 動的変数に値を設定する
action_type: operation
action_format: 変数名「設定値1」に値「設定値2」を設定する
action_note: ''
action_args:
- value1
- value2
action_def:
- - Set Suite Variable
- ${${value1}}
- ${value2}
- - Log
- set ${value2} in ${value1} variable
次に、作成された variables.yamlをT-DASHの動作定義 -> カスタム動作 -> カスタム動作をインポート にてインポートし、実際にインポートされた設定内容を開く
特に編集する必要はないが、変数の有効範囲を変えたい場合、 Set Suite Variable をほかの関数にする
参考
テストケース
1行目のように、変数 dynamic_valueを生成し、値「テスト」を入れる
3行目のように、生成された変数 ${dynamic_value} を用いる