Skip to content

Commit

Permalink
Review edits
Browse files Browse the repository at this point in the history
  • Loading branch information
Grant-Archibald-MS committed Dec 14, 2024
1 parent 2db0666 commit a76c98e
Show file tree
Hide file tree
Showing 34 changed files with 807 additions and 36 deletions.
2 changes: 1 addition & 1 deletion context/deep-dive-testengine-layers.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Note: This deep dive does not include the common login process which is covered
| Layer | Description | Example |
|----------|-------------|---------|
| [Recorder](/powerfuldev-testing/discussion/test-authoring) | Provides the ability to author tests by starting a test session and observe use of Application, Connectors, Dataverse to generate recorded test steps using User Clicks/ Entry, Network Calls, Voice Annotations. | Select(Button1); Experimental.SimulateDataverse({Action:"", Entity: "", Then: Table({}) }) |
| Test Case Definition | A YAML file with a suite of tests, test steps as Power Fx, Test Settings and the user persona that the test case is related to. | Test Case Definition: [email protected], Browser Type (Chromium, Microsoft Edge...), onTestSuiteBegin
| Test Case Definition | A YAML file with a suite of tests, test steps as Power Fx, Test Settings and the user persona that the test case is related to. | Test Case Definition: `[email protected]`, Browser Type (Chromium, Microsoft Edge...), onTestSuiteBegin
| Test Steps | Power Fx statements that are used to define and abstract interaction with Power Platform components. They provide common Power Fx languages features and an extensibility model to allow interaction with different providers and to define Power Fx functions encapsulate test features. | SetProperty(Dropdown1.SelectedItems, Table(First(GalleryItems.Items)));<br/> Assert(CountRows(GalleryItems.Items)=1);
| [Test Providers](/powerfuldev-testing/context/test-engine-providers) | Responsible for providing data to and executing the actions expressed as Power Fx steps. Examples include Power Apps Canvas as Model Driven Applications and Power Automate. | Validate Test Ready, Execute JavaScript, Map Power Fx Data Request to Results from Test Interface
| Test Interfaces | Responsible for executing low level test integration with Web Pages for Power Apps and in memory unit test execution. Common examples include use of Browsers and Playwright to use JavaScript Object Model and the Document Object Model as a fallback. | IBrowserContext.GotoAsync(); <br/> IBrowserContext.RouteAsync(); <br/> IPage.EvalAsync();
Expand Down
2 changes: 1 addition & 1 deletion context/getting-started-technical.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ By taking these steps, you can leverage the full potential of low-code automated

| Role | Description |
|------|-------------|
| [Software Engineers](../roles-and-responsibilities/software-engineers.md) | Use Power Platform to augment their existing code-first skills as a productivity tool or contribute extensions or add-ons to help makers achieve more. |
| [Software Engineers](../roles-and-responsibilities/software-engineers.md) | Use Power Platform to augment their existing code-first skills as a productivity tool or contribute extensions or addons to help makers achieve more. |
| [Support Engineers](../roles-and-responsibilities/support-engineers.md) | Take ownership of low-code solutions to help them scale across the organization. They focus on the quality of low-code solutions and the ability to support and fix them. |

## Learning Path
Expand Down
3 changes: 2 additions & 1 deletion context/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,10 @@ feature_row:
url: /context/getting-started-technical
---


## Get Started Assessment

Welcome to site focused on low code testing of Power Platform using Test Engine. Use the assessment below to help you find the best place to start.

{% interactive_assessment getting-started.json %}

## Welcome
Expand Down
2 changes: 1 addition & 1 deletion context/security-testengine-authentication-changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ The reliance on environment variables for authentication posed significant risks

In response to these security concerns, the newer updates to the Test Engine have introduced a new storage state provider that integrates with the browser's storage state. This update allows for Multi-Factor Authentication, significantly enhancing the security of the authentication process. By leveraging the browser's storage state, the Test Engine can now support more secure and user-friendly authentication methods, aligning with Microsoft's Security Framework Initiative (SFI).

The integration with the browser's storage state enables the use of modern authentication mechanisms, such as OAuth and OpenID Connect, which support MFA. These mechanisms provide a more secure and seamless user experience by allowing users to authenticate through familiar and trusted interfaces. Overall it allows the use organization controlled settings to manage the lifetime of the created persistant login state.
The integration with the browser's storage state enables the use of modern authentication mechanisms, such as OAuth and OpenID Connect, which support MFA. These mechanisms provide a more secure and seamless user experience by allowing users to authenticate through familiar and trusted interfaces. Overall it allows the use organization controlled settings to manage the lifetime of the created persistent login state.

In conclusion, the shift from environment variable-based authentication to a storage state provider that supports Multi-Factor Authentication marks a significant improvement in the security posture of the Test Engine. This change not only addresses the inherent vulnerabilities of Basic authentication but also aligns with Microsoft's broader security recommendations and initiatives, ensuring a more secure and reliable authentication process for users.

Expand Down
4 changes: 2 additions & 2 deletions context/security-testengine-storage-state-deep-dive.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ The current logged-in Azure CLI session is used to obtain an access token to the
Further reading for readers unfamiliar with Azure CLI Login, Access Token and Dataverse security model:
1. [az login](https://learn.microsoft.com/cli/azure/reference-index?view=azure-cli-latest#az-login)
2. [az account get-access-token](https://learn.microsoft.com/cli/azure/account?view=azure-cli-latest#az-account-get-access-token) using Azure CLI to obtain access token. In this case it is used to obtain access token to integrate with Dataverse custom XML repository
3. [Microsoft.PowerPlatform.Dataverse.Client](https://www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client/) used to acess Custom XML Repository using the obtained access token
3. [Microsoft.PowerPlatform.Dataverse.Client](https://www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client/) used to access Custom XML Repository using the obtained access token
4. [Security concepts in Microsoft Dataverse](https://learn.microsoft.com/power-platform/admin/wp-security-cds) where using User or Team owned records.
5. [Granting permission to tables in Dataverse for Microsoft Teams](https://learn.microsoft.com/power-apps/teams/dataverse-for-teams-table-permissions)
6. [Record sharing](https://learn.microsoft.com/power-platform/admin/wp-security-cds#record-sharing) Individual records can be shared on a one-by-one basis with another user (interactive or application user).
Expand All @@ -171,7 +171,7 @@ The Data Protection API is used to decrypt the encrypted value using Windows Dat

## Sample

The following sample is a conceptual overview of how values are Protected and Unprotected using Datavarse as the IXmlRepository
The following sample is a conceptual overview of how values are Protected and Unprotected using Dataverse as the IXmlRepository

```csharp
using Microsoft.AspNetCore.DataProtection;
Expand Down
2 changes: 1 addition & 1 deletion context/test-engine-providers.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The new provider model has broadened the scope of the Test Engine. It now suppor
- **Entity Lists**: Lists of records from a specific entity in Dataverse.
- **Entity Records**: Individual records within an entity.
- **Custom Pages**: Custom-designed pages within model-driven apps.
3. **Power Apps Portal**: Allow automation of **https://make.powerapps.com** to perform and verify common operations.
3. **Power Apps Portal**: Allow automation of `https://make.powerapps.com` to perform and verify common operations.

## Future Providers

Expand Down
2 changes: 1 addition & 1 deletion context/understanding-feature-branches.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ Switching branches means moving from one line of development to another. You can
git checkout branch-name
```

Replace `branch-name` with the name of the branch you want to switch to. For example, if you want to switch to a branch named `integration`, you would use:
Replace `branch-name` with the name of the branch you want to switch to. For example, if you want to switch to a branch named integration, you would use:

```bash
git checkout integration
Expand Down
2 changes: 1 addition & 1 deletion examples/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ This section provides examples of applying automated tests and explaining concep

| Example | Description |
|---------|-------------|
| [Executing CoE Starter Kit Test Automation ](./coe-kit-automate-test-sample.md) | The CoE Starter Kit Test Automation has started with the Setup and Upgrade Wizard. This exaample extends to various components like Browser Login, Model-Driven and Canvas Apps, Power Automate Features, Cloud Flows, Desktop Flows, AI Builder Prompts, Database Setup, Power Platform, and Microsoft Fabric and Power BI. The process involves configuring the environment, authenticating via the Power Platform CLI, building the latest version of the Power Apps Test Engine, and managing browser-based authentication to support multi-factor authentication and ensure compliance with organizational security policies.
| [Executing CoE Starter Kit Test Automation ](./coe-kit-automate-test-sample.md) | The CoE Starter Kit Test Automation has started with the Setup and Upgrade Wizard. This example extends to various components like Browser Login, Model-Driven and Canvas Apps, Power Automate Features, Cloud Flows, Desktop Flows, AI Builder Prompts, Database Setup, Power Platform, and Microsoft Fabric and Power BI. The process involves configuring the environment, authenticating via the Power Platform CLI, building the latest version of the Power Apps Test Engine, and managing browser-based authentication to support multi-factor authentication and ensure compliance with organizational security policies.
| [Example: CoE Kit Setup and Install Wizard](./coe-kit-setup-and-install-wizard.md) | The CoE Kit Setup and Install Wizard example highlights the importance of automated testing for ensuring a consistent and reliable setup process. By collaborating with the Test Engine team and leveraging Power Platform Terraform provider, the team has been able to automate the setup, handle Power Apps testing and beyond and extend testing capabilities, ultimately improving the reliability and efficiency of the testing framework. |

## Getting Started
Expand Down
4 changes: 2 additions & 2 deletions examples/coe-kit-setup-and-install-wizard.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ Once example we have been working on recently is Automated testing of the [Setup
2. How do we setup and install the solution?
3. Could we automate the creation of the environment, install of dependencies, setup of connections?
4. How we extend testing a Model Driven Application with custom pages?
5. How do we handle the user consent diaglog?
5. How do we handle the user consent dialog?
6. How build tests to interact with a complicated multi stage setup process?
7. How can we create integration tests calling Power Automate Cloud Flows?
8. How can we validating the successful setup and state with dataverse?
8. How can we validating the successful setup and state with Dataverse?
9. How can we scale what we are learning to improve guidance?

## Early Adopter and Build from Source
Expand Down
6 changes: 3 additions & 3 deletions examples/coe-kit-test-automation-alm.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,23 @@ When it comes to automating the release and continuous deployment process for th

You can use a physical machine, such as a laptop or PC, to run your automation scripts. Alternatively, you can trigger these scripts from cloud flows or pipelines, providing more flexibility and scalability.

{% include figure popup=true image_path="/examples/media/coe-kit-alm-release-continuos-deployment-process.png" alt="Overview diagram that shows overview of local editing and hosted options to execute tests as part of ALM process" %}
{% include figure popup=true image_path="/examples/media/coe-kit-alm-release-continuous-deployment-process.png" alt="Overview diagram that shows overview of local editing and hosted options to execute tests as part of ALM process" %}

#### Code First Approach

For those who prefer a code-first approach, an Azure DevOps license and a Windows Custom Build Agent can be used to manage the automation process.

#### Low Code Approach

One alternative for execution of tests is combining Power Platform PIpelines and Power Automate. Using this approach to run the automated tests Power Automate Desktop could be used using a hosted configuration using only Power Platform resources this examples needs a Power Automate license.
One alternative for execution of tests is combining Power Platform Pipelines and Power Automate. Using this approach to run the automated tests Power Automate Desktop could be used using a hosted configuration using only Power Platform resources this examples needs a Power Automate license.

For organizations with Conditional access policies for authentication, you can use a Microsoft Intune Joined Windows 11 Cloud hosted PC to execute Desktop flows. This setup requires a Power Automate Hosted Process license and an Intune license, such as Intune Plan 1 or Microsoft 365 Business Premium.

## CoE Kit – Target ALM Architecture

Let's dive into the target Application lifecycle for the CoE Kit that has been selected for the CoE Kit

{% include figure popup=true image_path="/examples/media/coe-kit-target-alm.png" alt="Target ALM lifecycle for CoE Kit from Environments, Azure DevOps Repository, Power Platform PIpelines, Approvals and GitHub Release" %}
{% include figure popup=true image_path="/examples/media/coe-kit-target-alm.png" alt="Target ALM lifecycle for CoE Kit from Environments, Azure DevOps Repository, Power Platform Pipelines, Approvals and GitHub Release" %}

By following this structured approach, we ensure that our development, testing, and deployment processes are efficient, reliable, and scalable.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ In this example, we explore the extensibility of TestEngine Power FX using C# te

We will discuss extending the code-first extensibility of web-based Playwright commands. This approach enables developers to write custom test scripts that leverage the powerful capabilities of Playwright for browser automation.

Providers in TestEngine understand the underlying model of the component being tested. They create Power FX abstractions that hide complexity, allowing testers to focus on the high-level logic of their tests. To allaow code first extension the ```Experimental.PlaywrightScript()``` Power FX function allows scripts to be recorded or authored in C# to extend the test.
Providers in TestEngine understand the underlying model of the component being tested. They create Power FX abstractions that hide complexity, allowing testers to focus on the high-level logic of their tests. To allow code first extension the ```Experimental.PlaywrightScript()``` Power FX function allows scripts to be recorded or authored in C# to extend the test.

![Diagram that shows mapping of PlaywrightScript function to C# class](./media/powerfx+csharp.png)

Expand Down
2 changes: 1 addition & 1 deletion examples/using-powerfx-namespaces-in-testing.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Using Power Fx Namespaces in Testing

**NOTE** Namespaces are a preview feature only avilable in early release integration branches of the Power Apps test engine.
**NOTE** Namespaces are a preview feature only available in early release integration branches of the Power Apps test engine.

## Introduction to Power Fx Namespaces
Power Fx namespaces are a powerful feature that allows developers to organize and separate different sets of functions within the Power Fx language. By using namespaces, you can distinguish between the default functions provided by Power Fx, such as `CountRows()`, and extensions added for specific purposes, like the Test Engine with functions such as `Experimental.Pause()`. This separation helps in maintaining clarity and avoiding conflicts between different sets of features.
Expand Down
2 changes: 1 addition & 1 deletion learning/01-introduction.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Before you get started depending on being an early adopter, beta tester or gener

Follow the instructions on [Get Started Now](../context/get-started-now.md) ensure that you have the tools installs, verification checks and the source code cloned and compiled on your local machine.

Once the pac test run command is updated `pac test run` wil lbe able to use instead of local compiled version of the Power Apps Test Engine.
Once the pac test run command is updated `pac test run` will be able to use instead of local compiled version of the Power Apps Test Engine.
{: .notice--success}

### Second Ring (Beta Testers)
Expand Down
2 changes: 1 addition & 1 deletion learning/10-using-simulations.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ To follow the steps in this module carry out the following actions.

## Run Tests

1. Verify that the config file in the samples\weather has been configured for your environment, tennant and user1Email
1. Verify that the config file in the samples\weather has been configured for your environment, tenant and user1Email

```json
{
Expand Down
2 changes: 1 addition & 1 deletion learning/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ This module explains the following concepts:

## Prerequisites

Using guide [Get Started Now](../context/get-started-now.md) ensure teh following pre-requisites are installed and verified
Using guide [Get Started Now](../context/get-started-now.md) ensure the following pre-requisites are installed and verified

- Installed version of .NET SDK 8.0
- Visual Studio Code
Expand Down
2 changes: 1 addition & 1 deletion roles-and-responsibilities/enterprise-architects.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Enterprise Architects

As an Enterprise Architect, your role is pivotal in ensuring that the technological landscape of your organization is robust, scalable, and aligned with strategic objectives. You are responsible for reviewing and sinder implemention plans for content like the pillars of the [Power Well-Architected Framework](https://aka.ms/powa), integrating low-code solutions with existing IT investments, and ensuring holistic integration across both low-code and code-first environments. Your oversight ensures that the organization's technology infrastructure supports business goals and drives innovation.
As an Enterprise Architect, your role is pivotal in ensuring that the technological landscape of your organization is robust, scalable, and aligned with strategic objectives. You are responsible for reviewing and setting implementation plans for content like the pillars of the [Power Well-Architected Framework](https://aka.ms/powa), integrating low-code solutions with existing IT investments, and ensuring holistic integration across both low-code and code-first environments. Your oversight ensures that the organization's technology infrastructure supports business goals and drives innovation.

## Interests and Oversight

Expand Down
2 changes: 1 addition & 1 deletion roles-and-responsibilities/powercat.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Microsoft Power Platform Guidance provides valuable information to help you crea

### Power Platform Adoption

Fos customers working with Power CAT we help them jumpstart your Microsoft Power Platform adoption journey with our workbook, maturity model, and best practices. These resources can help you shape technology, business, and people strategies to drive desired business outcomes for your adoption effort.
For customers working with Power CAT we help them jumpstart your Microsoft Power Platform adoption journey with our workbook, maturity model, and best practices. These resources can help you shape technology, business, and people strategies to drive desired business outcomes for your adoption effort.

### Power Platform Blogs

Expand Down
Loading

0 comments on commit a76c98e

Please sign in to comment.