다음을 통해 공유


Power Apps 테스트 엔진 Power Fx 함수(미리보기)

참고

프리뷰 기능은 생산용으로 만들어진 것이 아니므로 기능이 제한될 수 있습니다. 이런 기능은 공식 릴리스 전에 사용할 수 있으므로 고객이 조기에 액세스하고 피드백을 제공할 수 있습니다.

테스트 엔진은 다음과 같은 기존 PowerFx 함수를 사용합니다.

다음 기능은 테스트 엔진에서만 사용할 수 있습니다.

테스트 엔진은 다음과 같은 미리보기 기능을 제공합니다.

테스트 엔진 기능

이 기능은 테스트 엔진에서만 사용할 수 있습니다.

스크린샷

Screenshot(fileNameOfScreenshot)

이 기능은 현재 시점의 앱 스크린샷을 캡처합니다. 스크린샷 파일은 제공된 이름으로 테스트 출력 폴더에 저장됩니다.

참고

Jpeg 및 png 파일만 지원됩니다.

스크린샷 예시

Screenshot("buttonClicked.png")

Wait

Wait(Control, Property, Value)

이 함수는 컨트롤의 속성이 지정된 값과 같아질 때까지 기다립니다.

대기 예

Wait(Label1, "Text", "0")

미리보기 기능

다음 함수는 Power Fx Preview 네임스페이스의 Preview testSettings allowPowerFxNamespacesextensionModules 속성 목록에 추가하여 선택적으로 테스트에 포함될 수 있습니다. ...

참고

  • 미리보기 기능은 변경될 수 있습니다. 이러한 기능이 더 폭넓게 사용될 준비가 되면 TestEngine 네임스페이스 내에서 이동하는 것으로 간주됩니다.
  • 사용자 정의 함수를 사용하여 함수를 래핑하면 Preview 미리 보기 버전이 아닌 함수로의 마이그레이션이 더 쉬워집니다.
  • ParseJSON 함수를 사용하여 구문 분석할 수 있는 JSON 객체만 반환하는 모델을 만들 수 있습니다.

미리보기.AIExecutePrompt

Preview.AIExecutePrompt(Name, {Property: Type})

사용자 지정 AI Builder 프롬프트 를 호출하고 실행의 텍스트 결과를 얻습니다.

참고

이 기능의 가용성 및 구성에 대한 자세한 내용은 Dataverse AI 통합 섹션을 검토하세요.

이 함수의 사용에 대한 자세한 내용과 설명은 Preview.AIExecutePrompt를 사용하여 검토하세요. ...

Preview.AIExecutePrompt 예제

다음 예제에서는 매개변수 값이 Country인 Country Capital이라는 AI 프롬프트를 호출하고 모델 실행 시 단일 단어인 Paris가 반환되기를 기대합니다.

Assert("Paris" = Preview.AIExecutePrompt("Country Capital", { Country: "France" }).Text)

미리보기.ConsentDialog

Preview.ConsentDialog(Table({Text: Text}));

캔버스 애플리케이션 또는 모델 기반 애플리케이션 사용자 정의 페이지에 대한 동의 대화 상자를 확인할 때까지 기다리십시오.

Preview.ConsentDialog 예제

Preview.ConsentDialog(Table({Text: "Your Dialog Title"}));

미리보기.일시 중지

Preview.Pause()

테스트를 일시 중지하고 대화형 테스트를 실행 중인 경우 Playwright Inspector 를 표시합니다.

참고

알려진 문제: Preview.Pause 기능이 PAC 테스트 실행을 위한 검사기를 제대로 열지 않습니다.
설명: 해당 함수는 Preview.Pause 어떤 작업 중에 검사기를 열지 못했습니다. pac test run
해결 방법: 테스트 엔진의 오픈 소스 버전을 일시 중지 기능에 사용할 수 있습니다.

미리보기.일시 중지 예제

Preview.Pause()

미리보기.SelectControl

Preview.SelectControl(Control: ControlName, Index: Number)

문서 개체 모델을 사용하여 컨트롤 선택

Preview.SelectControl 예제

첫 번째 Button3 일치 항목을 선택하세요

Preview.SelectControl(Button3,1);

미리보기.극작가 액션

Preview.PlaywrightAction(Text, Text)

Playwright CSS 또는 XPath Locator를 사용하여 현재 페이지에서 작업을 실행합니다.

Preview.PlaywrightAction 예제

Preview.PlaywrightAction("//button", "click");
Preview.PlaywrightAction("//button", "exists");
Preview.PlaywrightAction("//button", "wait");

미리보기.PlaywrightActionValue

Preview.PlaywrightActionValue(Text, Text, Text)

Playwright CSS 또는 XPath Locator 를 사용하여 현재 페이지에서 작업을 실행합니다.

Preview.PlaywrightActionValue 예제

Preview.PlaywrightAction("//input[@data-id='1']", "fill", "Hello");

Preview.PlaywrightScript

Preview.PlaywrightScript(Text)

현재 페이지에서 C# 스크립트를 실행합니다.

참고

이 기능은 오픈 소스 버전의 Test Engine에서 디버그 빌드에만 구현되며 pac 테스트 실행에서는 구현되지 않습니다.

Preview.PlaywrightScript 예제

Preview.PlaywrightScript("sample.csx")

sample.csx 내용은 다음 코드와 유사합니다.

// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.

#r "Microsoft.Playwright.dll"
#r "Microsoft.Extensions.Logging.dll"
using Microsoft.Playwright;
using Microsoft.Extensions.Logging;
using System.Linq;
using System.Threading.Tasks;

public class PlaywrightScript {
    public static void Run(IBrowserContext context, ILogger logger) {
        Execute(context, logger).Wait();
    }

    public static async Task Execute(IBrowserContext context, ILogger logger) {
        var page = context.Pages.First();

        if ( page.Url == "about:blank" ) {
            var nextPage = context.Pages.Skip(1).First();
            await page.CloseAsync();
            page = nextPage;
        }

        foreach ( var frame in page.Frames ) {
            if ( await frame.Locator("button:has-text('Button')").CountAsync() > 0 ) {
                await frame.ClickAsync("button:has-text('Button')");
            }
        }
    }
}

미리보기.SimulateConnector

Preview.SimulateConnector({name: Text, then: Record})

Power Apps 에서 모든 Power Apps 커넥터 목록에서 찾은 커넥터 유형에 대한 호출이 이루어질 때

Preview.SimulateConnector 예제

Preview.SimulateConnector({
   name: "msnweather", 
   then: {responses: { 
      daily: { 
         day: { 
            summary: "You are seeing the mock response" }
            }
         }
      }
   })

미리보기.SimulateDataverse

Preview.SimulateDataverse({Action: Text, Entity: Text, Then: Table})

Preview.SimulateDataverse 예제

이 예에서는 논리적 이름 Dataverse 을 가진 엔터티 sample_combotable 를 쿼리하기 위해 호출할 때 Table 함수를 사용하여 레코드를 반환합니다.

Preview.SimulateDataverse({
    Action: "Query",
    Entity: "sample_combotable",
    Then: Table(
    {
        'sample_name': "Item 1",
        'sample_id': 3,
        'sample_combotableid': "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
        'createdon': "2024-12-02T17:52:45Z"
    },
    {
        'sample_name': "RR2",
        'sample_id': 4,
        'sample_combotableid': "bbbbbbbb-1111-2222-3333-cccccccccccc",
        'createdon': "2024-12-02T17:54:45Z"
    },
        {
        'sample_name': "RR3",
        'sample_id': 5,
        'sample_combotableid': "cccccccc-2222-3333-4444-dddddddddddd",
        'createdon': "2024-12-02T17:54:45Z"
    }
    )
});

Dataverse 테스트 엔진을 사용한 커넥터 시뮬레이션(미리 보기)