注
プレビュー機能は運用環境での使用を想定しておらず、機能が制限されている可能性があります。 これらの機能は、お客様が早期にアクセスしてフィードバックを提供できるように、公式リリースの前に利用できます。
テストは、Power Fx と同じガイドラインに従って YAML で定義されます。 Power Fx YAML 数式文法の詳細を確認します。
詳細な例については、 PowerApps-TestEngine/samples フォルダーを参照してください。
YAML スキーマ定義
| プロパティ | Description |
|---|---|
| testSuite | 1 つのテスト スイート、テスト スイート内のテスト ケース、およびテスト スイートに固有の構成を定義します |
| testSettings | 複数のテスト ケースで再利用されるテスト スイートの設定を定義します |
| environmentVariables | アプリが異なる環境に移植されるときに変更される可能性がある変数を定義します。 |
testSuite
1 つのテストを定義するために使用されます。
| プロパティ | タイプ | Description |
|---|---|---|
persona |
文字列 | 必須。 テストを実行するためにログインしているユーザー。 [ユーザー] セクションに一覧表示されているペルソナと一致する必要があります。 |
testCases |
TestCases | 必須。 テスト スイートのテスト ケースを定義します。 テスト スイートに含まれるテスト ケースは順番に実行されます。 アプリの状態は、スイート内のすべてのテスト ケースで保持されます。 |
testSuiteName |
文字列 | 必須。 テスト スイートの名前。 |
appLogicalName |
文字列 | Optional. 起動するアプリの論理名。 溶液から得ることができる。 キャンバス アプリの場合は、ソリューションに追加して取得する必要があります。 テスト計画でアプリケーションを識別する方法を参照してください |
appId |
Guid | Optional. 起動するアプリの ID。 必須で、 appLogicalName が存在しない場合にのみ使用されます。 アプリ ID は、ソリューションに含まれていないキャンバス アプリにのみ使用する必要があります。
テスト計画でアプリケーションを識別する方法を参照してください |
networkRequestMocks |
NetworkRequestMocks | Optional. テストに必要なネットワーク要求モックを定義します。 |
onTestCaseComplete |
文字列 | Optional. ケースの実行が完了した後、スイート内のすべてのテスト ケースに対してトリガーする必要があるステップを定義します。 |
onTestCaseStart |
文字列 | Optional. ケースの実行を開始する前に、スイート内のすべてのテスト ケースに対してトリガーする必要があるステップを定義します。 |
onTestSuiteComplete |
文字列 | Optional. スイートの実行が完了した後にトリガーする必要があるステップを定義します。 |
testSuiteDescription |
文字列 | Optional. 追加の情報では、テスト スイートの動作について説明します。 |
テスト計画でアプリケーションを識別する方法
アプリケーションを識別するには、 appLogicalName または appId を設定する必要があります。 どのアプリを使用するかは、アプリがソリューション内で定義されているかどうかによって異なります。
ソリューション ベースのアプリ (推奨)
ソリューション内でアプリを定義すると、テストは環境間で移植可能なままになります。
appLogicalName プロパティを設定して、アプリがソリューション ベースであることを示します。
アプリの論理名を見つけるには:
- Power Apps でアプリを含むソリューションを開く
- 一覧の 名前 ( 表示名ではありません) を使用します。 名前の値には、ソリューション発行元のカスタマイズ プレフィックスが含まれます。
スタンドアロン アプリ
ソリューション内でアプリが定義されていない場合は、 appId プロパティを使用する必要があります。
アプリの ID を見つけるには:
- Power Apps の一覧でアプリを見つける
- 詳細を開き、アプリ ID GUID を書き留めます
NetworkRequestMocks
| プロパティ | タイプ | Description |
|---|---|---|
requestURL |
文字列 | 必須。 モック応答を取得する要求 URL。 Glob パターンが受け入れられます |
responseDataFile |
文字列 | 必須。 モック応答コンテンツを含むテキスト ファイル。 このファイル内のすべてのテキストが応答として読み取られます |
headers |
アレイ | Optional. [fieldName: fieldValue] の形式の要求内のヘッダー フィールドの一覧 |
method |
文字列 | Optional. 要求のメソッド (GET、POST など) |
requestBodyFile |
文字列 | Optional. 要求本文を含むテキスト ファイル。 このファイル内のすべてのテキストが要求本文として読み取られます |
省略可能なプロパティの場合、値が指定されていない場合、ルーティングはすべてのプロパティに適用されます。 たとえば、 method が null の場合、他のプロパティがすべて一致する限り、メソッドが何であれモック応答を返します。
Sharepoint/Dataverse/Connector アプリの場合、 requestURL と method はすべての要求で同じにすることができます。
x-ms-request-method ヘッダー内の x-ms-request-url は、異なる要求を識別するために、その場合に構成する必要があります。
TestCases
| プロパティ | タイプ | Description |
|---|---|---|
testCaseName |
文字列 | 必須。 成功と失敗の報告に使用されるテスト ケースの名前 |
testSteps |
TestSteps | 必須。 テスト ケースを実行するために必要な手順を説明する Power Fx 関数のセット。 TestSteps の例を参照してください |
testCaseDescription |
いいえ | Optional. テスト ケースの動作に関する追加情報 |
TestSteps
-
TestStepsは、このフレームワークで定義されている既存の テスト エンジン Power Fx 関数 または 特定のテスト関数 を使用できます。 - 値はパイプ 記号 (
|) で始まり、複数行の YAML 式の後に等号 (=) を付けて Power Fx 式であることを示す必要があります。 - 関数はセミコロン (
;) で区切る必要があります。 - コメントは使用でき、二重円記号 (
//) で始まる必要があります。
TestSteps の例
testCases:
- testCaseName: Fill in a city name and do the search
testSteps: |
= Screenshot("connectorapp_loaded.png");
SetProperty(TextInput1.Text, "Atlanta");
Select(Button1);
Assert(Label4.Text = "You are seeing the mock response", "Validate the output is from the mock");
Screenshot("connectorapp_end.png");
testSettings
テスト計画のテストの設定を定義するために使用されます。
| プロパティ | タイプ | Description |
|---|---|---|
browserConfigurations |
BrowserConfiguration[] | 必須。 テストするブラウザー構成の一覧。 少なくとも 1 つのブラウザーを指定する必要があります。 |
extensionModules |
extensionModules | Optional. 有効にする拡張機能に関するデータが含まれています。 |
filePath |
文字列 | Optional. すべてのテスト設定を含む個別の yaml ファイルへのファイル パス。 指定した場合、テスト 計画内のすべてのテスト設定が オーバーライド されます。 |
headless |
ブーリアン | Optional. 既定値は True です。 false に設定すると、テストの実行中にブラウザーが表示されます。 |
locale |
文字列 | Optional. テスト ケースまたはテスト ステップが記述されるロケール/カルチャ構文。 指定しない場合、 CultureInfo.CurrentCulture はテスト ステップの解析に既定でロケールに使用されます。
地域と言語に関する考慮事項を参照してください |
recordVideo |
ブーリアン | Optional. 既定値は false です。 true に設定すると、テストのビデオ記録がキャプチャされます。 |
timeout |
整数 | Optional. タイムアウト値 (ミリ秒単位)。 既定値は 30,000 ミリ秒 (30 秒) です。 いずれかの操作にタイムアウト制限より長い時間がかかる場合は、テストが失敗して終了します。 |
powerFxTestTypes |
name
value 双 |
Optional. 型名と Power Fx 型定義の一覧。 powerFxTestTypes の例を参照してください |
testFunctions |
description
code 双 |
Optional. 説明と Power Fx 関数の定義の一覧。 testFunctions の例を参照してください |
extensionModules
有効にする拡張機能に関するデータが含まれています。
| プロパティ | タイプ | Description |
|---|---|---|
enable |
ブール (bool) | 拡張モジュールが有効かどうか。 |
allowPowerFxNamespaces |
list | 有効にする PowerFx 名前空間の一覧。 |
parameters |
キー値のペア | 拡張モジュールを制御する値を持つプロパティ。 現時点では、これに対して有効なのはブール enableDataverseFunctions パラメーターのみです。 |
この例では、PowerFx Preview 名前空間を有効にする方法を示します。
testSettings:
extensionModules:
enable: true
allowPowerFxNamespaces:
- Preview
地域と言語に関する考慮事項
テスト エンジンでは、小数点区切り記号やリスト区切り記号など、さまざまな言語と地域の設定がサポートされています。
testSettings.locale プロパティは、これらの動作を制御します。 詳細については、「 Microsoft Power Fx のグローバル サポート」を参照してください。
PowerApps-TestEngine GitHub リポジトリで次のサンプル構成を確認します。
powerFxTestTypes の例
powerFxTestTypes:
- name: ControlName
value: |
{ControlName: Text}
- name: Options
value: |
[{Name: Text, Value: Number}]
この例では、テスト ケースで使用するカスタム Power Fx の種類を定義する方法を示します。
ControlName型は単一のText フィールドを持つレコードとして定義され、Options型はレコードのテーブルとして定義され、それぞれにName型のTextフィールドとValue型のNumberフィールドが含まれます。 カスタム型を使用して、より複雑で具体的なテスト シナリオを作成し、テスト定義の柔軟性と能力を高めることができます。
testFunctions の例
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);
これらのテスト関数の例では、テスト ケースで使用するカスタム Power Fx 関数を定義する方法を示します。
WaitUntilVisible関数は、DOM セレクターを使用して、Playwright アクションを使用して、指定されたコントロールが表示されるまで待機します。 GetOptions 関数は、Power Fx コントロールを使用して 、モデル 駆動型アプリ (MDA) から指定されたコントロールのオプションを取得します。 これらのカスタム関数により、テスト定義の柔軟性と能力が向上し、より複雑で具体的なテスト シナリオが可能になります。
BrowserConfiguration
すべての testSettings には 、少なくとも 1 つの BrowserConfigurationが必要です。
| プロパティ | タイプ | Description |
|---|---|---|
browser |
文字列 | 必須。 テスト時に起動するブラウザー。 Playwright でサポートされているブラウザーと一致する必要があります。 |
device |
文字列 | Optional. ブラウザーの起動時にエミュレートするデバイス。 Playwright でサポートされているデバイスと一致する必要があります |
screenHeight |
整数 | Optional. ブラウザーを起動するときに使用する画面の高さ。 指定する場合は、 screenWidth も指定する必要があります。 |
screenWidth |
整数 | Optional. ブラウザーを起動するときに使用する画面の幅。 指定する場合は、 screenHeight も指定する必要があります。 |
environmentVariables
さまざまな種類の値を環境の値として格納できますが、最も一般的なケースは、ユーザーの一覧に資格情報を格納 することです。
users
資格情報が安全な方法で保存されるように、テスト定義は personaNameを使用してユーザーを参照します。 テスト 計画ファイルへの資格情報の格納はサポートされていません。
例:
environmentVariables:
- users:
- personaName: "User1"
emailKey: "user1Email"
- personaName: "User2"
emailKey: "user2Email"
personaNameは、テストを実行するユーザーを示すために、テスト定義の一部として使用されます。
サポートされている資格情報のストレージ メカニズム
資格情報を環境変数として格納するには、次のように設定できます。
# In PowerShell - replace variableName and variableValue with the correct values
$env:variableName = "variableValue"
YAML では、このユーザーの資格情報が環境変数に格納されていることを示すために、次の 2 つのプロパティを定義する必要があります。
-
emailKey: ユーザーの電子メールを格納するために使用される環境変数。
YAML の例:
- personaName: "User1"
emailKey: "user1Email"
YAML に基づいてユーザー資格情報を設定する PowerShell の例:
$env:user1Email = "someone@example.com"
こちらも参照ください
Power Apps テスト エンジンの概要 (プレビュー)
Power Apps Test Engine Power Fx 機能 (プレビュー)