Comment on page
- Right click on the Test Case Project in the Solution Explorer
- Select the TestResults.io context menu
- Select the Change Engine version option
- Select the desired engine version and press OK
- Right click on the Solution in the Solution Explorer
- Select the TestResults.io context menu
- Select the Publish all test containers option
- Make sure to only record the static part of an element. For example only the label of a textbox and not the box itself, because the content of the box itself can change.
- Also test what happens if you change the size of your application window, for example a button could get smaller and smaller, so only capture the static text inside the button and not the border.
- If there are multiple variants of an element make sure to record an image for all variants (like a button gets bigger on mouseover, or a link is blue first and purple if you already clicked it)
- For example if you want to verify the content of the confirmation PDF you get at the end of your teststep. You do not want to add images of the PDF to the model, as they are very specific to the teststep.
- If your system under test already includes the required files, you can just access it like a user would by e.g. using the Windows File Explorer or File Dialog which are already automated by us in the Windows Environment Model.
- If an execution just stops it usually means an expected element or a screen was not found in which case the test engine aborts. Our debug log will tell you precisely at which point during the execution which element was not found.
- To access the Debug Log in a Visual Studio test run, make sure to open the Output window (in View --> Output) and switch the "Show output from" dropdown to "TestResults.io Public" or "TestResults.io Debug" for even more details.
- Use the following FAQ chapters to help you how to fix if an element was not found or found in the wrong location.
- First make sure the element is visible on the test environment and for example your navigation to the screen was correctly executed.
- Compare your captured image with what is actually displayed on the test environment. Depending on your applications elements may look different if they were already clicked once, or on mouseover, or if the focus is somewhere else.
- In case you require multiple different images of an element you can capture these by editing your Screen (double click in the Screen Explorer on it), editing the Element and click the camera icon again. In the displayed folder structure you can right click on the folder or image to add, modify and delete images.
- Our image search engine allows some deviation while comparing your captured image to the test environment. Usually this is very helpful as the visual rendering on the test environment is not always the same if you compare each pixel by pixel.
- In case some elements look very similar (e.g. some icons look almost the same) this allowed deviation can lead to mismatches.
- But you can edit the affected Image by using the Image Explorer to adjust the precision of the image search. In most cases of a mismatch we recommend switching the Engine from "Default" to "Precise", and below in "Precison" enter a value of "0.9". A value of 1.0 would require a pixel perfect match, 0.9 still allows a slight deviation.
- First make sure you use the correct element type. For example if you have multiple Yes / No questions use the "LabelWithButton" instead of "Button" Element. With this element type you can record the question as the Label, the answers as the Buttons and define the relative position of the buttons to the label including a grid width and height if required. The same options exist for Checkbox and LabelWithCheckbox
Example for setting a Select depending on another ReferenceElement
Select buttonSelect = Select.FromXY(
ReferenceElement.Position.Boundary.Top - 30,
Example for using a Select with a ColorFill on an Image:
Select rightSideSelect = t.SelectFromColorAtPoint(Images.Common.RightSideOrigin);
- To change these Properties right click the Screen in the Screen Explorer and select "Open Screen Class". If it does not exist yet add the Method "ConfigureElementProperties" as displayed below inside the class of your screen (or check out our complete example on Github)
public partial class HomeScreen
partial void ConfigureElementProperties()
SearchTextbox.TextBoxType = TextBoxType.OCR;
- In this example we change the TextBoxType of the Textbox called "SearchTextbox" on the Screen "HomeScreen". With this change the clipboard is no longer used to verify the content of the textbox, but instead it is read using OCR.
- Some settings use the keyword "static", these are applied to all elements of e.g. Type Textbox. We recommend to configure these inside the constructor of your App Class (you can find it inside your Model Project in the File App.cs, the constructor is the Method with the same name as your class)
TextBox.DefaultType = TextBoxType.OCR;
- We try to give you the best out of the box OCR experience possible, but depending on the used font, text size, text and background color furter configuration may be required. We support multiple OCR engines and give access to a lot of configuration possiblities
- To have some kind of filter the Test Screen Editor only has access to functions which are marked as "Model Capabilities".
public void OpenMenu()
if (MenuButton.IsActive()) //the "active" image of the Button is where it is closed
MenuButton.Click(MenuButton.WaitForInactive); //the "inactive" image of the Button is where it is open
[ModelCapability("Select Value With different Search")]
public void SelectValueWithSearch(
[DisplayName("Textbox search Value")] string textboxValue,
[DisplayName("Select Value in Dropdown")] string dropdownValue
The Test Case Designer needs to load new functions before you can select them. Click the Link to refresh. If the notification is not showing you can always reload the functionalities and screens with the green marked Icon.
- 1.Reference the following nuget package in your test case: Progile.ATE.Extensions.Excel
- 2.Add a new class to your test case or model that defines the data structure that you want to import from the excel. For each column you want to import you need to add a property with the same name. The following types are supported: string, double, int, bool, DateTime. If a value can be empty, define the type as nullable (e.g. int?). If there are whitespaces in a column name, use a valid property name and give the column name in a the ExcelName attribute (see e.g. FirstRegistration in example).
- 3.Load the test data like this:
var testData = Excel.Load(@"TestData\TestData_Cars.xlsx").LoadSheet();You can indicate the name of the worksheet and the row where the column header of your data is as parameter in LoadSheet. E.g.:
- 4.Then you can either iterate through all rows of the test data with
ForAll, get a random row with
GetRandomor get a specific row with
GetRow(index corresponds to row number in excel).
For many systems in order to activate a user, we need to follow an activation link received by email. Or you want to verify some notification email that should be triggered by your test input. We provide a simple Pop3 handler, that integrates with TestResults.io and lets you do just that.
The idea is that you register a single outlook.com (or gmx.net, gmail.com) account, such as [email protected]. You then need to configure Pop3 on your mail account, so that the automated testcase can poll for new messages. Then you can use many different email addresses for your test cases, like [email protected], [email protected], etc that all send to the same mailbox, but can be queried independently.
In order to set this up, you will need to follow these steps:
- 1.Setup email account, configure Pop3 (as described above)
- 4.Configure your EmailUserName, EmailProvider and Password in the ReceiveEmails class
- 5.If required, set the expected SenderAddress, that will send the emails you are expecting to receive.
- 6.If required, adjust the implementation to parse the email in the GetActivationLinkFromEmail method