{"id":7921,"date":"2020-01-28T03:11:34","date_gmt":"2020-01-28T11:11:34","guid":{"rendered":""},"modified":"2025-06-11T08:00:32","modified_gmt":"2025-06-11T15:00:32","slug":"introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality","status":"publish","type":"post","link":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/","title":{"rendered":"Introducing Test Studio to build end-to-end tests and maintain your app quality"},"content":{"rendered":"<p>I&#8217;m excited to announce a new tool, which is currently rolling out, to allow makers create and run tests for their applications. As more and more apps are used in critical business processes, we need a way to ensure that changes to those apps do not make the app stop working, and we can do that with tests. <strong>Test Studio<\/strong> provides a way to add and manage <em>test cases<\/em>, organize them into <em>test suites<\/em>, and run them to validate that changes in the apps did not break the expected functionality described in the tests. Tests can also be run outside of the test studio in a web browser which allows you to build the automated tests into your app deployment processes.<\/p>\n<p>\u00a0<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-7927\" height=\"1704\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/AppStudio.png\" width=\"2992\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/AppStudio.webp 2992w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/AppStudio-300x171.webp 300w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/AppStudio-1024x583.webp 1024w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/AppStudio-768x437.webp 768w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/AppStudio-1536x875.webp 1536w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/AppStudio-2048x1166.webp 2048w\" sizes=\"auto, (max-width: 2992px) 100vw, 2992px\" \/><\/p>\n<p>\u00a0<\/p>\n<p>But what is a<strong> test case<\/strong>? It&#8217;s simply a list of <em>steps<\/em>, which are expressions that can simulate interaction with the app and validate that the app is in an expected state after those interactions. Those expressions use the same functions that can be used in apps, with the addition of new functions that were added for testing purposes. For example, in your test you can fetch a record from a data source to validate whether the interaction with the app had the expected result. When a test finishes you also have the option to persist the test results, such as whether the test passed or failed, how long the test took and any additional information generated by the test, to a data table, SharePoint or via a flow for example.<\/p>\n<p>To help with creating the test steps or expressions that are needed to interact with the app, you can open an existing app in &#8220;recording mode&#8221;. As you interact with the app the test studio will generate the expressions that are used to perform that action. This gives you a great way to start creating tests and get acquainted with the syntax for the new test functions.<\/p>\n<p>This first version is focused on Canvas app tests and it currently supports the most popular controls used in apps. But this is just an initial step. We&#8217;ll be adding support for more controls soon, as well as new features to help you schedule your automated tests into your processes. This feature is still experimental, so we recommend you use it to write tests for non-production apps and provide us any feedback.<\/p>\n<h3><\/h3>\n<p>\u00a0<\/p>\n<h2>Testing your app<\/h2>\n<p>So, let&#8217;s dive into testing in Power Apps. But before we can test something, we need an app. For this post, I&#8217;ll work with one created from the &#8220;Start from your data&#8221; wizard, based on a SharePoint list.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-medium wp-image-7666\" height=\"253\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2019\/12\/TestStudioBlogPost-001-App-300x253.png\" width=\"300\"\/><\/p>\n<h3><\/h3>\n<p>\u00a0<\/p>\n<h2>Opening Test Studio<\/h2>\n<p>At this point, we can only add tests to apps that have been saved to Power Apps, so since this iteration of the app is ready, let&#8217;s save it.\u00a0<span style=\"font-size: 1rem;\">You will also need to <a href=\"https:\/\/docs.microsoft.com\/en-us\/powerapps\/maker\/canvas-apps\/working-with-experimental-preview#controlling-which-features-are-enabled\">enable the Formula-level-Error\u00a0management feature<\/a> for\u00a0the\u00a0app as some test errors require this feature to work properly.\u00a0<\/span><\/p>\n<p>And now it&#8217;s time for some testing. Just like the <a href=\"https:\/\/powerapps.microsoft.com\/en-us\/blog\/introducing-monitor-to-debug-apps-and-improve-performance\/\">Monitor tool<\/a>, you can find the entry point to the Test Studio in the new Advanced tools tray:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone wp-image-7967 size-medium\" height=\"300\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/OpenTests-2-282x300.png\" width=\"282\"\/><\/p>\n<p>If you select the <em>Open tests <\/em>option, it will open a new browser tab with the Test Studio, connected to the existing authoring session:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-7927\" height=\"1704\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/AppStudio.png\" width=\"2992\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/AppStudio.webp 2992w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/AppStudio-300x171.webp 300w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/AppStudio-1024x583.webp 1024w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/AppStudio-768x437.webp 768w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/AppStudio-1536x875.webp 1536w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/AppStudio-2048x1166.webp 2048w\" sizes=\"auto, (max-width: 2992px) 100vw, 2992px\" \/><\/p>\n<h3><\/h3>\n<p>\u00a0<\/p>\n<h2>Creating a new test case<\/h2>\n<p>Let&#8217;s start creating a test right away. The easiest way to do this is to click the &#8216;Record&#8217; button on the menu and to start interacting with the app.\u00a0You will see your actions being recorded in the left pane. Select &#8216;Done&#8217; when you have finished recording.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone wp-image-7669 size-full\" height=\"925\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2019\/12\/TestStudioBlogPost-004-Recording.gif\" width=\"1417\"\/><\/p>\n<h3><\/h3>\n<p>\u00a0<\/p>\n<h2>Editing your test case<\/h2>\n<p>Once you click &#8216;Done&#8217;, you&#8217;ll see that the expressions used to recreate the actions you took in your the app are added as steps for the selected test case. We can now edit the existing steps, including updating the expressions, adding \/ deleting steps, and reordering them. Let&#8217;s update the third step (where we set the title of the new entry) to<\/p>\n<p style=\"padding-left: 30px;\"><code>SetProperty('DataCardValue4'.Text, \"Test entry\")<\/code><\/p>\n<p>Let&#8217;s also add a new step at the end of the test to validate that a new entry was created in the SharePoint list. We can use a new test expression called an Assert to test this.\u00a0Add the new test step with the following description:<\/p>\n<p style=\"padding-left: 30px;\"><code>Validate that there is one test entry<\/code><\/p>\n<p>and with the expression below. This will assert that we can find the entry with the given title in the data source:<\/p>\n<p style=\"padding-left: 30px;\"><code>Assert(!IsBlank(LookUp(TodoList, Title = \"Test entry\")), \"The entry should have been inserted\")<\/code><\/p>\n<p>The test steps should now resemble the image below:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone wp-image-7968 size-full\" height=\"436\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/Recordedsteps.png\" width=\"1024\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/Recordedsteps.webp 1024w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/Recordedsteps-300x128.webp 300w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/Recordedsteps-768x327.webp 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<h3><\/h3>\n<p>\u00a0<\/p>\n<h2>Running the test case<\/h2>\n<p>Now click &#8216;Publish&#8217; on the ribbon of the Test Studio. For now, we can only run tests once the app has been published. The tests are part of the app and we need to publish the app for the steps to be available for the &#8220;test runner&#8221;. Once the app is published, you can now click the &#8216;Play&#8217; button, and you&#8217;ll see the test being executed.<\/p>\n<h3><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone wp-image-7671 size-full\" height=\"925\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2019\/12\/TestStudioBlogPost-006-Playback.gif\" width=\"1417\"\/><\/h3>\n<h3><\/h3>\n<p>\u00a0<\/p>\n<h2>Detecting problems in the app<\/h2>\n<p>Now that we have a test case, let&#8217;s see how it can detect problems in the app. Going back to the original tab where the app is being edited, preview the app then delete the entry that we added (with the title &#8216;Test entry&#8217;). Update the <em>OnSelect<\/em> property of the IconNewItem1 in the first screen to comment out the navigation to the edit screen:<\/p>\n<p style=\"padding-left: 30px;\"><code>NewForm(EditForm1); \/\/ Navigate(EditScreen1, ScreenTransition.None)<\/code><\/p>\n<p>Save and publish the app. You may need to wait about a minute or so before the publishing is done in the back end. Go back to the tab with the Test Studio, select the test case again, and click Play one more time:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone wp-image-7672 size-large\" height=\"244\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2019\/12\/TestStudioBlogPost-007-FailedPlayback-1024x475.png\" width=\"525\"\/><\/p>\n<p>As we can see, the test failed when it tried to interact with the text input control that holds the title of the new item. If someone had inadvertently introduced that &#8220;bug&#8221; in the app, running the test would have caught it right away. We can then fix the app to avoid giving the users a bad experience.<\/p>\n<h3><\/h3>\n<p>\u00a0<\/p>\n<h2>Running the tests outside the Test Studio<\/h2>\n<p>If you select the ellipsis for a test case or test suite in the tree view, or select the &#8216;Copy play link&#8217; in the top-right corner of the screen, you can copy a URL that can be pasted in a browser window. This will open the app in the browser and run that selected test or test suite. This allows for several scenarios, such as having different people executing the test (and, as the test runs with their own credentials, catch issues that the app maker may not be able to),\u00a0 or even provide a &#8220;walk-through&#8221; of the app by simulating the interaction of the app controls. It can also be used to schedule or automate the running of your tests from a release pipeline or using Power Automate UI flows.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-7925\" height=\"1082\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/CopyPlayLink-1.png\" width=\"2988\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/CopyPlayLink-1.webp 2988w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/CopyPlayLink-1-300x109.webp 300w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/CopyPlayLink-1-1024x371.webp 1024w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/CopyPlayLink-1-768x278.webp 768w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/CopyPlayLink-1-1536x556.webp 1536w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/CopyPlayLink-1-2048x742.webp 2048w\" sizes=\"auto, (max-width: 2988px) 100vw, 2988px\" \/><\/p>\n<h3><\/h3>\n<p>\u00a0<\/p>\n<h2>Storing test results<\/h2>\n<p>When the test is run outside the Test Studio, you don&#8217;t get to see the green\/red marks indicating whether the test passed or failed. To access the test outcome, you can use one of the behaviors that you can see from the test settings:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-7923\" height=\"928\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/StoringResults.png\" width=\"2991\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/StoringResults.webp 2991w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/StoringResults-300x93.webp 300w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/StoringResults-1024x318.webp 1024w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/StoringResults-768x238.webp 768w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/StoringResults-1536x477.webp 1536w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/StoringResults-2048x635.webp 2048w\" sizes=\"auto, (max-width: 2991px) 100vw, 2991px\" \/><\/p>\n<p>\u00a0<\/p>\n<p>The formula that you enter for the <em>OnTestCaseComplete<\/em> action will be executed whenever a test is finished (successfully or not) in the app. In the formula you can, for example, store the result of the test into a data source, or start a flow that you have in your app with it.<\/p>\n<p>Within the <em>OnTestCaseComplete<\/em> expression you have access to a new variable, scoped to that rule only, called &#8216;TestCaseResult&#8217;, which is an object with the following properties:<\/p>\n<ul>\n<li><strong>StartTime<\/strong>: the moment the test started<\/li>\n<li><strong>EndTime<\/strong>: the moment the test finished<\/li>\n<li><strong>TestCaseId<\/strong>: the identifier for the test case; this is a value that uniquely identifies the case, so even if you have multiple cases with the same name, they can still be reason separately<\/li>\n<li><strong>TestCaseName<\/strong>: the name that you can set for the test case in the Test Studio<\/li>\n<li><strong>TestCaseDescription<\/strong>: the description for the test case in the Test Studio<\/li>\n<li><strong>TestSuiteId<\/strong>: the identifier for the test suite that contains the test case<\/li>\n<li><strong>TestSuiteName<\/strong>: the name that you can set for the test suite in the Test Studio<\/li>\n<li><strong>TestSuiteDescription<\/strong>: the description for the test suite in the Test Studio<\/li>\n<li><strong>Success<\/strong>: a value that tells you whether the test passed (true) or failed (false)<\/li>\n<li><strong>TestFailureMessage<\/strong>: if the test failed, a message that indicates which step failed and why<\/li>\n<li><strong>Traces<\/strong>: a table of values with additional information about the test (all calls to <em>Assert<\/em> and <em>Trace<\/em> generate entries in this table)<\/li>\n<\/ul>\n<p>If we have a data source with corresponding properties, we could have this expression in the <em>OnTestCaseComplete<\/em> to save the results for the test:<\/p>\n<p style=\"padding-left: 30px;\"><code>Patch(<br \/>\nTestResults,<br \/>\nDefaults(TestResults),<br \/>\n{<br \/>\nStartTime: TestCaseResult.StartTime,<br \/>\nEndTime: TestCaseResult.EndTime,<br \/>\nResult: If(TestCaseResult.Success, \"PASS\", \"FAIL\"),<br \/>\nSuiteId: TestCaseResult.TestSuiteId,<br \/>\nSuiteName: TestCaseResult.TestSuiteName,<br \/>\nSuiteDesc: TestCaseResult.TestSuiteDescription,<br \/>\nTestId: TestCaseResult.TestCaseId,<br \/>\nTestName: TestCaseResult.TestCaseName,<br \/>\nTestDesc: TestCaseResult.TestCaseDescription,<br \/>\nFailReason: TestCaseResult.TestFailureMessage<br \/>\n})<\/code><\/p>\n<p>Or if you want to send the entire object to be analyzed by a flow, you can use the <a href=\"https:\/\/docs.microsoft.com\/powerapps\/maker\/canvas-apps\/functions\/function-json\">JSON function<\/a> to wrap the object and send to the flow:<\/p>\n<p style=\"padding-left: 30px;\"><code>MyTestResultsFlow.Run(JSON(TestCaseResult))<\/code><\/p>\n<h3><\/h3>\n<p>\u00a0<\/p>\n<h2>Organizing test cases in suites<\/h2>\n<p>One test case represents one certain scenario where the user is interacting with the app. An app may have many tests, and to better manage them it may make sense to group the test cases into related areas. Those are called test suites, a grouping of test cases that &#8220;belong together&#8221;. Just like you can play a single test case (either directly in the Test Studio or in a separate browser tab\/window after copying the play link), you can play an entire test suite which is equivalent to playing all test cases of that suite in order. Once the first case of the suite is done (and the logic defined on the <em>OnTestCaseComplete<\/em> action is executed), the second test case is executed (and again the <em>OnTestCaseComplete<\/em> logic once it&#8217;s finished), then the third, and so on.<\/p>\n<p>It&#8217;s important to reinforce the behavior explained in the previous paragraph. The first test in a suite will always start as if the app had been just opened. Once that test finishes, the next test will start from that point in the app. One advantage to this mode is that you can use it to break down a large test case into multiple ones within a single suite. However, if a test case expects the app to be in its initial state when it starts, it may fail if the previous test in its suite modified it. For example, leaving the app in a screen other than the first one. In many cases you can use the <em>OnTestCaseComplete<\/em> action to reset the app state if that&#8217;s what your suite needs.<\/p>\n<p>Like when a test case finishes, when you&#8217;re running an entire suite, Power Apps will execute the formula defined in the <em>OnTestCaseComplete<\/em> behavior of the test object. That behavior has access to a new variable, called &#8216;TestSuiteResult&#8217;, which is an object with the following properties:<\/p>\n<ul>\n<li><strong>StartTime<\/strong>: the moment the test suite started<\/li>\n<li><strong>EndTime<\/strong>: the moment the test suite finished<\/li>\n<li><strong>TestSuiteId<\/strong>: the identifier for the test suite<\/li>\n<li><strong>TestSuiteName<\/strong>: the name that you can set for the test suite in the Test Studio<\/li>\n<li><strong>TestSuiteDescription<\/strong>: the description for the test suite in the Test Studio<\/li>\n<li><strong>TestsPassed<\/strong>: the number of tests that run successfully in the suite<\/li>\n<li><strong>TestsFailed<\/strong>: the number of tests that had failures in the suite<\/li>\n<\/ul>\n<h3><\/h3>\n<p>\u00a0<\/p>\n<h2>Going deeper<\/h2>\n<p>Now that we&#8217;ve taken a quick tour through the Test Studio, let&#8217;s dive a little deeper into some of the new test functions\u00a0that can be used within test cases. Here&#8217;s a summary of them (for more details, go to the <a href=\"https:\/\/docs.microsoft.com\/powerapps\/maker\/canvas-apps\/formula-reference\">function reference<\/a>)<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/powerapps\/maker\/canvas-apps\/functions\/function-setproperty\"><strong>SetProperty<\/strong>:<\/a> \u00a0used to simulate interaction with most of the input controls.<\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/powerapps\/maker\/canvas-apps\/functions\/function-assert\"><strong>Assert<\/strong>:<\/a> used to verify that a certain condition is true in the test and cause the test to fail if not. The first parameter to the function can be any logical (true\/false) expression that you can write with the Power Apps language, and it can also take an optional second parameter that describes what the assertion is about.<\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/powerapps\/maker\/canvas-apps\/functions\/function-trace\"><strong>Trace<\/strong><\/a>: used to add additional information to the\u00a0<em>TestCaseResult\u00a0<\/em>record that can be accessed in an expression within the <em>OnTestCaseComplete<\/em> behavior.\u00a0 <em style=\"font-size: 1rem;\">Trace is\u00a0<\/em><span style=\"font-size: 1rem;\">a table with a row for each of the Assert and Trace functions that were called within the test. The records of the rows have two properties: Timestamp (date\/time value) and Message (text value).<\/span><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/powerapps\/maker\/canvas-apps\/functions\/function-select\"><strong>Select<\/strong><\/a>: this function has been in the product for a while, but it could only be used to simulate the select action of a control within the same screen. In test cases this restriction has been lifted, so a step in a test case (which doesn&#8217;t belong to any screen) can use this function to simulate the selection of a control on any screen &#8211; although during the test execution if the control is not in the current screen the action will fail, as a user could not do that in the app. The function has also been enhanced so that we can also select controls inside galleries, with additional (optional) arguments to that function to determine the row of the gallery to be selected, and the control inside the gallery. Currently only 1 level of nesting is supported, galleries inside of other galleries are not for this new functionality.<\/li>\n<\/ul>\n<h3><\/h3>\n<p>\u00a0<\/p>\n<h2>Test runner details<\/h2>\n<p>If you took a look at the URL generated by the &#8216;Copy play link&#8217; option in the Test Studio that we mentioned before, you&#8217;ll see that it&#8217;s very similar to the URL that you get when you play the app from the Power Apps Maker Portal (make.powerapps.com). It has an extra query string parameter that triggers the test runner logic. It means that the test cases are great at testing the app exactly because they&#8217;re running with the same app that is used by users. You can, for example, add additional query string parameters to that URL and access them via the <a href=\"https:\/\/docs.microsoft.com\/powerapps\/maker\/canvas-apps\/functions\/function-param\">Param function<\/a>.<\/p>\n<p>This also has another very important point to be aware of . Since the tests run as if a user was interacting with the app, it can also create \/ update \/ delete records from your data sources, so be careful in your tests not to take actions that could, for example, remove records that it shouldn&#8217;t from your data source. One option is to have a specific column in your data source that flags items as test-only, a prefix in the name \/ title of the records, or something that can be used to identify test objects which can be ignored when the app is being used by &#8220;regular&#8221; users.<\/p>\n<h3><\/h3>\n<p>\u00a0<\/p>\n<h2>We want to hear from you<\/h2>\n<p>I already mentioned it before but it&#8217;s worth saying it again, but this is the first version of this feature and we want to let you start exploring and using it now. We&#8217;d love to hear your feedback, so we can prioritize the next set of improvements, any features that are missing, or any of the current behaviors that may not be ideal.<\/p>\n<p>What kinds of tests are you writing? Is there anything that is too hard to understand, and that we could make easier?\u00a0 There\u00a0is a &#8216;Provide feedback&#8217; link in the Test Studio which leads to our community forum for sharing your ideas.\u00a0 We really want to hear your feedback!<br \/>\n\u00a0<br \/>\n<img loading=\"lazy\" decoding=\"async\" alt=\"\" class=\"alignnone size-full wp-image-7924\" height=\"916\" src=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/Feedback.png\" width=\"2371\" srcset=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/Feedback.webp 2371w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/Feedback-300x116.webp 300w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/Feedback-1024x396.webp 1024w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/Feedback-768x297.webp 768w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/Feedback-1536x593.webp 1536w, https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/01\/Feedback-2048x791.webp 2048w\" sizes=\"auto, (max-width: 2371px) 100vw, 2371px\" \/><\/p>\n<p>There is some work that we already know that we need to complete which we have already started such as:<\/p>\n<ul>\n<li><span style=\"font-size: 1rem;\">Full control coverage for recording and playback capabilities. This includes both native and those based on the Power Apps Component Framework (PCF), and controls within components<\/span><\/li>\n<li>Better support for automation, such as running tests in Azure DevOps on a daily \/ scheduled cadence. Stay tuned as we&#8217;ll have further posts on options to schedule and automatically run your tests soon.<\/li>\n<\/ul>\n<p>Let us know what you think as you start building tests for your apps!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Use Test Studio to build end-to-end tests, and maintain your app quality by continually validating your app works as expected when new changes are deployed.<\/p>\n","protected":false},"author":89,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ms_queue_id":[],"ep_exclude_from_search":false,"_classifai_error":"","_classifai_text_to_speech_error":"","_alt_title":"","ms-ems-related-posts":[],"footnotes":""},"audience":[3378],"content-type":[],"job-role":[],"product":[3473],"property":[],"topic":[3421,3422],"coauthors":[2153],"class_list":["post-7921","post","type-post","status-publish","format-standard","hentry","audience-it-professional","product-power-apps","topic-application-modernization","topic-hyperautomation"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Introducing Test Studio to build end-to-end tests and maintain your app quality - Microsoft Power Platform Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducing Test Studio to build end-to-end tests and maintain your app quality - Microsoft Power Platform Blog\" \/>\n<meta property=\"og:description\" content=\"Use Test Studio to build end-to-end tests, and maintain your app quality by continually validating your app works as expected when new changes are deployed.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/\" \/>\n<meta property=\"og:site_name\" content=\"Microsoft Power Platform Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-28T11:11:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-11T15:00:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/AppStudio.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2992\" \/>\n\t<meta property=\"og:image:height\" content=\"1704\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Aengus Heaney\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Aengus Heaney\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/\"},\"author\":[{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/aengus-heaney\/\",\"@type\":\"Person\",\"@name\":\"Aengus Heaney\"}],\"headline\":\"Introducing Test Studio to build end-to-end tests and maintain your app quality\",\"datePublished\":\"2020-01-28T11:11:34+00:00\",\"dateModified\":\"2025-06-11T15:00:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/\"},\"wordCount\":2627,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/AppStudio.png\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/\",\"name\":\"Introducing Test Studio to build end-to-end tests and maintain your app quality - Microsoft Power Platform Blog\",\"isPartOf\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/AppStudio.png\",\"datePublished\":\"2020-01-28T11:11:34+00:00\",\"dateModified\":\"2025-06-11T15:00:32+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#primaryimage\",\"url\":\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/AppStudio.png\",\"contentUrl\":\"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/AppStudio.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducing Test Studio to build end-to-end tests and maintain your app quality\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/\",\"name\":\"Microsoft Power Platform Blog\",\"description\":\"Innovate with Business Apps\",\"publisher\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization\",\"name\":\"Microsoft Power Platform Blog\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"contentUrl\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png\",\"width\":194,\"height\":145,\"caption\":\"Microsoft Power Platform Blog\"},\"image\":{\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/person\/9c933c79306ac4d38ee3d2c36f6db1e8\",\"name\":\"Aengus Heaney\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/ac2addc714e4deaf1aa5a627336db1e12b9dc7e05695a4fd0f58136bd28db830?s=96&d=mm&r=g7ee8ffd46f7176a5b3af28d2ffe2c840\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ac2addc714e4deaf1aa5a627336db1e12b9dc7e05695a4fd0f58136bd28db830?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ac2addc714e4deaf1aa5a627336db1e12b9dc7e05695a4fd0f58136bd28db830?s=96&d=mm&r=g\",\"caption\":\"Aengus Heaney\"},\"url\":\"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/aheaney\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introducing Test Studio to build end-to-end tests and maintain your app quality - Microsoft Power Platform Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/","og_locale":"en_US","og_type":"article","og_title":"Introducing Test Studio to build end-to-end tests and maintain your app quality - Microsoft Power Platform Blog","og_description":"Use Test Studio to build end-to-end tests, and maintain your app quality by continually validating your app works as expected when new changes are deployed.","og_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/power-apps\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/","og_site_name":"Microsoft Power Platform Blog","article_published_time":"2020-01-28T11:11:34+00:00","article_modified_time":"2025-06-11T15:00:32+00:00","og_image":[{"width":2992,"height":1704,"url":"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/AppStudio.png","type":"image\/png"}],"author":"Aengus Heaney","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Aengus Heaney","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#article","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/"},"author":[{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/aengus-heaney\/","@type":"Person","@name":"Aengus Heaney"}],"headline":"Introducing Test Studio to build end-to-end tests and maintain your app quality","datePublished":"2020-01-28T11:11:34+00:00","dateModified":"2025-06-11T15:00:32+00:00","mainEntityOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/"},"wordCount":2627,"commentCount":0,"publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#primaryimage"},"thumbnailUrl":"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/AppStudio.png","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/","name":"Introducing Test Studio to build end-to-end tests and maintain your app quality - Microsoft Power Platform Blog","isPartOf":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#primaryimage"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#primaryimage"},"thumbnailUrl":"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/AppStudio.png","datePublished":"2020-01-28T11:11:34+00:00","dateModified":"2025-06-11T15:00:32+00:00","breadcrumb":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#primaryimage","url":"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/AppStudio.png","contentUrl":"https:\/\/powerappsblogmedia.azureedge.net\/powerappsblog\/2020\/01\/AppStudio.png"},{"@type":"BreadcrumbList","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/2020\/01\/28\/introducing-test-studio-to-build-end-to-end-tests-and-maintain-your-app-quality\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/"},{"@type":"ListItem","position":2,"name":"Introducing Test Studio to build end-to-end tests and maintain your app quality"}]},{"@type":"WebSite","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#website","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/","name":"Microsoft Power Platform Blog","description":"Innovate with Business Apps","publisher":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#organization","name":"Microsoft Power Platform Blog","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","contentUrl":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-content\/uploads\/2020\/03\/Microsoft-Logo-e1685482038800.png","width":194,"height":145,"caption":"Microsoft Power Platform Blog"},"image":{"@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/#\/schema\/person\/9c933c79306ac4d38ee3d2c36f6db1e8","name":"Aengus Heaney","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ac2addc714e4deaf1aa5a627336db1e12b9dc7e05695a4fd0f58136bd28db830?s=96&d=mm&r=g7ee8ffd46f7176a5b3af28d2ffe2c840","url":"https:\/\/secure.gravatar.com\/avatar\/ac2addc714e4deaf1aa5a627336db1e12b9dc7e05695a4fd0f58136bd28db830?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ac2addc714e4deaf1aa5a627336db1e12b9dc7e05695a4fd0f58136bd28db830?s=96&d=mm&r=g","caption":"Aengus Heaney"},"url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/author\/aheaney\/"}]}},"bloginabox_animated_featured_image":null,"bloginabox_display_generated_audio":false,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Microsoft Power Platform Blog","distributor_original_site_url":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog","push-errors":false,"_links":{"self":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/7921","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/users\/89"}],"replies":[{"embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/comments?post=7921"}],"version-history":[{"count":1,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/7921\/revisions"}],"predecessor-version":[{"id":130697,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/posts\/7921\/revisions\/130697"}],"wp:attachment":[{"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/media?parent=7921"}],"wp:term":[{"taxonomy":"audience","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/audience?post=7921"},{"taxonomy":"content-type","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/content-type?post=7921"},{"taxonomy":"job-role","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/job-role?post=7921"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/product?post=7921"},{"taxonomy":"property","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/property?post=7921"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/topic?post=7921"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/cm-edgetun.pages.dev\/en-us\/power-platform\/blog\/wp-json\/wp\/v2\/coauthors?post=7921"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}