フローパラメータを使用すると、変数を単一のフローにスコープしたり、異なる変数でフローを再利用したりできます。一般的なプログラミング言語に慣れている場合は、フローを関数、パラメータをフローの1つのインスタンスへの入力として考えることができます。
この記事では、mablトレーナーでパラメータ化されたフローを操作する方法を説明します。具体的には以下の内容を含みます。
- 新しいフローにパラメーターを追加する
- 既存のフローにパラメーターを追加する
- デフォルトのパラメーター値をオーバーライドする
- デフォルトのパラメーター値を更新する
- フローパラメーターをフローの外部にエクスポートする
- フローパラメーターを削除する
パラメータの仕組み
フローパラメータを作成すると、mablは自動的にflow.プレフィックスを追加します。そのため、emailという名前のパラメータはflow.emailになります。フローパラメータはフローの開始時に初期化され、フローの開始ステップとフローの終了ステップ内でのみ使用できます。ドロップダウンにフローパラメータが表示されない場合は、カーソルの位置を確認してください。
フローパラメータには2つの値のレイヤーがあります。
- デフォルト値はパラメータの管理で設定します。オーバーライドされていないすべてのフローインスタンスに適用されます。デフォルト値を変更すると、デフォルトを使用しているすべてのインスタンスに変更が適用されます。
- オーバーライド値は、パラメータタブで特定のフローインスタンスに設定します。そのテスト内のそのフローの1つの使用にのみ適用されます。1つのインスタンスでパラメータをオーバーライドしても、同じテスト内であっても、他のフローインスタンスには影響しません。
オーバーライドが設定されている場合、デフォルトより優先されます。デフォルトに戻すには、オーバーライドフィールドをクリアしてください。たとえば、emailパラメータとデフォルト値default_user@example.comを持つ「Login」フローを作成したとします。
- テストAでは、
emailをtestuser_a@example.comでオーバーライドします。 - テストBでは、デフォルトのままにします。
後でデフォルトをnew_default@example.comに変更した場合、テストBは新しい値を使用しますが、テストAは引き続きオーバーライド値testuser_a@example.comを使用します。
新しいフローにパラメーターを追加する方法
新しいフローにパラメータを追加するには、mablトレーナーで以下のステップを実行してください。
- [+ (ステップを追加)] > [フローの作成] をクリックします。
- フローに名前を付けます。
- [パラメーター] タブをクリックします。
- [パラメーターの管理] をクリックして、新しいパラメーターを追加します。
- パラメータに名前とデフォルト値を設定します。静的な文字列や数値、有効な式を使用したランダムな値、またはテスト内の別の変数への参照を入力できます。環境変数、データテーブル変数、およびテストの前の段階で作成された変数はすべて、
{{@variableName}}構文を使用してパラメータ値として参照できます。 - [OK] をクリックして、変更内容を保存します。
たとえば、再利用可能な「Login」フローを作成するには、{{@app.defaults.username}}をデフォルト値とするemailと、{{@app.defaults.password}}をデフォルト値とするpasswordの2つのパラメータを追加します。
フローパラメーターの値として変数を使用する場合は、フローの開始前にその変数を初期化してください。これを行わない場合、フローパラメーターを使用するステップによって [not yet evaluated] という値が指定されます。
既存のフローにパラメーターを追加する方法
既存のフローにパラメーターを追加するには、mablトレーナーでフローを含むテストを開き、次の手順を実行します。
- 鉛筆アイコンをクリックしてフローを編集します。
- [パラメーター] タブをクリックします。
- [パラメーターの管理] をクリックして、新しいパラメーターを追加します。
- パラメーターの名前とデフォルト値を指定します。
パラメータを追加した後、フロー内のステップを更新してパラメータを参照するようにしてください。パラメータを追加しても、既存のステップは自動的に変更されません。たとえば、「Login」フローのメール入力ステップにハードコードされたメールアドレスがある場合、そのステップを編集してハードコードされた値を{{@flow.email}}に置き換える必要があります。
フロー内の値をフローパラメーターに置き換える
デフォルトのパラメーター値をオーバーライドする方法
フローのデフォルトパラメータ値をオーバーライドするには、以下のステップを実行してください。
- 鉛筆アイコンをクリックしてフローを編集します。
- [パラメーター] タブをクリックします。
- パラメーター値を更新して、デフォルト値をオーバーライドします。
- [OK] をクリックして、オーバーライドを保存します。
1つのインスタンスでフローパラメータをオーバーライドしても、同じテスト内であっても、他のフローインスタンスのパラメータ値は更新されません。たとえば、テストで「Login」フローを2回使用する場合(管理者ユーザーとして1回、標準ユーザーとして1回など)、各インスタンスでemailを個別にオーバーライドできます。
デフォルトのパラメーターをオーバーライドする
パラメータとループ処理
フローがループされている場合、同じパラメータ値がすべてのイテレーションに適用されます。異なる値で同じフローを実行するには、フローを複数回インポートし、それぞれに個別のオーバーライドを設定してください。
デフォルトのパラメーター値を更新する方法
フローのデフォルトパラメータ値を更新するには、以下のステップを実行してください。
- 鉛筆アイコンをクリックしてフローを編集します。
- [パラメーター] タブをクリックします。
- [パラメーターの管理] をクリックします。
- デフォルトのパラメーター値を更新します。
- [OK] をクリックして、新しいデフォルトのパラメーター値を保存します。
デフォルトのパラメータ値を更新すると、デフォルトのパラメータ値を使用しているフローのすべてのインスタンスの値が変更されます。パラメータのオーバーライドが設定されているフローのインスタンスには影響しません。たとえば、「Login」フローのデフォルトのpasswordが変更された場合、パラメータの管理で更新すると、デフォルトを使用しているすべてのテストのパスワードが更新されます。passwordのオーバーライドを使用しているテストは、オーバーライドの値が維持されます。
デフォルトのパラメーター値を更新する
フローパラメーターをフローの外部にエクスポートする方法
フロー内で作成された変数は、親フローや含まれているテストのステップを含む、後続のテストステップでアクセスできます。ただし、flow.というプレフィックスが付いたフローパラメータは、フローにスコープされており、フローの外からはアクセスできません。
フローパラメータの値をフローの外で使用したい場合は、フロー内にフローパラメータの値を格納する新しい変数を作成してください。
たとえば、「Login」フローがセッショントークンをflow.sessionTokenとしてキャプチャし、フロー終了後のステップでその値を使用したい場合は、フロー内に{{@flow.sessionToken}}という値を持つsessionTokenという変数を作成してください。変数sessionTokenは、フローの外の後続のテストステップで使用できるようになります。
テスト内ですでに使用されている変数の名前を使用すると、元の変数がオーバーライドされます。
フローパラメーターを削除する方法
フローパラメーターを削除するには、mablトレーナーでフローを含むテストを開き、次の手順を実行します。
- 鉛筆アイコンをクリックしてフローを編集します。
- [パラメーター] タブをクリックします。
- [パラメーターの管理] をクリックします。
- パラメーターを削除します。
- OKをクリックします。
パラメーターを削除した場合は、フロー内のステップをフローパラメーターではなく通常の変数を使用するように変更するか、フローのバージョンをパラメーターの使用を開始する前のバージョンに戻します。これを行わない場合、フローパラメーターを使用するステップによって [not yet evaluated] という値が指定されます。
フローパラメーターを削除する