初めまして、shunです。自動テストツールのmablを業務で使用しておおよそ8ヶ月程経ちました。mablの使用歴はまだまだ浅いですが、少しでも自身の知識を共有したいと思います。今回はmablのflow(フロー)について紹介します。mablで自動テストを作成する上で非常に便利な機能です。ぜひ、最後までお読みください。また、mablの基本操作は以下で紹介しております。
■ローコード自動化ツール「mabl」 #1 mablの基本操作
1.flow(フロー)とは
mablを触ったことがない人はそもそもflow(フロー)って何?っていう状況だと思います。簡単に言うと”共通部品”と言い換えることができます。以下の様なシステムを自動化する場合を例に考えてみましょう。
操作手順
・メールアドレス(12345@email.jp)とPassWord(12345678)を入力後、ログインを押すことでログインできる
・ログイン後、ログインに使用したメールアドレスが表示される
・ログイン後に「動作A」、「動作B」、「動作C」が行える
・一度のログインで確認できる動作は1つのみ
確認手順
「動作A」の確認手順は以下になります。
1.メールアドレス「12345@email.jp」入力する
2.PassWord「12345678」を入力する
3.「ログイン」ボタンを押す
4.「12345@email.jp」のテキストが表示される
5.動作Aを行う
「動作B」、「動作C」の確認手順も手順5が変更されるだけで、手順1〜4については、「動作A」、「動作B」、「動作C」で同じ手順を踏むことになります。このように同じ手順(操作)を踏む処理を1つの部品としてまとめることができ、再利用できる機能をmablでは、”flow(フロー)” といいます。プログラミング言語を少し学習したことのある方ならご存じだと思いますが、flow(フロー)はプログラミング言語の”関数”に似ているものです。
2.flow(フロー)のメリット
mablでflow(フロー)の使用するメリットを紹介します。
・テスト実装の時間を短縮できる
繰り返し行う手順や操作を1つの部品としてまとめ、再利用することでテスト実装にかける時間は大幅に短縮できます。同じ手順や操作をテストケース毎に1から作成していくのは効率が非常に悪いです。その改善を図る為にflow(フロー)は役立ちます。
・修正コストが低い
テスト対象のアップデートや不具合修正等による仕様変更が行われた場合に実装済みのテストをメンテナンスする作業が生じます。flow(フロー)を使えばメンテナンス作業にかかるコストが低くなります。例えば【ログイン】フローというものを100個のテストケースで使用している場合、100個のテストケースすべてを修正する必要はありません。【ログイン】フローの中身を修正することで解決することができます。しかし、100個ともflow(フロー)を使用せずに個別に実装していた場合、100個のテストケースそれぞれで修正していく必要があります。
・パラメータ変数を用いることで柔軟なテストを実装できる
パラメータ変数を用いて柔軟なテストを実装できます。詳細は以降の「5.パラメータ変数」で解説します。
3.flow(フロー)の作成方法
それでは実際にmablでどうやってflow(フロー)を作成するのか解説します。flow(フロー)の作成方法は2つあります。1つ目はflow(フロー)の大枠を先に作成する方法です。手順は以下となります。
・flow(フロー)作成方法1
1.+ボタンをクリック
2.Create flowをクリック
3.Name(フロー名)を「ログイン」とつける
4.OKをクリック
5.Start flow “ログイン”~End flowがトレーナー状に表示される
2つ目は既に記録しているステップをflow(フロー)にする方法です。手順は以下となります。
・flow(フロー)作成方法2
1.記録済みのステップのチェックボックスに✔を入れる
2.mablTrainerの右上の「Create flow」をクリック
3.Name(フロー名)を「ログイン」とつける
4.OKをクリック
5.「Start flow “ログイン”」と「End flow」の間に手順1で選択したステップが格納
これで無事にflow(フロー)を作成することができました。フロー内のステップは、1.1、1.2 …と小数点で表示されます。
4.flow(フロー)の再利用
次は実際に作成したflow(フロー)の再利用方法を解説します。再利用は凄く簡単です。先ほど作成した「ログイン」のフローを呼び出してみましょう。
1.+ボタンをクリック
2.Flowsをクリック
3.Search for a flowに使用するフロー名に「ログイン」と入れる
4.使用するフローを選択する
5.import flowをクリック
flow(フロー)を呼び出して再利用できます。現在(2022/07/31時点)のmablの仕様では、flow(フロー)の中にflow(フロー)を入れるという入れ子構造にはできない仕様となっています。mablは日々アップデートしているので将来的にはflow(フロー)を入れ子構造にできるかもしれません。
5.パラメータ変数
flow(フロー)を操作する上で欠かせない要素が”パラメータ変数”です。パラメータ変数について説明していきます。変数がどんなものか曖昧の方は、下記の記事をお読み頂けるといいと思います。
■ローコード自動化ツール「mabl」 #2 変数の使い方
・パラメータ変数とは
例があった方が分かりやすいと思うので「1.flow(フロー)とは」で解説した手順1〜4のステップを【ログイン】フローとして実装したとします。
■【ログイン】フロー
・メールアドレス「12345@email.jp」入力する
・PassWord「12345678」を入力する
・「ログイン」ボタンを押す
・「12345@email.jp」のテキストが表示される
実はこのflow(フロー)は凄く使い勝手が悪いフローとなっています。なぜ使い勝手が悪いのかと言うと、この【ログイン】フローは、メールアドレス「12345@email.jp」、PassWord「12345678」を入力する場合にしか使用することができないのです。実際のテストの現場では、ログイン時に使用されるメールアドレスやPassWord、あるいはIDといったものはテストケースによって変化することが想定されます。固定された値であれば問題ないですが、例えば以下のようなシステムを自動化する場合、「動作A」、「動作B」、「動作C」とテストケースごとにメールアドレスやPassWordが変わると今の【ログイン】フローでは再利用することができないのです。
・メールアドレスとPassWordを入力後、ログインを押すことでログインできる
・ログイン後、ログインに使用したメールアドレスが表示される
・ログイン後に「動作A」、「動作B」、「動作C」が行える
・「動作A」の確認時は、メールアドレス「12345@email.jp」、PassWord「12345678」
・「動作B」の確認時は、メールアドレス「11111@email.jp」、PassWord「11111111」
・「動作C」の確認時は、メールアドレス「00000@email.jp」、PassWord「00000000」
・一度のログインで確認できる動作は1つのみ
少し前置きが長くなりましたが、そこで登場する便利なものがパラメータ変数です。【ログイン】フローにパラメータ変数を設定することができ、テストケース毎に個別のメールアドレス、PassWordを設定することができるようになります。下記のようなイメージです。
■【ログイン(パラメータ変数あり)】フロー
email・・・
pass・・・
・メールアドレス「email」入力する
・PassWord「pass」を入力する
・「ログイン」ボタンを押す
・「email」のテキストが表示される
【ログイン(パラメータ変数あり)】フローにパラメータ変数として「email」、「pass」を設定することできます。パラメータ変数を設定することで「email」と「pass」にはテストケース毎に自由に値を入れることができるようになります。
「動作A」で使用する【ログイン(パラメータ変数あり)】フローでは
「email」は「12345@email.jp」、passは「12345678」
「動作B」で使用する【ログイン(パラメータ変数あり)】フローでは
「email」は「11111@email.jp」、passは「11111111」
「動作C」で使用する【ログイン(パラメータ変数あり)】フローでは
「email」は「00000@email.jp」、passは「00000000」
のようにテストケースに応じて入力する値を変更することができるようになります。
手順(操作)は同じだけど入力する値をテスト毎に変更したい場合等、パラメータ変数を設定することで柔軟に対応することができるようになります。
・パラメータ変数の設定と使い方
・設定方法
1.flow(“フロー”)を呼び出す(4..flow(フロー)の再利用を参照してください。)
2.フローのステップのEdit(えんぴつのアイコン)をクリック
3.Parametersをクリック
4.MANAGE PARAMETERSをクリック
5.ADD NEW PARAMETERSをクリック
6.左のスペース(Variable name)に「email」と入力する
※(Variable name)はパラメータ変数の名称です。
7.右側のスペース(Default value)に「12345@email.jp」と入力する
※(Default value)はパラメータ変数の値
8.ADD NEW PARAMETERSをクリック
9.左のスペース(Variable name)に「pass」と入力する
10.右側のスペース(Default value)に「12345678」と入力する
11.OKをクリック
12.「flow.email = 12345@email.jp」、「flow.pass = 12345678」が設定されている
該当のflow(フロー)に「email」、「pass」というパラメータ変数を設定できました。「flow.email」のように設定した名称の前に「flow.」が付くのが特徴です。パラメータ変数の名称には平仮名、カタカナ、漢字等は使用できません。「flow.email」入力されている値「12345@email.jp」、「flow.pass」に入力されている値「12345678」はデフォルトの値となります。デフォルト値はこのflow(フロー)を使用する際にパラメータ変数の「flow.email」、「flow.pass」を指定しない場合に使われる値です。
・使い方
1.パラメータ変数が設定済みのflow(“フロー”)を呼び出す
2.フローのステップのEdit(えんぴつのアイコン)をクリック
3.Parametersをクリック
4.「flow.email」=「12345@email.jp」が入力されている箇所に「11111@email.jp」を入力する
5.「flow.pass」= 「12345678」が入力されている箇所に「11111111」を入力する
6.OKをクリック
該当のflow(フロー)に「email」というパラメータ変数の値を「11111@email.jp」、「flow.pass」に「11111111」とデフォルト値ではない値を設定できました。前述でも触れましたが、ここで値を設定しなければデフォルト値である「12345@email.jp」、「12345678」が「flow.email」、「flow.pass」として使用されます。
・パラメータ変数が使用できる範囲
パラメータ変数は、そのflow(フロー)内でなければ使用できません。何の話?となりましたよね。「2.flowの作成方法」で触れましたがflow(フロー)は、「Start flow ”フロー名”」~「End flow」までがフローの範囲です。つまり、パラメータ変数は「Start〜End」の間では使用できますが、外側では使用できません。困惑した場合はシンプルに「パラメータ変数には使用できる範囲がある」、ということだけ理解してもらえれば十分です。
パラメータ変数はflow(フロー)内でのみ使用できる。
パラメータ変数はflow(フロー)の外では使用できない。
6.Looping機能
flow(フロー)にはLoopingという機能があります。Loopingを設定することによってそのflow(フロー)を繰り返し実行することができるようになる機能です。多くのテストを作成していると、このflow(フロー)の処理を5回繰り返したいというケースも出てくるかと思います。flow(フロー)のLoopingの種類と設定方法について解説していきたいと思います。
・種類
・「Run once」
この設定はflow(フロー)は1回だけ実行される設定です。一番よく使われる設定の為、デフォルトで設定されています。基本的にLoopingを設定しなければ、flow(フロー)は1回実行されます。
・「 Loop using a fixed number」
この設定はflow(フロー)は任意の回数だけ実行されるようにできる設定です。5ならば5回、10ならば10回とflow(フロー)を繰り返し実行したい回数を指定することができます。設定できる最小値は「2」、最大値は「500」です。
・「Loop using a variable」
この設定はflow(フロー)は任意の回数だけ実行されるようにできる設定です。「Loop using a fixed number」との違いは、任意の回数の設定に変数を用いることができます。設定できる最小値は「2」、最大値は「500」です。
・設定方法
1.flow(“フロー”)を呼び出す
2.フローのステップのEdit(えんぴつのアイコン)をクリック
3.Loopingをクリック
4.「Run once」、「 Loop using a fixed number」、「Loop using a variable」を選択する
※「Run once」に設定する内容はありません。
※「 Loop using a fixed number」では繰り返したい数値をNumber of times to loopに入力します。
※「Loop using a variable」ではNumber of times to loopで事前に定義した変数名を選択します。
※2回以上繰り返すflow(フロー)には「Loop 0/100」のように何回繰り返すflow(フロー)かがトレーナー上に表示されます。
7.まとめ
・同じ手順(操作)を踏む処理を1つの部品としてまとめることができ再利用できる機能
・テスト実装の時間を短縮できる
・テスト対象の仕様変更等で発生するテストケースの修正コストが低い
・パラメータ変数という機能があり、柔軟なテストを実装できる
・パラメータ変数はflow(フロー)内でのみ使用できる
・パラメータ変数はflow(フロー)の外では使用できない
・指定した回数、flow(フロー)を繰り返し実行できるLooping機能がある
mablで自動テストを作成する上では欠かせない機能になります。flow(フロー)が便利な機能であることを少しでも理解していただけたら幸いです。ここまでお読みいただきありがとうございました。