TestProject Forum

Elements - how handled by Git integration for recorded tests / AI Healing

Yesterday, was happy to hear that Git integration for recorded tests is slated for release next year in Feb. :slight_smile:

That’s awesome news (and a really important feature we eagerly await utilizing)!

In the mean time, some additional information regarding about how the new Git integration feature will work would be extremely helpful (and help users ensure they create and structure recorded tests so that they fully leverage Git integration). Specifically, it would be helpful to know a bit more regarding the following:

  1. Will Git integration support integration with TFS/Azure DevOps Server (at least repos where Git is used instead of TFVC)?

  2. With Git integration of recorded tests how will the elements referenced in the recorded test (those shown under “Elements”) be handled (hopefully also stored in Git as well)?
    Being able to maintain the chosen locator for each element via Git would allow recorded tests some of the same advantages coded page-object-model based tests have. Regardless, it would be very useful to have a way to see how element locators change over time…

  3. What will determine the Git branch recorded tests (and hopefully elements) get mapped to?

  4. How will Git integration handle scenarios where recorded tests utilize elements also reference by other recorded tests? This is an important scenario to consider, since tests could potentially belong to different Git branches.

  5. How will Git integration handle tests (and their elements) when they’re copied/moved to a different project?

  6. How will Git integration handle tests (and their elements) when the application context changes?

I am especially curious regarding the last 4 questions, because I am still a bit uncertain how TestProject handles elements in certain scenarios. Elements, by design, are often used by multiple different recorded tests. These tests may be related to different applications (which may have different Application Strategies for element locators).

For example: For a given project, by default, recorded tests store elements for recorded test steps in the element library folder for the application the test is related to. It is also possible to over-ride this behaviour and assign elements from other folders in the element library (f.ex. elements in a folder not related to an application - or even, I believe, elements related to other applications).

This allows for scenarios where:
The AI mechanism may act on the same element with different contexts
(i.e. different Application Strategies)
Changes to recorded tests in different Git branches may impact the same element
(i.e. a test run in one branch could trigger changes - to elements - that impact tests in other branches).

Thanks for posting, here what we can share at this point :wink:
The exported recorded tests will include all the meta data required to run (including test steps, parameters , elements, default target, etc), you will be able to save and run tests locally as well.
Regarding referenced tests both git integration and local export will include dependency tests as part of extracted test.

Hi Mark,
A bit confused by your answer here…
What you describe sounds fairly similar to the currently supported (and implemented) feature of exporting (using the SDK) a recorded test.

I was under the impression Git integration would support the recorded tests directly. Is this not the case?

I have tried exporting tests, and noticed that the exported tests only include the highest ranking selector, and thus do not seem to benefit from the AI “self-healing” that recorded tests have.
Exported tests effectively “disconnect” each test step test from the element (in the element library) that recorded tests rely on (and update via AI).

It will support export/import recorded tests, as you stated exporting recorded tests to code is already supported by TestProject.
So, you will be able record test -> export it in recorded format (with all the locators and metadata bundled) -> save it to your git repo || run it locally with TestProject agent (while benefiting of scriptless automation and AI support) , and vice versa. In theory you will be edit it manually as well since it will be text based format.

hope it clarifies it better.

OK, good to hear that exported recorded tests will be able to be re-imported. :slight_smile:

Any info you can provide about to what degree the element library also will be supported with these imports/exports will also be very welcome… Not having any history for how element locators change over time is a bit worrisome.