コルネの進捗や備忘録が記されたなにか

進捗や成果物や備忘録てきななにかを雑に更新していきます。

Power Automateでテストを行う


スポンサードリンク

はじめに

この記事は、Power Automate Advent Calendar 2022 12月12日担当分の記事です。

記事公開後に潜り込ませていただきましたw

以前にPower Appsのテストについて触れた際に、Power Automateのテストは?という質問や話題がでたのでPower Automateのテストについて簡単にまとめました。
テストというかデバッグかな?

ちなみにPower AppsのテストについてはJapan Power Platform Conference 2022Power Apps 勉強会 ~若手二人会 Power Apps テストを学ぼう~でお話させていただきました。

資料と動画は以下にありますので興味のある方はみてみてください。

www.docswell.com

[AP2]Power Appsでテストしてみる - JPPC
Power Appsでテストしてみる - JPAUG

なんで2回やったのか?というと、JPPCでは時間切れで最後までお話できなかったからです。。。
なのでJPAUGはそのリベンジ回というわけですね。
なので動画としてはJPAUGの方をみた方が良いかも。

テストのやり方とテクニック

テスト実行

Power Automateでは左上に「テスト」というものがあります。

これを選択することでフローを実行させることが可能です。

テストには「手動」と「自動」の2つがあります。

手動での実行、スケジュールでの実行、あとPower Appsがトリガーになっているものは「手動」での実行でOKです。
Power Appsからなんらかのパラメータを受け取るように設定してある場合は、実行時にPower Appsから渡される想定の値を入力して実行します。

アイテムが作成されたときや変更されたときなどをトリガーとしている場合は、「自動」での実行を利用します。(手動での実行やスケジュール、Power Appsをトリガーとしている場合でも「自動」での実行を行っても問題ないです。)

これを利用することで、以前実行したトリガーの実行結果でフローを実行することができます。

ここで選択可能な最近使用したトリガーは5つまでなので注意が必要ですね。
また、過去の実行結果を選択する必要があるので、一度そのトリガーを動かしておく必要があります。

特定のアクションまでの実行結果を確認する

特定のアクションまでの実行結果を確認し、そのアクション以降のアクションは実行させたくない。
みたいな場合は終了アクションを特定のアクションの直後に仕込んであげます。

例えば、以下の場合でこのテクニックを利用しますね

  • 後続のアクションでデータソースの値を更新するが、テスト実行なので更新したくない場合
  • 後続のアクションでTeamsなどに通知するが、テスト実行なので一々通知したくない場合

などなど

式の結果を確認する

Power Automateの実行ログからでは、条件式やカスタム項目なんかで設定した関数式の結果を確認することができません。

設定した関数式の結果を確認したい場合は作成アクションを用意して、同様の関数式を出力してあげるようにしましょう。

静的な結果を利用する

特定のアクションを実際には実行させることなく、固定の結果を返すようにしたい場合は、「静的な結果」を利用します。

公式のドキュメントとしてはこちらですね。

learn.microsoft.com

例えば以下の場合にこの機能が役立つかと思います。

  • 項目を作成/更新してその結果を利用している後続のアクションのテストを行いたいが、項目を作成/更新したくない場合
  • HTTPなどの要求を行い、その結果を利用している後続のアクションのテストを行いたいが、一々要求を送りたくない場合

いわゆるモックデータを作成してフローを実行できますよ。
というやつですね。

静的な結果をオンにすると以下のように結果を入力することができます。

JSONで出力結果を指定したい場合は、「JSONモードに切り替え」を選択します。

これにより、出力結果をJSONで記載できるようになります。

お好きな方での入力でよいと思いますが、編集モードでの入力だとたまに入力が変になるときがあるので、JSONモードで記載した方が良いんじゃないかな。と、個人的には思っています。
プレビューなので仕方ないね。

ちなみに「JSONモードに切り替え」は任意のブロックのみをJSONで記載するようにすることも可能です。

先ほどからお見せしているスクショでは、「項目の取得」アクションをフロー内に用意していますが、実際には項目を取得する要求は実施されずに、静的な結果で指定した結果が返されます。

この設定だと、

{
  "ID": 1,
  "Title": "ABC"
}

が、bodyでは返されますね。

こんな感じに実際の出力結果としてはフィールドが足りなくとも出力を指定することが可能です。
テストを行うときは必要最低限の出力結果の指定でいいですね。

おわりに

こんな感じでPower Automateでもテスト(デバッグ)を行うことが可能です。

Power AutomateにはPower Appsと異なり、バージョンや公開中の概念がないので、公開する前にある程度テストしておいてバグがないようにしておきたいですね。(バージョンはどこかで今後のアプデでつける予定とか言っていた気がしますが。早く来て。)

ご質問や指摘などはコメントなどでお願いしますー


スポンサードリンク