Piezīmes
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt pierakstīties vai mainīt direktorijus.
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt mainīt direktorijus.
Piezīmes
Priekšskatījuma līdzekļi nav paredzēti komerciālai lietošanai, un to funkcionalitāte var būt ierobežota. Šie līdzekļi ir pieejami pirms oficiālā laidiena, lai klienti varētu priekšlaikus piekļūt līdzeklim un sniegt atsauksmes.
Microsoft Power Fx ir jaudīga zema koda valoda, ko izmanto Power Apps, un to var paplašināt, izmantojot C#, lai izveidotu pielāgotas testa funkcijas. Šajā rakstā ir paskaidrots, kā izveidot funkciju C# Power Fx test, nodrošinot nevainojamu pieredzi gan veidotājiem, gan izstrādātājiem.
Testa dzinēja paplašināmības modelis Power Apps "bez klintīm" nodrošina, ka lietotāji var paplašināt testa dzinēja iespējas Power Apps , nesastopoties ar šķēršļiem. Šis modelis ļauj izstrādātājiem izveidot pielāgotas funkcijas, izmantojot C#, kuras var integrēt Power Fx , lai apstrādātu sarežģītus scenārijus.
Testa dzinēja moduļi
Testa dzinēja moduļi iekšējam Power Fx testa motoram tiek veidoti, izmantojot paplašināmības modeli. Varat izmantot produkta kodu kā piemērus tam, kā var paplašināt Test Engine.
Piekrišanas dialoga piemērs
Tālāk ir sniegts funkcijas piemērs Power Fx , kas nodrošina koda struktūru, lai apstrādātu nosacītas piekrišanas dialoglodziņu audekla lietojumprogrammā.
Piekrišanas dialoglodziņš ir uzvedne, kas tiek parādīta lietotājiem un lūdz viņiem atļauju piekļūt noteiktiem resursiem vai veikt noteiktas darbības. Šis dialogs ir būtisks, lai saglabātu drošību un nodrošinātu, ka lietotāji ir informēti par darbībām, kas tiek veiktas viņu vārdā, un piekrīt tiem.
Piekrišanas dialoglodziņš ir svarīgs, jo tas palīdz novērst nesankcionētu piekļuvi un darbības. Tas nodrošina, ka lietotāji tiek informēti un sniedz nepārprotamu piekrišanu pirms jebkādu sensitīvu darbību veikšanas. Tas ir svarīgi scenārijos, kad lietojumprogrammai ir jāpiekļūst lietotāja datiem vai jāveic darbības, un šī nosacītā darbība var ietekmēt automatizētos testus.
Problēmas ar piekrišanas dialogiem testēšanā
Viens no izaicinājumiem ar piekrišanas dialogiem ir tas, ka viņi var padarīt testus nedeterministiskus. Uzvedne var tikt parādīta nosacīti, pamatojoties uz dažādiem faktoriem, piemēram, lietotāja atļaujām vai iepriekšējām mijiedarbībām. Šis nosacītais izskats var sarežģīt testēšanas procesu, jo testēšanas programmai šie dialogi ir pienācīgi jārīkojas.
Sarežģītības abstrakcija ar Power Fx
Power Fx palīdz abstrahēt sarežģītību, kas saistīta ar piekrišanas dialoga nosacītu gaidīšanu un savienojumu izveidi, ja nepieciešams. Veidotāji var izmantot Power Fx , lai definētu loģiku piekrišanas dialogu apstrādei vienkāršākā un intuitīvākā veidā.
Piemērs: piekrišanas dialoga apstrāde ar Power Fx
Tālāk ir sniegts piemērs, kā izmantot Power Fx piekrišanas dialoglodziņu pielāgotā lapā:
Preview.ConsentDialog(Table({Text: "Center of Excellence Setup Wizard"}))
Šajā piemērā funkcija pārbauda ConsentDialog , vai piekrišanas dialoglodziņš ir redzams. Ja tā ir, funkcija var atbildēt uz dialoglodziņu, kas apstiprina piekrišanu testa kontam. Kad dialogs ir apstrādāts, tiek izpildītas atlikušās pārbaudes darbības.
Arguments Table ļauj piekrišanas dialoga gaidīšanas procesam iziet, ja ir redzama etiķete ar norādīto tekstu.
Testa funkciju paplašināšana Power Fx , izmantojot C#
Šis piemērs ir strukturējuma koda paraugs, ko var izmantot kā sākumpunktu, lai pabeigtu šo piemēru:
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
using Microsoft.Extensions.Logging;
using Microsoft.Playwright;
using Microsoft.PowerApps.TestEngine.Config;
using Microsoft.PowerApps.TestEngine.TestInfra;
using Microsoft.PowerFx;
using Microsoft.PowerFx.Core.Utils;
using Microsoft.PowerFx.Types;
namespace testengine.module
{
/// <summary>
/// This will check the custom pages of a model driven app looking for a consent dialog
/// </summary>
public class ConsentDialogFunction : ReflectionFunction
{
private readonly ITestInfraFunctions _testInfraFunctions;
private readonly ITestState _testState;
private readonly ILogger _logger;
private static TableType SearchType = TableType.Empty()
.Add(new NamedFormulaType("Text", FormulaType.String, displayName: "Text"));
/// <summary>
/// Constructor: Initializes the function with necessary dependencies,
/// including ITestInfraFunctions, ITestState, and ILogger.
/// </summary>
/// <param name="testInfraFunctions">The test infrastructure functions.</param>
/// <param name="testState">The test state.</param>
/// <param name="logger">The logger instance.</param>
public ConsentDialogFunction(ITestInfraFunctions testInfraFunctions,
ITestState testState,
ILogger logger) : base(DPath.Root.Append(
new DName("Preview")),
"ConsentDialog",
FormulaType.Blank,
SearchType)
{
_testInfraFunctions = testInfraFunctions;
_testState = testState;
_logger = logger;
}
/// <summary>
/// Execute Method: Logs the execution and calls the ExecuteAsync
/// method to handle the consent dialog.
/// </summary>
/// <param name="searchFor">The table value to search for.</param>
/// <returns>A blank value.</returns>
public BlankValue Execute(TableValue searchFor)
{
_logger.LogInformation("------------------------------\n\n" +
"Executing ConsentDialog function.");
ExecuteAsync(searchFor).Wait();
return FormulaValue.NewBlank();
}
/// <summary>
/// ExecuteAsync Method: Retrieves the page context and handles the consent dialog with a timeout.
/// </summary>
/// <param name="searchFor">The table value to search for.</param>
/// <returns>A task representing the asynchronous operation.</returns>
private async Task ExecuteAsync(TableValue searchFor)
{
var page = _testInfraFunctions
.GetContext()
.Pages
.Where(p => p.Url.Contains("main.aspx"))
.First();
// ... IPage to handle consent dialog with timeout
}
}
}
ConsentDialogFunction piemēra skaidrojums
-
Nosaukumvieta un importēšana: importē nepieciešamās nosaukumvietas un definē
testengine.modulenosaukumtelpu. -
Klases definīcija: klase
ConsentDialogFunctionmanto no ReflectionFunction un definē pielāgoto funkcijuConsentDialog. -
Konstruktors: inicializē funkciju ar nepieciešamajām atkarībām, tostarp,
ITestInfraFunctionsITestStateun ILogger. -
Izpildes metode: reģistrē izpildi un izsauc metodi
ExecuteAsync, lai apstrādātu piekrišanas dialoglodziņu. - ExecuteAsync metode: izgūst lapas kontekstu un apstrādā piekrišanas dialoglodziņu ar taimautu.