パラメタ付きFlow

Flowにはパラメタを追加できます。1つのFlowに変数を適用することで、テストの後半で同じFlowを別の値で再利用できます。

Flowにはパラメタを追加できます。1つのFlowに変数を適用することで、テストの後半で同じFlowを別の値で再利用できます。

この機能は、一般的なプログラミング言語の関数に似ています。入力パラメータを受け取るFlowという関数があるイメージです。Flowのすべてのインスタンスでは、Flow内で使用する変数は同じですが、フローのすべてのインスタンスの変数には、異なる入力パラメータを設定できます。例えば、パラメータ化されたSearchFlowを使って、テストの初期に作成したアドレスを検索したり、そのあと電話番号を検索、そのまたあとに誰かの名前を検索・・・といった動作が可能になります。

ここで注意していただきたいのは、パラメタ付きFlowは現在、新規に作成されたFlowでのみ利用可能であり、パラメタ付きFlowがリリースされる前に作成されたFlowでは「パラメタなし」の設定になっています。利用される場合は、パラメタ設定を行ってください。

📘

Flowとは何か?

よくある一連のステップを再利用可能なFlowにまとめ、任意のテストに挿入できます。フローは常に最新の状態に保たれています。ベースとなるFlowに変更があった場合、そのFlowを含むすべてのテストに自動的に反映されます。詳細はFLOW(共通部品)を確認ください。

パラメタ付きFlowの作成

パラメタ付きFlowを新規作成する

今回の例では、まずパラメタ付きのFlowを新規に作成します。既存のFlowをパラメタを使用するように変換する場合は、以下に進んでください。

パラメタ付きFlowの追加

パラメタ化されたFlowを挿入したいテストを開きます。ゼロから始める場合は、まずFlowを追加します。「New flow」を選択すると、Flowに名前を付けるよう促されます。ウィンドウ内の「Parameters」タブに切り替え、「Manage parameters」を選択します。

594

ここでは、Flow内で使用するパラメータを作成します。パラメタには後で使用する名前を付け、デフォルト値を設定します。「ボストン」という文字列や「11」といった数値を設定できます。Flowで使用するパラメータを追加したら、変更を保存します。

594

Flowのパラメタにアクセスする場合は、flow.searchVarのように、変数の頭にflow.をつけてアクセスします。

594

パラメタを上書きする

パラメタのデフォルト値を使わない場合は、「OK」をクリックしてFlowの作成を終了する前に、今回のテストで使用したい値を入力し、デフォルト値を上書きします(オーバーライド)。デフォルト値の上書きは、後でいつでも追加できますし、上書きしない場合は、デフォルトを使用します。

追加する場合は、静的な文字列や数値を入力したり、{{@varName}} といった構文を使って別の変数を入力できます。また、{{digit:10}}{{alnum:3}}を使ってランダムな値を作成できます。設定が完了したら、「OK」をクリックして変更を保存します。

🚧

変数で上書きする場合の注意点

変数で上書きする場合は、Flowの開始前にその変数が作成または初期化されていることを確認してください。そうしないと、定義されていない変数がパラメタに設定されてしまい、ステップが失敗します。

594

📘

既存のFlowを変換する

パラメタ設定されていない既存のFlowでパラメータを使用するには、「Parameter」タブを開き、上図の「Manage parameter」から新しいパラメタを追加できます。

設定後、Flow内のステップで設定された変数を利用するのを忘れないでください。そうしなければ、Flowを利用したすべてのテストが失敗する可能性があります。

パラメタ付きFlowをインポートする

パラメタ化されたFlowをインポートすると、そのFlowのインスタンスに必要なパラメタを入力するように促されます。上書きしたパラメタは、そのFlowのインスタンスにのみ適用されるので、別のテストや同じテストでそのFlowを使用しても影響はありません。

パラメタのエクスポート

Flowの外でFlowで定義したパラメータを使用したい場合は、Flowの中でFlowのパラメタを新しい変数に代入する必要があります。たとえば、flow.searchResult という変数をフローの外で使用したい場合は、mySearchResult という名前の新しい変数を作成し、その値を {{@flow.searchResult}} に設定します。

🚧

変数名を再利用するときの注意点

変数に新しい値を代入すると、元の変数を上書きすることと同じ動きになります。よって、テスト中に既に使用されている変数名を再利用する場合は注意が必要です。

パラメタの削除

何らかの理由でFlowのパラメータを削除したい場合は、Flowのインスタンスの編集ボタンをクリックし、「Manage Parameters」をクリックして、パラメータを削除します。この操作を行った後は、Flowのバージョンをパラメタを使い始める前のバージョンに戻すか、FlowのステップをFlowパラメタではなく通常の変数を使用するように変更するなど、影響を回避する必要があります。これを行わないと、Flowやテストが未定義の変数を参照することになり、予期せぬ障害が発生する可能性があります。

🚧

Flowパラメタの名前変更

Flowパラメタの名前を変更する場合、ステップ内で利用しているパラメタ名は、自動的に新しい名前にならないため、フロー内でパラメタを参照するステップを更新する必要があります。

FAQ

Flowの中でFlowパラメタを修正することはできますか?

Flowパラメタの変更は、テストおよびFlowインスタンスの編集時にのみ可能です。テストの実行中にFlowパラメータを修正する機能はサポートしておりません。その代わりに「Create variable」ステップを使って、Flow内で新しい変数に値を割り当てることができます。

Flowパラメーターを使ってループすることはできますか?

できません。しかし、Flow自体がループは機能を持っており、標準的な変数 (例:{{@varName}} など)を使用することで、テストの前に作成した変数の回数分、Flowをループさせられます。

Flowの1つのインスタンスでパラメタを上書きすると、他のインスタンスも更新されますか?

更新されません。パラメタ名とデフォルト値を変更した場合は、他のFlowインスタンスに影響を与えます。しかし、上書きの場合は、同じテスト内であっても、同じFlowの他のインスタンスが変更されることはありません。


Related resources