スニペットエディター
JavaScriptスニペットエディターの各部分の詳細
新しいスニペットを作成するときや、既存のスニペットを開くときには、スニペットエディターが表示されます。このエディターでは、スニペットを作成または変更できます。このウィンドウには次の部分があります。
- [Name] と [Description]
- パラメーター
- コードエディター
- [Results] セクション
- [Save] のオプション
[Name] と [Description]
すべてのスニペットに名前が必要です。説明 ([Description]) はオプションです。ワークスペースのすべてのユーザーは、これらのフィールドからスニペットの内容を把握でき、再利用可能なスニペットの場合は、自分のテストにインポートしたいスニペットかどうかを判断することができます。
パラメーター
パラメーターを使用すると、変数値やCSSクエリなどの値をスニペットに入力することができます。スニペットにパラメーターを使用しない場合は、このセクションを空白のままにします。
変数値をパラメーターとして追加
mablの変数構文を使用すると、変数値をパラメーターとして追加できます。
タイプ | 説明 | 例 |
---|---|---|
テストで生成される変数 | ブラウザーテストのテストステップによって作成される変数 | new_user は {{@new_user}} になります。 |
ループインデックス | スニペットがループ内にある場合、この変数にアクセスできます。 | {{@run.loop_index}} |
フローパラメーター | パラメーター化されたフローの中にスニペットがある場合、この変数にアクセスできます。 | フローパラメーター occupation は、{{@flow.occupation}} になります。 |
資格情報 | テストまたはプランが資格情報に関連付けられている場合にアクセスできる変数 | {{@app.defaults.username}} と {{@app.defaults.password}} |
アプリケーションのURL | テスト対象アプリケーションのURL | {{@app.url}} |
実行ID | テストに関連付けられた一意のID。クラウド実行ごとに生成されます (ローカルで実行される場合、値は "local-run" です)。 | {{@app.test_run_id}} |
コードエディター
コードエディターでは、このステップで実行するコードを記述します。スニペットはすべて、mablJavaScriptStepという事前定義された関数で構成されます。この関数には次のパラメーターがあります。
mablInputs
mablInputsは、テストの変数で構成されたオブジェクトです。
mablInputsの代わりにパラメーターを使用する
再利用性を高め、入力要件を適切に記述するには、スニペットに変数をパラメーターとして追加することをお勧めします
mablInputsオブジェクトからアクセスできる値の例を示します。
mablInputs = {
variables: {
user: {
// variables created during the trained test thus far
myCreatedVariable: "Variable value created earlier"
},
web: {
defaults: {
// URL of the page under test - {{@app.url}}
url: "https://sandbox.mabl.com",
// test run ID - generates a unique ID for cloud runs
test_run_id: "local-run",
credentials: {
// login username associated with test or plan - {{@app.defaults.username}}
username: "[email protected]",
// login password associated with test or plan - {{@app.defaults.password}}
password: "password123"
}
},
runtime: {
// loop index, starts at 1 - {{@run.loop_index}}
flow_run_ordinal_index: "1"
}
}
flow: {
// flow parameters (if the test is within a flow)
myFlowParam: "Flow parameter value"
}
}
}
Callback
callback関数はJavaScriptステップを完了するために呼び出し、値を返す必要があります。callbackでサポートされている戻り値の型は、以下のとおりです。
- ブール値
- 文字列
- 数値
[Run] ボタンを押すと、callbackの値が [Results] セクションに表示されます。
JavaScriptスニペットの最大実行時間
callback待ちの状態で30秒が経過すると、テストの実行は失敗します。実行が必要な非同期コードを入力した後には、必ずこの関数を呼び出してください。
パラメーター (使用する場合)
スニペットにパラメーターを追加すると、追加したパラメーターはmablJavaScriptStep関数の引数として表示されます。
JavaScriptスニペットの非同期関数
mablJavaScriptStep
関数では、ステップを完了するためにcallbackの値が必要ですが、スニペットエディターでPromisesとasync/awaitを指定して、非同期JavaScriptを使用することもできます。次のJavaScriptスニペットでは、async
キーワードと Promise
オブジェクトを使用して、非同期操作で値を返しています。
async function mablJavaScriptStep(mablInputs, callback) {
// enter code here, return result in callback
const augment = async (inVar) => {
return Promise.resolve('I said ' + inVar + ' something');
}
const result = await augment('test');
callback(result);
}
[Results] セクション
[Run] ボタンをクリックすると、スニペットをテストできます。出力は [Results] フィールドに表示されます。
結果の展開
スニペットの出力が [Results] フィールドより大きい場合、展開アイコンをクリックして、より大きいウィンドウに値を表示できます。
JavaScriptのエラーメッセージ
[Run] をクリックして [Results] にError!と出力される場合、スクリプトにエラーがあります。このエラーの詳細を把握するには、スニペットを保存し、そのままmabl Trainerで実行してください。
mabl Trainerの外部にあるスニペット
スニペットをmabl Trainerの外部で実行することはできません。
[Snippets] ページ (mabl Trainerの外部) で新しいスニペットを作成したり、既存のスニペットを開いたりする場合、[Results] セクションはありません。
[Save] のオプション
mabl Trainerで新しいスニペットを保存するとき、[Save] ボタンの横にある下矢印をクリックすると、すべてのオプションが表示されます。
Save
既存のスニペットのデフォルトのオプションです。
Save as one-time snippet
スニペットを再利用する予定がない場合、ワンタイムスニペットとして保存すると便利です。後で考えが変わった場合は、[Save as new reusable snippet] をクリックして、ワンタイムスニペットを再利用可能なスニペットにいつでも変換できます。
ワンタイムスニペットは [Snippets] ページには表示されません。
注
ワンタイムスニペットを再利用可能なフローに配置することは可能です。この場合、スニペットを他のテストに直接インポートすることはできませんが、フローをインポートすれば、スニペットを再利用できます。
Save as new reusable snippet
同一のJavaScriptステップを複数のテストで使用する必要がある場合、あるいは同一のテスト内で複数回使用する必要がある場合、再利用可能なスニペットとして保存できます。後でJavaScriptの更新が必要になった場合、1か所で更新すれば、すべてのテストが更新されます。
mabl Trainerの外部にあるスニペット
[Snippets] ページ ([Tests] > [Snippets]) にあるスニペットはすべて、再利用可能なスニペットです。[Snippets] ページでスニペットを操作するときは、次の点に留意してください。
- 新しいスニペットは、常に再利用可能なスニペットとして保存されます。
- 既存のスニペットを更新することはできますが、mabl Trainerの外部で既存のスニペットから新しいスニペットを作成することはできません。
Updated 8 days ago