---
title: Power Apps でテストをしてみる
tags:  #power apps #power platform #jppc2022  
author: [コルネ](https://www.docswell.com/user/korune)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/GJWL83PQE2.jpg?width=480
description: Japan Power Platform Conference 2022にて登壇した際の登壇資料です。 Power AppsのキャンバスアプリでのTest Studioと監視(モニター)機能について纏めています。 https://powerplatformconf.connpass.com/event/245996/
published: October 18, 22
canonical: https://www.docswell.com/s/korune/KEGJ8Z-2022-10-18-203511
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/GJWL83PQE2.jpg)

2022


# Page. 2

![Page Image](https://bcdn.docswell.com/page/4EZM8VK3J3.jpg)

2022
Power Appsで
テストしてみる
@koruneko32767


# Page. 3

![Page Image](https://bcdn.docswell.com/page/Y76NP5QZ7V.jpg)

@koruneko32767
コルネの進捗や備忘録が記されたなにか
Korune Ch. コルネ - YouTube
2022


# Page. 4

![Page Image](https://bcdn.docswell.com/page/G755KYR974.jpg)

2022


# Page. 5

![Page Image](https://bcdn.docswell.com/page/9J2NWGD5ER.jpg)

アプリの重要度やアプリの規模によってはきちんとアプリのテストをして事前にバグを
潰し、またアプリの動作に掛かっている処理時間などを分析してアプリのパフォーマンス向上に努める
Test Studio 監視(モニター)機能
この資料ではPower AppsのTest Studioと監視(モニター)機能について
説明しているよ！
【免責事項】
機能の検証は2022年10月上旬時点のバージョンで行っています。
充分に検証を行っていますが、内容に誤りがありましたらご連絡いた
だけますと幸いです。
2022


# Page. 6

![Page Image](https://bcdn.docswell.com/page/DEYPLV26EM.jpg)

アプリが想定通りに機能することを検証するためのプロセス
アプリの品質を確認するために役立
てられています
手動でのテストでは今後のアプリ改修に大きな影響を与えてしまう可能性
重要なアプリやよく使われるアプリなんかは
テストするようにしたほうがいいね！
中でも更新がよくあるアプリなんかはテスト
を自動化して工数を削減したいね！
Test Studio
開発
テスト
リリース
テストは改修の度に発生
手動でのテストはコストがかかりミスが
発生する恐れあり
2022
開発
テスト
リリース
テストを自動化することでコスト削減！
人為ミスによるバグを防げる！


# Page. 7

![Page Image](https://bcdn.docswell.com/page/VJN54MW178.jpg)

アクションのこと
アプリ作成時に利用する式の他、テスト用に用意されたPower Fx
テストステップと呼ばれる一連のアクションで構成
テストケースを整理、グループ化するために利用
テストの検証結果によって予想される結果を設定
参考: テスト スタジオの用語
2022


# Page. 8

![Page Image](https://bcdn.docswell.com/page/YE9YQNXYJ3.jpg)

設定より数式レベルのエラー管理をオンに設定
2022


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GE86GK2K7D.jpg)

キャンバスアプリを作成するときと同じような操作感で
操作が可能だよ。
録音(Record)はPower Automate Desktopで操作を記録し
てステップを作成するイメージだね！
2022


# Page. 10

![Page Image](https://bcdn.docswell.com/page/LEL9GZ2PJR.jpg)

録音(Record)機能を用いて実際の操作からス
テップを生成
現在公開中のバージョンが表示
2022


# Page. 11

![Page Image](https://bcdn.docswell.com/page/4JMZQV82EW.jpg)

左のペインに実施したStepが記録
この画面では記録されたステップの式を確認、編集す
ることはできないよ。
もし操作をミスした場合は「キャンセル」を選択して、
最初からやり直そう。
もちろん、後からステップの式を修正することで対応
することも可能だよ。
2022


# Page. 12

![Page Image](https://bcdn.docswell.com/page/PJR6825579.jpg)

記録された数式は選択することで編集することも可能
2022


# Page. 13

![Page Image](https://bcdn.docswell.com/page/PEXM8DKX7X.jpg)

アクションの入力候補はもちろんコントロール
の入力候補もキャンバスアプリで関数を入力す
るときのように利用できるよ！
2022


# Page. 14

![Page Image](https://bcdn.docswell.com/page/3EKGKX59JD.jpg)

再生を行う前にはアプリを公開する必要がある
「再生」に成功すると画面が入力されたね！
2022


# Page. 15

![Page Image](https://bcdn.docswell.com/page/L73NZ5K975.jpg)

テストの検証結果によって予想される結果を設定
Assert関数
Assert関数のようにTest Studioように用意された関数もあるんだね！
Assert関数は
Assert([ テストを評価する式], [ エラー時のメッセージ(Option)])
のように利用するよ。
2022


# Page. 16

![Page Image](https://bcdn.docswell.com/page/87DWRD38JG.jpg)

Assert(DSmyCartCntLbl.Text = &quot;1&quot;, $&quot;DSmyCartCntLbl.Text: {DSmyCartCntLbl.Text}&quot;)
テストアサーションで失敗した場合は左の画像ようになるよ。
後続のステップは実行されず、エラー時のメッセージに設定した
ようなメッセージが表示されていることが確認できるね。
2022


# Page. 17

![Page Image](https://bcdn.docswell.com/page/VJP9WX4WE8.jpg)

CountIf(
LSListItemGallery.AllItems,
ID in Search(RecommendedBooks, “Power”, &quot;Title&quot;).ID
) = CountIf(RecommendedBooks, “Power” in Title)
Test Studio上でも委任に警告が発生する
Test Studioからでもデータソースを参照することができるんだね！
2022


# Page. 18

![Page Image](https://bcdn.docswell.com/page/2EVM8LX9EQ.jpg)

Trace関数
Trace関数は
Trace([ トレースメッセージ], [ トレースレベル(Option)], [ カスタムデータを含むレコード(Option)])
のように利用するよ。
2022


# Page. 19

![Page Image](https://bcdn.docswell.com/page/57GG5XV47L.jpg)

変数を設定するにはSet関数を利用
Test Studio上ではUpdateContext関数は利用できない
Step内のアクションに設定する式はキャンバスアプリ同様、セミコロン(;)で区切ることで複数設定することが可能
Test Studio内でもSet関数を利用すれば変数を
宣言できるんだね！
変数にはもちろん計算結果を設定することも
可能だよ。
2022


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4EQXZ86R7P.jpg)

OnTestCaseStart
テストケース開始時に実行されます。
OnTestCaseComplete
テストケース終了時に実行されます。
OnTestSuiteComplete
テストスイート終了時に実行されます。
ここの設定を行うことでテストで使う変数の初期化やテスト結果の通知なんかができるようになるね！
TeamsやOutlookに通知するときは、コネクタを事前にアプリに追加しておく必要があるよ。
なお、ここの設定はTest Studio内のすべてのスイート/ケースで共通になるのでその点を意識しておく必要があるね。
2022


# Page. 21

![Page Image](https://bcdn.docswell.com/page/KJ46324Q71.jpg)

このテストのプロパティはすべてのテストで共通の設定となるので、
テストデータはリストなどにケースごとで作成して参照するように
するといいね！
現時点ではこのような書き方をすると委任に関する警告がでるみた
いです。
2022


# Page. 22

![Page Image](https://bcdn.docswell.com/page/LE1V1M4L7G.jpg)

テスト結果は例えば特定のチャネルに対して、TestCaseResultを
JSONに変換したものを渡してあげると、チーム内でテスト結果
の共有ができるようになるね！
もちろんカスタマイズしたメッセージを送るのもいいね。
2022


# Page. 23

![Page Image](https://bcdn.docswell.com/page/GEWL83XQ72.jpg)

テスト結果は例えば特定のチャネルに対して、TestSuiteResultを
JSONに変換したものを渡してあげると、チーム内でテスト結果
の共有ができるようになるね！(先ほどと同じ使い方だね)
TestCaseResultとTestSuiteResultとでは取得できる項目が異なり、
OnTestCaseCompleteとOnTestSuiteCompleteとでは実行される
タイミングがそれぞれ異なるので、違いを理解してつかいわけ
られるようになろう。
2022


# Page. 24

![Page Image](https://bcdn.docswell.com/page/47ZM8V63E3.jpg)

Test Studioをわざわざ立ち上げずともブラウザ上でテストを実行可能な
リンクを作成することが可能
「再生リンクのコピー」(と「再生」)は選択しているケース、またはスイートに対して実施
テストの実施が完了する前にテストを実行しているタブを閉じるとテストは
中断されます
AzureDevOpsの活用までいかずとも再生リンクを控えて開発メンバーで共有しておくこ
とで、アプリの全体公開前にアプリを簡単にテストしてデグレのチェックができるよう
になるね。
また作成した再生リンクはケース/スイートで固定なのでビルド及びリリースプロセスを
変更することなくテストを更新することができるよ！
※__PATestCaseIdや__PATestSuiteIdという内部IDで管理されているようです。
AzureDevOpsなどの継続的なビルドとリリースのパイプライン(CI/CD)にテストを
統合することができる
2022


# Page. 25

![Page Image](https://bcdn.docswell.com/page/YJ6NP52ZJV.jpg)

テスト スタジオ - ベスト プラクティス
すべてのテストを自動化するのは困難であり、テストの自動化に完全に依存することはお勧めしていません。
繰り返し作業
ビジネスに大きな影響
かなりの時間や労力を要する
複数のテストケースに分割することをお勧め
テストケース内で設定したテストアサーションのうち1つでも失敗すると、後続のStepが実
施されず他の機能がテストされない
前のテストケースが失敗したかどうかに関係なく他の機能をテ
ストできます
2022


# Page. 26

![Page Image](https://bcdn.docswell.com/page/GJ55KY29J4.jpg)

各Stepのアクションには複数の式を設定することができますが、1つまで
どこで失敗したを特定するのが困難
各テストケースには最低でも1つ、テストアサーションによる予想されるテスト結果を用意
類似するテストケースは同じテス
トスイートに纏めてグループ化や分類
後から見返したときにわかりや
すいようにきちんと説明を記載
すべてのケースを自動化するのがよいわけではないんだね！
一般的なテストでも、テストを自動化しても手動テストを一切しなくなるわけじゃないんだ。
これら5つの考慮事項を考慮してテストを作成するようと今後のアップデートでの影響も受けに
くいアプリ開発のサイクルを作成できるかもしれないね。
2022


# Page. 27

![Page Image](https://bcdn.docswell.com/page/9E2NWG457R.jpg)

私見を交えた
現時点の技術では手動テストが
なくなるようなことはありません
テストを
自動化したからといって、すべての手動テストがなくなるわけではない
テストの自動化は初期コストが手動テストに比べて高くなります
テストの自動化はコスト削
減だけではありません
不具合の早期発見が可能
2022
ヒューマンエラーによるミスを防ぐ


# Page. 28

![Page Image](https://bcdn.docswell.com/page/D7YPLVM67M.jpg)

テスト観点を洗い出す
テストをするための項目を纏める行為
テストタイプ
機能テスト
テスト区分
画面表示
カテゴリ
レイアウト
セキュリティテスト
権限
手動
レイアウト配置
手動
文字
自動
表示/非表示
自動
項目入力
検索結果のフィルタ
自動
画面遷移
手動による画面遷移
自動
自動による画面遷移
自動
閲覧
手動
書き込み
手動
データソース
※1
2022
テスト自動？手動？ *1
ヘッダー
画面項目
画面操作
観点


# Page. 29

![Page Image](https://bcdn.docswell.com/page/VEN54M31J8.jpg)

テストスタジオ - 既知の制限
たまに発生したりしなかったり？で再現性が
よくわからない(そこまで検証していない)です
2022


# Page. 30

![Page Image](https://bcdn.docswell.com/page/Y79YQN9YE3.jpg)

監視(モニター)機能
問題を診断およびトラブルシュー
ティングする機能
キャンバスアプリ モデル駆動型アプリ
アプリを開発しながらイベントのログを表示
実行時に公開されたアプリを監視
アプリの動作を理解して改善す
るためのその他主要なアクションを監視
今回はキャンバスアプリでのモニター機能についてお話しするよ。
2022


# Page. 31

![Page Image](https://bcdn.docswell.com/page/G786GK9KJD.jpg)

アプリのデバッグや診断に役立ち、よりアプリの品質を高めることに役立ちます
その操作でアプリ上でなにが実行されているかという
アプリの詳細を確認
アプリに含まれるイベントや数式がどのように機能し、どの程度の処理時間が発生しているかをよりよく理解
アプリのパフォーマンスを向上
エラーや問題を特定
モニター機能を利用することで、アプリ内でどのようなアクションが実施されているかや、
そのアクションの実行時間や実行結果などを確認することができるようになるんだよ！
モニター機能は実行ログを提示してくれるだけなので、アプリのパフォーマンス向上のため
にはそこからさらにアプリの改修などのアクションが必要になってくるよ。
2022


# Page. 32

![Page Image](https://bcdn.docswell.com/page/L7L9GZWPER.jpg)

2022


# Page. 33

![Page Image](https://bcdn.docswell.com/page/4EMZQV927W.jpg)

2022


# Page. 34

![Page Image](https://bcdn.docswell.com/page/PER682G5J9.jpg)

公開されたアプリ
2022
開発中のアプリ


# Page. 35

![Page Image](https://bcdn.docswell.com/page/P7XM8DXXJX.jpg)

列名
内容
ID
イベントのシーケンス番号です。
時刻
イベントが発生した時刻。
カテゴリ
ネットワーク などのイベントのタイプ。
操作
アプリ内の要求の結果の内部操作名。 例えば、createRow は Patch 関数からの操作名です。
結果
ステータス コードのテキスト説明。 たとえば、429 ステータスは結果列に &quot;エラー&quot; として表示されます。 行の色は、エラーや警
告をすばやく識別するのにも役立ちます。
結果情報
エラー コードと結果の詳細な翻訳。 たとえば、429 ステータス コードはこの列に &quot;要求が多すぎます&quot; と表示されます。
状況
ネットワーク要求の HTTP ステータス コード。 たとえば、2XX コードは成功した要求を表し、4XX コードはエラーを表します。
期間
期間は主にアプリのネットワーク通話のパフォーマンスを理解するために使用できますが、イベントの種類によっても異なります。
たとえば、ネットワーク要求の場合、期間は要求が送信されて応答が受信されるまでにかかる時間です。
データ ソース
発生したイベント操作によってアクセスされるデータ ソースの名前 (たとえば、Microsoft Dataverse テーブル)。
コントロール
このイベントに関連付けられているコントロール名です
プロパティ
発生したイベントのアクティブなコントロール プロパティ。
応答サイズ
ネットワーク要求イベントの場合、送信者からアプリに受信した応答のサイズをバイト単位で表します。
2022


# Page. 36

![Page Image](https://bcdn.docswell.com/page/37KGKXW9ED.jpg)

2022


# Page. 37

![Page Image](https://bcdn.docswell.com/page/LJ3NZ519J5.jpg)

プロパティの表示例
2022


# Page. 38

![Page Image](https://bcdn.docswell.com/page/8JDWRDX8EG.jpg)

モニター画面を開いた状態でアプリの「アプリのプレビュー(F5)」によりア
プリの操作
現在開発中のアプリに対してモニターが実施
操作
開いていたモニター画面にアクションのモニターが表示
モニター画面を開いて「公開したアプリの再生」により自身でアプリの
「ユーザー接続」により、指定したユーザーによりアプリの操作
公開されたアプリに対してのモニターが実施
開いていたモニター画面にアクションのモニターが表示
モニター機能は開発中のアプリに対して実施する場合と、公開されたアプリに対して
実施する場合とで利用できる機能が異なるのでその点を意識するようにしよう。
公開されたアプリに対してのモニター機能にある「ユーザー接続」によるモニターの
実施は、アプリ利用者から何かしらの問い合わせがあった際に、都度詳細な実行方法
をヒアリングするのではなく、実際に操作してもらうことでモニターが実施できるの
で、便利な機能だね！
2022


# Page. 39

![Page Image](https://bcdn.docswell.com/page/VEP9WXPW78.jpg)

公開されたアプリでも「公開されたアプリのデバッグ」をオンにすることで、特定のアクションの式を確認することができるよ！
ただしこの機能を有効にしてしまうと、アプリを利用しているすべてのユーザーに対して悪影響を及ぼしてしまいます。
悪影響を最小限に抑えるためには、公開されたアプリでのアクション式を確認する必要がなくなったらこの機能をオフにします。
2022


# Page. 40

![Page Image](https://bcdn.docswell.com/page/27VM8L297Q.jpg)

検証不足な点が多々見られます
複数個開いた場合、すべてのセッションでモニターが取得
アプリのチェックのランタイムエラーからも確認できる
OnSelectに設定してあるアクションが実行されない場合があります
もう一度対象のコントロールを選択
私のやり方が悪いのか。。。
問題の特定や再現がうまくできませんでした。
2022


# Page. 41

![Page Image](https://bcdn.docswell.com/page/5JGG5XR4JL.jpg)

非公式
実業務で利用する場合は自己責任
Test Studioの再生リンク
https://apps.powerapps.com/play/[App ID]?tenantId=[Tenant ID]&amp;[__PATestSuiteId or __PATestCaseId]=[Suite ID or Case
ID]&amp;source=testStudioLink
モニターの再生リンク
https://apps.powerapps.com/play/e/[Enviroment ID]/a/[App ID]?tenantId=[Tenant ID]&amp;source=portal&amp;screenColor=[Screen
Color]&amp;mep=https%3A%2F%2[不明].gateway.prod.island.powerapps.com%2F[Live Versiom]&amp;mjt=[不明]&amp;mts=play
https://apps.powerapps.com/play/e/[Enviroment ID]/a/[App ID]?tenantId=[Tenant ID] &amp;[__PATestSuiteId or __PATestCaseId]=[Suite ID or
Case ID]&amp;source=portal&amp;screenColor=[Screen Color]&amp;mep=https%3A%2F%2[不明].gateway.prod.island.powerapps.com%2F[Live
Versiom]&amp;mjt=[不明]&amp;mts=play
2022


# Page. 42

![Page Image](https://bcdn.docswell.com/page/47QXZ8VRJP.jpg)

Test Studio の概要
Test Studio の操作
モニターの概要
モニターでキャンバス アプリをデバッグする
高度なモニタリングの概要
モニターを使用した共同トラブルシューティング
2022


