注意
プレビュー機能は運用環境での使用を想定しておらず、機能が制限されている可能性があります。 これらの機能を公式リリースの前に使用できるようにすることで、顧客が事前にアクセスし、そこからフィードバックを得ることができます。
Learning Playground を利用して、このガイドに記載されている機能を実際に試すことができます。
Power Fx とは
Microsoft Power Fx は、スプレッドシートのような数式に基づくローコードの汎用プログラミング言語です。 これは型指定された宣言型の関数型言語であり、必要に応じて命令型ロジックと状態管理を利用できます。 Excel からの系譜により、初心者から経験豊富な開発者まで、幅広いユーザーが利用しやすくなっています。
高度な Power Fx シナリオ
Power Fx に既に慣れている場合、高度なシナリオに飛び込むことで、アプリケーションの機能と効率を大幅に向上させることができます。 ここでは、いくつかの高度なシナリオと、それらが重要な理由を示します。
カスタム関数の作成: カスタム関数を作成すると、開発者は複雑なロジックを再利用可能なコンポーネントにカプセル化できます。 このアプローチは、開発プロセスを簡素化するだけでなく、一貫性を確保し、エラーの可能性を減らします。 カスタム関数は、特定のビジネスニーズに合わせて調整できるため、テストがより強力で柔軟になります。
外部データ ソースとの統合: 外部データ ソースと Power Fx を統合すると、テストでデータベースから Web サービスまで、さまざまなデータを操作できます。 この統合により、リアルタイムのデータアクセスと更新を提供することで、アプリケーションの機能を強化できます。 また、変化するデータに適応できる、より動的で応答性の高いテストも可能になります。
大規模なテストのパフォーマンスの最適化: テストの複雑さと規模が大きくなるにつれて、パフォーマンスの最適化が重要になります。 これらの最適化には、効率的なデータ処理や、パフォーマンス向上のための Power Fx の組み込み関数の使用などが含まれる場合があります。 これらの最適化により、大規模なデータセットや複雑なロジックでも、テストの応答性と効率性が維持されます。
拡張モデル
Test Engine Power Fx 拡張モデルは、その多くの魅力的な機能の 1 つです。 カスタム関数とアクションを使用して言語を拡張し、さまざまなシナリオに高度に適応させることができます。 機能拡張モデルのいくつかの重要な側面を次に示します。
既に持っているスキルを再利用する: Power Fx の機能拡張モデルを使用すると、 Power Fx の既存のスキルを C# などの他のプログラミング言語でも使用できます。 このアプローチを使用すると、知識と経験を Power Fx ベースのテストに取り込むことができ、強力でカスタマイズされたソリューションを簡単に作成できます。
既存のライブラリと機能の再利用を許可する: 機能拡張モデルを使用すると、既存のライブラリと機能を Power Fx に統合できます。 再利用により、開発者は実証済みのコードを再利用でき、開発時間を短縮して信頼性を高めることができます。 既存のライブラリを組み込むことで、車輪を再発明することなく Power Fx アプリケーションの機能を強化できます。
関数のユーザーに複雑さをカプセル化するモデルを提供する: 機能拡張モデルの大きな利点の 1 つは、複雑さをカプセル化できることです。 作成者と開発者は、基になるロジックの複雑な詳細を非表示にするカスタム関数を作成して、エンドユーザーにシンプルでユーザーフレンドリーなインターフェイスを提供できます。 抽象化により、誰もが高度な機能を簡単に使えるようになり、その背後にある複雑さを理解する必要がなくなります。
コラボレーションと一貫性の強化: チームは、異なるプロジェクト間で共有および再利用できる、一貫性のある一連のカスタム関数とアクションを作成できます。 共通
testSettings.yamlファイルを使用すると、コラボレーションが促進され、ベスト プラクティスが確実に守られるため、より堅牢で保守可能なアプリケーションが実現します。外部システムとの統合の促進: 拡張モデルにより、外部システムやサービスとのシームレスな統合が可能になります。 つまり、アプリケーションをさまざまなデータ ソースや API に接続して Power Fx 機能を強化し、リアルタイムのデータ アクセスを提供できます。
高度なシナリオのサポート: 機能拡張モデルは、ドメイン固有言語やカスタム ワークフローの作成など、高度なシナリオをサポートするように設計されています。 この柔軟性により、さまざまな業界やユースケースに合わせて Power Fx を固有のニーズに適応させることができます。
開発者または上級作成者は、機能拡張モデルを理解して使用すると、Power Fx を使用して、より強力で柔軟性があり、ユーザー フレンドリーなアプリケーションを作成できます。 このモデルは、言語の機能を強化するだけでなく、より幅広いユーザーにとって言語をよりアクセス可能にし、価値のあるものにします。
ユーザー定義型
Power Apps Test Engine のユーザー定義型 (UDT) を使用すると、テスト計画内で使用できるカスタム データ構造を定義できます。 この機能により、特定のテストニーズに合わせた複雑なデータ型を作成できるため、テストケースの柔軟性と再利用性が向上します。
UDT 例
次の例は、testSettings.yaml ファイルで UDT を定義して使用する方法を示しています。
powerFxTestTypes:
- name: ControlName
value: |
{ControlName: Text}
- name: Options
value: |
[{Name: Text, Value: Number}]
UDTの例の説明
powerFxTestTypes セクションでは、次の 2 つの新しい型、ControlName と Options が定義されています。
-
ControlNameは、単一のプロパティControlNameを持つ型Textの単純型です。 -
Optionsはより複雑な型で、それぞれがName(型Text) とValue(型Number) を持つオブジェクトのリストを表します。
テスト ケース内でこれらの型を使用して、変数を定義し、そのプロパティを検証できます。 たとえば、Options 型の変数を設定し、期待どおりに Name と Value のペアが含まれていることを検証できます。
ユーザー定義関数
Power Apps Test Engine のユーザー定義関数 (UDF) を使用すると、テスト計画内で使用できるカスタム関数を定義できます。 この機能により、特定のテストニーズに合わせた複雑な関数を作成できるため、テストケースの柔軟性と再利用性が向上します。
UDF のメリット
- 再利用性: UDF を使用すると、複雑な関数を一度定義して、複数のテスト ケースで再利用できます。 これにより、冗長性が減り、テスト計画の一貫性が確保されます。
- 可読性: UDF を使用すると、テスト計画が読みやすくなり、保守が容易になります。 カスタム関数を定義することで、複雑なロジックをカプセル化し、テストケースをより理解しやすくすることができます。
- 柔軟性: UDF は、特定のテスト要件に適合するカスタム関数を柔軟に作成できます。 このアプローチを使用すると、アプリケーションのニーズに合わせてテスト ケースを調整できます。
- 保守性: UDF を使用すると、関数の変更を 1 か所で行うことができるため、複数のテスト ケースを更新するために必要な労力が軽減されます。 これにより、テスト計画の保守性が向上します。
UDF 例
次の例は、testSettings.yaml ファイルで UDF を定義して使用する方法を示しています。
testFunctions:
- description: Wait until control is visible using Document Object Model (DOM) selector
code: |
WaitUntilVisible(control: Text): Void =
Preview.PlaywrightAction(Concatenate("//div[@data-id='", control, "']"), "wait");
- description: Get the options for a control using Power Fx control from Model Driven App (MDA)
code: |
GetOptions(control: ControlName): Options =
Preview.GetOptions(control);
UDF の例の説明
testFunctions セクションでは、次の 2 つの新しい関数が定義されています:
-
WaitUntilVisibleは、control型のTextパラメーターを受け取り、DOM セレクターを使用して指定されたコントロールが表示されるまで待機します。 -
GetOptionsは、control型のControlNameパラメーターを受け取り、モデル駆動型アプリ (MDA) からの Power Fx を使用して指定されたコントロールのオプションを返します。
これらの関数をテストケースで使用して、特定のアクションを実行したり、データを取得したりします。 たとえば、WaitUntilVisible を使用して、コントロールを操作する前にコントロールが表示されていることを確認したり、GetOptions コントロールで使用できるオプションを取得して検証したりできます。