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-08-26

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の動作定義 -> カスタム動作 -> カスタム動作をインポート にてインポートし、実際にインポートされた設定内容を開く

image.png

特に編集する必要はないが、変数の有効範囲を変えたい場合、 Set Suite Variable をほかの関数にする

参考

テストケース

image.png

1行目のように、変数 dynamic_valueを生成し、値「テスト」を入れる
3行目のように、生成された変数 ${dynamic_value} を用いる

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?