Category

Licences management

The purpose of the licence management application is to access your personal information.

To access the licences interface, go to the Agilitest "Help" page, at the top right.

help button

Then click on the dedicated button to open licence management web page.

used licences button

The web page will open to a front page.

licences page

Click on Access page” and enter your login details

enter login page

There are three possible outcomes:

  1. If the ID does not exist, you will be blocked.

        2. If the ID exist but does not have a password, you will be informed that a e-mail has been sent to you with a new password.

Once you have entered your username, enter the corresponding password

enter password

If you do not have a password, a message will inform you that one will be created and sent to you by e-mail.

messsage about new password received by email

       3. If there is no issue with the ID, enter your password. If it is valid you will be taken to the information page

licence information page

On the information page, you can find information about licences and related equipment.

You can also request the deactivation of a licence. This is done via a clickable button that displays a confirmation request. You will then receive a pop-up notification.

In the table of active devices, you can ask for a device to be deactivated.

To do this, click on the "Deactivate" button in the licence line.

deactivate button

Then click on "Send request" so that it can be processed by the Agilitest team.

device deactivation

Once the deactivation request has been accepted by the Agilitest team, the device will appear in the table of deactivated devices.

deactived devices panel

Still require support?
Contact support

Subscript executions

▶️ You can also watch our tutorial on how to execute subscripts on our Youtube channel.

When a script is long enough, you can reduce it by creating a subscript.

Using subscripts will allow you to factorise the common functions of your tests, such as test data creation, login, regularly used operations, etc.

An additional advantage is that you can pass values as parameters to your subscripts, making your sub-scripts scalable and generic.

Finally, if you manage the granularity of your scripts and subscripts correctly, this will also enable you to have test scripts that are not too long, that are readable and easy to maintain.

Create a subscript

The subscript action has been designed to be scalable.

To create a subscript, select all the actions in your script that interest you. You can do so by pressing the CTRL key.

selecting actions

Then, drag and drop your actions on your ATS file.

dropping actions in the ats file

Finally, create your subscript by giving it a name.

create subscript

Your subscript will appear in your project explorer, as well as in the form of a script call action in the script from which the actions were extracted.

call the script action

Open a subscript

There are different ways of opening subscripts, even if they have different typologies such as multiple iterations, blocked, random, etc…

When you want to open the child script with the link to the parent, click on the "Execute action" button to open your subscript and execute it.

execute button

If your subscript contains parameters, they will appear in a small window displaying these parameters for a few moments during the execution.

parameters showing

To make these parameters reappear, click on the "\x" button at the bottom right of the screen.

button to show parameters

A subscript with only one iteration

In a subscript with a single iteration, if you click on the "Execute return values" button, it will return to the parent script.

execute return values button

The elements will no longer appear in your subscript but the parameters will remain in the subscript.

It is also possible to stop the link to the parent, so as not to return to the parent once the subscript has finished executing and to continue executing the script.

If you don't want this to happen, and simply run the subscript, simply click on the cross icon to cancel the return action.

cancel button

A subscript with several iterations

In a subscript with several iterations, the number of iterations will appear on the subscript call action line

subscript called 3 times

As well as at the bottom right of the execution of your subscript.

iterations count

If you click on the arrow once, it will move on to the next iteration with its parameters, and so on if you click on the arrow again.

arrow button

At the end of these iterations, as in the previous case, this button will be used to return to the parent.

You can also execute your iterations one after the other.

To do this, click on your editor's "Play" button in the channel management menu instead of executing the actions one after the other.

play button

This corresponds more to a mode of execution, compared with previous cases which corresponded more to creation or maintenance.

Still require support?
Contact support

Project's parameters

Project parameters are used to manage and configure a project, whose parameters will be applied to all the scripts in the same project. Each project has its own parameters.

To access the project parameters, you have to click on the context menu for the project in question in the Agilitest Project Explorer.

From the projects explorer, click on “Project properties” to access the project parameters.

project properties button in the explorer

That will open the project’s parameter window.

project's parameter window

Project’s information modifications

project's information

From this screen, you can access your project from the Window explorer and change the project name and description.

You will also be able to version the project, which means that you can stabilise the use of a specific version of ATS by referencing the ATS library you want.

🔸 Warning

We do not recommend changing the version of the project as the changes in the editor and ATS  are closely linked. However this feature is available in case it might be of interest to certain profiles.

Apache Maven

Apache maven

By checking the first option, you will have an “Auto-update of ATS version” activated.

The second option is to allow the use of Maven with Agilitest. Maven is a package manager and allows you to retrieve the latest versions of librairies and integrate your own librairies into your projects.

Project’s passwords

project's passwords

You can create and manage passwords, which are reusable in encrypted form in your scripts, with the keyword “$pass”.

Agilitest lets you record variables which are then encrypted in ATS files.

To create a password, click on Add

add password button

Then, enter the name you want to give to your password and its value that will be encrypted next.

password creation

Encrypted variables mean that they do not appear as plain text in the files, or in the test editing interface.

How to manage encrypted passwords

Passwords can also be managed using the shortcut in the special keys when entering text.

passwords in the special value menu

The value can then be retrieved in ATS as a normal variable using the $pass(variable) keyword.

Here are the differences with normal variable management:

  • Passwords are not printed in the editor's user interface other than in its edit menu.
  • They are not visible in ATS files, not even their declarations.
  • They do not appear in ATSV files.
  • They do not appear in the logs generated by Agilitest and ATS.
  • Each variable declared using $pass() variables is treated in the same way.

When to use encrypted passwords

We recommend using encrypted passwords when you have no other options.

We do not recommend that you carry out your tests with real user accounts by encrypting passwords. The solution we recommend is to create users dedicated to the tests and with their own privileges, limited if possible.

💡 Tip

If you can’t do otherwise, like when you want to test the admin account, we advise you to do this on environments similar to production, but secured differently (for example, physically on your premises).

If you are carrying out tests on systems in the cloud, you will not be able to do otherwise. In this case we advise you to supplement this mechanism, for example by using secure transfer protocols such as https or by using one-time passwords issued by a secure server.

Project’s reports templates

project's reports templates

Project report templates are used to customise execution reports.

To customise your reports, click on the edit button.

customize button

Then, click on the stylesheet file edition button.

edit custom button

Still require support?
Contact support

Groups management

The purpose of group management is to better manage the executions. Scripts are arranged in named groups to customize the organization. This allows you to include or exclude groups of scripts from an execution.

Today, groups are only used to filter run suites or organize ATS scripts. Each execution suite has its own filter configuration. There are two ways to manage groups, either through the group management window or directly through the properties of a script.

Group management window

You can access the group management window from the Project Explorer menu.

Project explorer > menu > Group management

group management in the project explorer

The edition and maintenance of these groups can be done in the "Group management" page of a project.

group management window

The Group Management window allows users to create and manage the contents of script groups.

A group is characterized, on the one hand, by a name and, on the other hand, by the scripts it contains. These groups have the particularity of being able to be used in several contexts, in particular to include or exclude scripts in an execution.

For each group you can:

  • Add scripts
  • Remove scripts
  • Modify the tag (color + ID)
  • Duplicate the group
  • Delete the group

Create a group

Click on “Create group” in the groups management window

Add group button

That will open a group creation pop-up

create group popup

In this menu you can create the name of the group as well as choose a color and an ID that will represent the TAG of your group.

Once the group is created it is possible to duplicate it by clicking on the "..." button.

duplicate group button

You have the possibility to change the tag of the duplicated group to better organize your groups

duplicate group popup

Group tag

Each group has a tag that is characterized by a color and 3 characters. Seven colors are proposed and the ID can correspond to any 3 characters you want.

You can edit the tag of a group at any time from the group management window.

To do this, click on "Modify group tag" from the "..." button of an already created group

edit group tag button

Then, edit the group tag as you wish

edit group tag popup

If the tag entered already exists, a message appears after clicking on "Confirm".

Existing tag message

How to filter groups?

Groups can be used to filter a number of specific scripts. Today, it is possible to filter the content of an execution suite by excluding, i.e not execute, all the scripts from one or multiple groups.

Filters are applicable from the script insert of the executions management window but can also be managed directly from the properties of a script placed in a group.

From the executions management

From the Project explorer, click on the menu > Executions management

executions management in the project exlplorer

From the bottom left pane, it is possible to select, add and remove filters.

filter panel

Each project has its own group management and each execution suite has its own filters configuration.

To exclude a group allows you to prevent the execution of the scripts it is composed of.

Example :

If, in the “Routine” suite, you decide to exclude the “Bug” group,

Routine suite with the Bug group

Then, if you change suite, you will not find the Bug group since it is only part of the Routine suite.

Test suite without groups

📙 To know more
Scheme of groups and filters system
When scripts are placed in groups, that means that they can be filtered during an execution. If you decide to exclude groups then during the execution, the scripts that belong to excluded groups won’t be exectuted. Groups also allow you to classify your scripts and organize them according to your needs.
(You can find an animation of this scheme here: https://youtu.be/L3PmZmDdaGg)

From the properties of a script

It is also possible to manage groups and their composition directly through the script properties. The script properties allow to:

  • Know which groups a script belongs to
  • Assign or remove a script in existing groups

To do this, right click on an ATS script in the file explorer and click on "Edit properties".

edit properties action

This will open a window indicating in which group(s) the selected script belongs.

properties of a script

Still require support?
Contact support

Tools configuration

Agilitest can be completed with various tools to optimize the create and maintenance of tests. You can find these tools in the “Tools” menu, situated at the top right of the editor. It is advised to download them all right when you have installed Agilitest in order to have them at your disposition during the use of Agilitest.

You can open the Agilites tools page by clicking on the “Tools” button at the top right of the editor.

tools button

This will open the page with all the tools that can be added to the Agilitest functionnement.

tools page

You can download these tools directly from Agilitest by clicking on the links next to each tools.

download button

Jasper report

jasper report

Jasper reports are used to generate tests reports in pdf format available from the html reports.

pdf report

Apache Maven project management

apache maven project management

This menu allows you to directly manage the ATS dependencies with Maven. It is reserved for expert use for those who wish to use a specific version of ATS while allowing to recover all its dependencies.

Maven corresponds to an utility that enables a project’s construction and the management of its dependencies.  If a library is under a certain version, with Maven it is possible to cohabit several versions and to choose which version will be processed after having compiled its project.

FlaUInspect

flauinspect

FlaUinspect is a Windows tool that is used to identify the components under Windows. It corresponds to what Windows can “see” when there are open applications.

Click on the execute button to open the FlaUInspect window

execute button

The tool starts from the desktop and will show all the windows that are open and the various components they are composed of.

flauinspect window

This corresponds to the Windows interpretation of  Web component, so the level is not as high as the capture tool that is dedicated to the Web. But, it can be interesting to use on native windows application clients. This shows the path you can recreate manually with a locator when the capture tool does not work correctly.

This tool is notably used to debug or debunk particular cases.

Jenkins server

jenkins server

The Jenkins server is a continuous integration tool.  This tool can be deployed in two ways:

  • Embed server: This corresponds to a local use. It is a pre-configurated system made to function locally with basic plugins and settings pushed by Agilitest to run on computers.
  • Remote server: This corresponds to an online server, on the company’s cloud or a dematerialized zone (DMZ).

Once you are connected you will have access to these three buttons:

jenkins buttons
  • Disconnect
  • Stop Jenkins
  • Open page

All these tools are not mandatory for Agilitest to work, however, they provide a complementary service and help to improve the user experience.

Example :

With the continuous integration, it is possible to run tests in a scheduled way: during the night, the morning or at whatever hour of the day. This is possible through Jenkins, not Agilitest.

Still require support?
Contact support

SAP

SAP: a functional tool

What is SAP?

SAP (Systems, Applications and Products) is one of the world's leading producers of software for business process management, by developing solutions that facilitate the efficient processing of data and the flow of information in organizations.

SAP is used as a data manager. It is an independent tool from Agilitest allowing to create programs through modules.

You can consult the SAP documentation directly on the SAP website.

SAP integration with Agilitest allows you to create and maintain complex tests with a functional approach. SAP GUI tests can be used to manage the modification or development of business rules, or the updating of ERP system functionality.

📙 To know more
architecture beteen ats and sap scheme
SAP is an independent tool from Agilitest. To establish a connection with this tool, a system driver is used to send the elements to the SAP driver. Once the link is established, a connection to the SAP server will be made through the SAP GUI protocol.

How to connect to a SAP server?

▶️ You can find a tutorial on how to connect to a SAP server on our Youtube channel

To use SAP you need to install a client: the SAP Logon. This client will allow you to interact with the SAP server. A connection is declared in this client with the elements transmitted by the SAP administrator, notably the target server.

SAP logon

To connect to an SAP server, the operation is the same as for any other application tested on Agilitest.

So start by a “Start channel” action

start channel action

Then select the SAP shortcut to set the channel from the drop-down menu in the input bar.

application shortcuts menu

Enter the details of the SAP server, present in the SAP log on, i.e. the name of the connection, the customer number (i.e. the associated mandate number) and possibly the language (EN/FR/...).

Then click on "Activate 'Basic authorization" to enter your login details: username + password.

SAP shortcut

💡 Tip

To prevent your password from appearing in the test, consider creating an encrypted password from the project properties menu.

To start the connection in English, in the logon part you can change the language by adding "/EN" at the end of the id.

SAP english connection

During the execution the connection is done automatically. Once connected, the driver takes over the open SAP window on the SAP home page.

Session saved in the ATS properties

As a reminder it is also possible to configure commonly used applications to appear directly in the applications panel in the channel opening action. This is also possible for the sessions you have access to, including SAP sessions.

This shortcut allows you to avoid sharing information related to the connection to an SAP server (id, passwords) if you want to work on an SAP test on several workstations.

To use this shortcut, you need to modify the ATS properties.

To access the ATS properties, go to the "Settings" menu in Agilitest.

Settings button

Then click on “Edit configuration” in the ATS settings

Edit configuration button

This will open the ATS properties page where you can configure various elements.

ats properties

Below is an example of a possible configuration for an SAP session:

📙 SAP Configuration

<sap>

<timeOut>200</timeOut>

<sessions>

<session>

<name>MySAP</name>

<client>800</client>

<connection>(Logon_id)</connection>

<authentication>(Code_source_ATS)</authentication>

</session>

Authentication can be found in the ATS code of your script with an SAP connection.

To access it, open your script and click on the “Script header data.

Script header data button

Then click on “Code ATS”

code ats button

This displays all the actions of the script in code form.

To fill in the connection information in the properties, recover the code string data corresponding to the SAP server connection from the "start a channel" action.

ats code info

Copy the connection information in the ATS properties.

ats properties

Once you have entered the information, save your file and return to the Agilitest applications menu where you will find the session you have entered.

SAP application

SAP interface

Once SAP is open, just like a test on the Web, you can capture the elements with the capture tool to be able to test them.

capture in SAP

The SAP home screen displays the modules, or transactions, available to users.

sap modules

These modules correspond to programs that allow you to manage different business aspects, such as inventory management or HR information.

You will be able to choose among various possible interfaces according to the screens that were made available to you when you created your account.

SAP screens

The accessibility of these screens is decided according to the role occupied in the company and its needs in data management.

The SAP modules allow for the management of numerous business aspects such as finance, sales, production, logistics, distribution, accounting and human resources. Since SAP manages an information system that by its very nature is subject to change, it is important to regularly perform functional unit tests in your QA process to ensure that all these processes continually deliver the expected results.

Example: SAP offers an HRIS solution that automates business HR operations, but also provides experiences that drive employee engagement and productivity. SAP's HRIS core focuses include employee experience management, core HR and payroll functions, talent management and HR analytics.

Tests on SAP

Switching windows

In some cases, the module opens in a new SAP window. To manage this notion of window, you will have to change the window from Agilitest.

To do this, click on the window action.

Window action

Then switch to the window with index 1 (the main window is index 0).

indexes in switch window action

Actions on a table

Once you have your table open in the SAP interface, open your capture tool to perform actions on it.

When capturing you will need to define a Locator, which is a set of attributes that identify the captured item.

Among the parent branches of the element you will generally find: the object (Example: "TableControl", "GridControl", "TreeControl"), the Rows, the Columns.

Captured element's parents

Several table cases are possible:

  • Searching for an element of a table that appears directly on the interface

Example : A table with few lines.

When we capture an element on the screen, the search of the element with the locator will be less accurate.

The search can be done according to the "Text" attribute of the captured element and the ElementId of the "TableControl" branch.

Table elements

Once the attributes are selected, drag the element into the Agilitest editor to create an action.

click action

This type of search will not search for a row but will simply stay on the same screen.

  • Searching for a table element in a long list

When you want to capture an element from a long list that requires Agilitest to browse the elements, then you must specify it with attributes.

This time you have to tell it that the element is in a "Row

Table elements

Drag the element into an action

Click action

A search in a row is done according to the text in it. Agilitest will browse the rows of the table to find the row with the text entered as an attribute.

💡 Tip

To simplify the operations it is recommended to change the text into a regular expression.

Actions on Grids

It is possible to switch a table to Grid by pressing the F8 key and specifying the number of lines you want to appear in the "Maximum number of hits" box.

change table to grids

With the grids it will display more information that can be read vertically and horizontally.

grids

The capture of an element takes place in the same way as for tables, only the display of the parents of the captured elements will specify that they are grids.

Grids elements

Grids are a set of data organized in rows and columns.

It is also possible to search for the presence of an element in various rows using "Row".

To do this, you need to create a sub-script with runtime log comments to display the items found.

subscript action

Example: If we search for the text "MIERZWA" in all rows using the text property of the "GridRow" branch, then your subscript will display the rows that include this text.

In this example, 5 iterations are displayed, so MIERZWA appears 5 times in the rows. The parameters will indicate the exact location, such as the line "1014". (see screenshot below)

subscript execution parameters

With this action each row is passed to the script and each column represents a parameter.

ats code parameters

Actions on data trees

The data tree is sometimes composed in a simple configuration with a single column that includes several levels and other times in a more complex way, with several columns in the same tree. The execution of tests on trees is similar to those on grids and tables.

The search elements of a component are similar to those of grids and tables.

trees elements

The "TreeNode" branch will represent the nodes of the tree, i.e. the different levels that appear.

Each node has zero or n children that can be deployed.

Tree nodes

Example: The "Basic Data" element has 3 children, while its children have none.

When a tree is complex, a node can have several columns.

As with grids, the tree is configured with rows that will concatenate all columns in the row.

This means that the search for elements of a tree structure is mainly done through the "Row" branch.

Tree row branch

VBscript

SAP recorder

One of the features offered by SAP is the use of a recorder. Once activated, this function records the actions performed on SAP and then translates them into vbscript.

To launch the capture directly in SAP, go to the options from the drop-down menu: Plus > SAP GUI Options and Actions > Record and Playback Script

sap recorder

This will show you a launch pop-up.

recorder pop-up

Click on the "record" button to start the recording

record button

Once this is done, perform your manipulations and then click on the "stop" button to end the recording.

stop button

Once the capture is finished, a page with all your actions in vbscript format will open automatically.

vbscript

To replay this script, click on the "play" button.

This will open your Windows Explorer and the folder containing your script.

script in windows explorer

By clicking on the script it will perform again the actions that were executed directly on SAP.

To use the vbscript data in Agilitest you have to look at the last lines of your script.

vbscript actions

Scripting action in Agilitest

From Agilitest, you can also create actions in vbscript format and interact with SAP.

Two ways are possible:

  1. Either by using the script lines of the vbscript.

To do this, copt a script line from your vbscript that you want to transform into an action.

line in vbscript

Then click on the “Scripting” action

scripting action

There is no need to specify an interface element.

no element

Click directly on the "Scripting" action and paste the script line

enter text in scripting action

         2. Either by manually creating vbscript actions using the properties

Click on the "Scripting" action.

scripting action

Add an interface element and enter a value that will act on this element

interface element in scripting action

Example : Above, the interface element corresponds to an element in which text can be entered, with the "text" property of this element set to "MIGO".

When the action is executed, this translates into the text MIGO in the text entry on SAP.

"migo" entered in text bar

The difference between these two manipulations is that by passing through a line of code of the vbscirpt the access to the object is done by its id, while by passing through an Agilitest action, the access to the object is done by its properties.

Still require support?
Contact support

Special values

When you can enter text in an Agilitest action, it is possible to click on a button that will allow you to insert special values.

button to open special values

This will show you all the special values organized in a dedicated menu.

Special value menu

Among these special values are:

Environment variable

environment variable

Environment variable are linked to the current execution.

They are found in the execution variables in the project builder.

To access it, click on "Executions management".

executions management

This will open the project builder page where you can find the environment variables in the special values box.

execution variables

You can find the same information about environment variables in the special values menu.

values of environment variable

Script variable

script variable

The script variables correspond to the variables declared in a script.

In the editor, they can be found in the part dedicated to variables under the project explorer.

script's variables

You can find the same information about script variables in the special values menu.

values of the script variables

Script parameter

script parameter

Script parameters are the parameters that are passed in a sub-script call.

They are found inside of the sub-script call action, in the added parameters.

parameters passed in subscript call action

You can find the same information about script parameters in the special values menu.

values of the script parameters

Assets file

Assets file

The assets file corresponds to the path of all the files that are in the assets (Example: data, resources, etc...). This corresponds to the relative path taken by these files.

The values are found in the project explorer, in the "Assets" folder.

assets file in project explorer

You can find the same information about assets file in the special values menu.

assets file values

Passwords

Passwords

The passwords correspond to all the passwords entered in a project.

They can be found in the project properties page.

To access the properties, click on “Project properties” in the project explorer

In the properties you have access to the created passwords.

project's password in the project's properties

You can find the same information about passwords in the special values menu.

passwords values

Channel values

Channel values

These values correspond to the values returned by a running channel.

Example:

In a script that opens a "Chrome" channel,

If we ask to retrieve the value of the “Application name” in the special values,

Channel values in special values

Then the name of the application opened by the channel will appear.

🔸 Warning

If the channel is not started, then the value cannot be retrieved.

Channel not started message

ATS script values

ATS script vaues

ATS script values are values that are only valued in a Java execution. They only appear when they are taken from the Top script in a Java execution.

ats script values in special values

Calculated values

calculated values

The calculated values are summarized in a drop-down menu.

These values are: Now, Today, Unique ID, Random string, Current iteration, Iterations count

calculated values in special values

Still require support?
Contact support

ATS Mobile Station

Mobile Station allows to perform tests on mobile (USB and Wifi) and on tablet (USB) through ATS or directly through Agilitest.

🔸Warning

Before continuing this documentation on the use of Mobile Station with Agilitest, make sure you have installed all the prerequisites by consulting the Mobile Station documentation on Gitlab: https://gitlab.com/actiontestscript/mobile/mobile-station#android-testing

Configure a Mobile Station server

How to configure a MobileStation in order for Agilitest to discuss directly with MobileStation?

Find a video showing the steps to connect a Mobile Station server to Agilitest by watching this tutorial: https://youtu.be/-SE1kN03LMw (configure a Mobile Station server)

Connection to a server

To connect to a server, you must go to the Agilitest settings by clicking on "Settings" at the top right of the screen.

Access to settings in Agilitest
Agilitest settings

In the "ATS Mobile Station server" box, you can add a server that you will connect to Agilitest by clicking on the "Add" button

ATS Mobile Station server box in the settings
ATS Mobile Station server box

You will be asked to enter the IP address and port, which will be retrieved directly from the Mobile Station interface.

ATS Mobile Station server information box
IP address and port information

Press the "Enter" button to confirm your selection and the server will appear in a new line within the Mobile Station insert.

Click on the server to display the details and to be able to change the IP address and port.

Server information
Server details

Connect Agilitest to a mobile

There is a connection between Mobile Station and Agilitest, which allows Agilitest to know which devices (including IOS/Android tablets) are connected to Mobile Station.

Once the Mobile Station server is configured, open a new channel.

Start channel action line in Ailitest

Then, select "Mobile application" in the choice of applications (phone icon in the upper right corner)

Mobile application selection button

Agilitest will open a pop-up to enter the phone's IP address and port. You can enter this manually, or select a server connected to Mobile Station, like the one shown above.

Enter the phone's IP address or select a server.

Mobile explorer

Click on the "Discover" button to open the mobile window and its applications.

Discover button in the mobile explorer

This will display the applications installed in the phone as well as a set of information accompanied by a visual of a phone that is not necessarily representative of its real appearance but is intended to differentiate an Android from an iOS.

From the list of applications on the phone, select the one you want to test, then click "Ok".

Once you have done this, you will be able to see that the channel has been modified with the new information, then click on the run button to open the application.

Start channel action open a mobile app

Mobile Station unique use

On the MobileStation side, you will see a lock appear next to the mobile in which actions are executed. That means that this mobile is linked to this computer using Agilitest, so if another person who is using Agilitest on another computer wants to use this mobile a error message will appear to inform that the phone is already used.

To free the phone et stop its utilisation in Agilitest, you simply have to close the channel of your script.

Mobile Station execution

Mobile Station allows you to run tests on mobile devices and tablets through ATS or directly through Agilitest. The tests can be done on Windows, where only Android can be executed, or on MAC where it is possible to execute both Android and iOS. There are two ways to connect to mobile devices:

  • By Wifi connection, except for iOS devices and tablets.
  • By USB connection

Here is a scheme showing the execution system with Mobile Station:

Open a mobile application

Here is an example of a mobile test executed on a MAC. Agilitest is open with an already filled in script and Mobilestation is working with a plugged in Iphone.

The test procedure follows the same principles as a Web test.

Firts, open a channel,

Channel start action

When you want to use the capture tool, a visual rendering of your phone will open on your screen.

calculator app opened with the start channel action

Capture of an element

To capture an element, the system is the same as for other forms of testing (web, desktop, etc...).

Then press the CTRL key on your keyboard to open the parent window of the captured element and the attributes.

capture of an element in the calculator app

With the capture open, it is also possible to interact directly on the elements of the application by pressing the Shift key on your keyboard.

Special buttons in Mobile Station

Mobile tests are very similar to tests done on other applications.  However, two buttons are specific to Mobilestation:

  • Home” button

It appears in the center at the bottom of the phone’s visual. It serves as the home button you find on physical phones. By clicking on it the home page of the phone will appear.

Home button on the device

  • Refresh” button

It appears at the top of the phone’s visual. This button is to reset the capture if it encounters any problems. It is used to reinforce the update.

Refresh button on the device

Mobile Station and continuous integration

Continuous integration allows the deployment of a mobile application developed externally to Mobile Station through an API Rest.

Scheme of continuous integration with mobile station

The application is sent to Mobile Station using a Rest API. Mobile Station then installs it on the devices so that the application can be run and tested with an ATS script through USB or WiFi.

There are three different strategies for implementing continuous integration:

Strategies for implementing continuous integration

  1. The tester's continuous integration launches the application developer's continuous integration
tester's CI launches the developer's CI

With its continuous integration, the test designer triggers the continuous integration of the application developer who will generate an application from the source code. This application will be sent to Mobile Station who will install it on the devices to make it available for testing. (Link to the video of the animated scheme: https://youtu.be/ISN874CZxxI)

       2. The continuous integration of the application developer launches the continuous integration of the tester

Developer's CI launches the tester's CI

The application developer's continuous integration will generate the application from the source code. Then it will be sent to Mobile Station and installed on the devices. With the intervention of the test developer's continuous integration, the tests will be generated via the source code which will allow the execution of tests from Mobile Station. (Link to the video of the animated scheme: https://youtu.be/5ui7ZPKnOKQ)

       3. The application developer and the tester work asynchronously

asynchronous work between the developer and the tester

The application developer and the test designer can run their tests asynchronously. With its continuous integration the application developer will install its application on its devices via Mobile Station. With the test designer's continuous integration, the application installed on Mobile Station and its devices can be tested. (Link to the video of the animated scheme: https://youtu.be/CyMW2N2tjiE)

Still require support?
Contact support

Create a Bitbucket-hosted Git repository

This article introduces the management of Agilitest projects with a Git repository hosted on Bitbucket.

What is Bitbucket?  

Bitbucket is a service offered by the Atlassian company, which allows the hosting and versioning of files using Git. It is well known in the corporate world, easy to use, and allows a perfect integration with Jira, a bug tracking system developed by the same parent company.  
The management of Git repositories is done from the web interface of the SaaS service, but a desktop software is available to perform files staging and commit operations. It is called Sourcetree.  
For the purposes of this article, the Sourcetree software has been configured in English for greater clarity on the original Git terms: Stage, Commit, Pull, Push, Fetch, Branch, Merge, Stash. Moreover, not all the terms of the application are translated from English.  

For the purpose of this article, it is therefore necessary to have a Bitbucket user account, and the Sourcetree software in connected mode. The connection of Sourcetree with the Bitbucket account can be done through the login credentials, or through API tokens that are created on the Bitbucket back office in Personal settings > App passwords > Create app passwords.  
SourceTree has been configured to use the "system" installation of Git and not the embedded version which can sometimes cause authentication problems for repository clones.

Setting up an Agilitest project managed with Git  

The first step is to create a Git repository from the Bitbucket web interface or from the Sourcetree software in connected mode.

Creating an empty repository  

From the software, go to the Local tab, click on the Create button.  
Enter the path of an empty folder to contain the repository on the local hard disk, as well as the name of the repository (here repository-test). Tick Create Repository On Account and select the Bitbucket account on which to synchronise the repository (Account, Owner, Description). Tick "Is Private" to avoid publishing your content in open-source in full view of everyone.  

Figure 1: Creating a repository in Sourcetree

Setting up an Agilitest project in the repository  

In local operation, without Git, Agilitest allows you to create new projects. These projects are populated automatically with a default tree structure that includes libs, src, target, etc.  

But in this case we started by creating the empty project folder (to make it a repository). So we need to copy the elements of an empty project into our Git repository folder (here, repository-test). One way to do this is to create the repository-rest-2 project in Agilitest and copy and paste its contents into repository-test. Be careful however to update the README.md, .atsProjectProperties, and pom.xml files to adapt the correct project name.

Another way is to create the Agilitest project first, move its content elsewhere, initialize the Git repository, put back its content, then Stage and Commit the repository.

First commit  

At this step, we are at level zero of the project and ready to start. It's time to Commit.  

To do this, go to Sourcetree: Unstaged files > Stage all, then click on the Commit button at the bottom right. Be careful not to confuse this with the Commit button at the top left.

Figure 2: Staged files for Commit and Push

The project is thus "snapshot" in its initial state and, in the future, it will be possible to return to this state. To synchronise the repository and its commits on the Bitbucket server, click on the "Push" icon.  

A question that often comes up is how often to commit. To answer this question, let's take a look at the notion of atomic commits, which it is advisable to respect:  

  • A commit concerns only one task: a test maintenance, an evolution of an ATS test, a new ATS scenario, etc.  
  • A commit does not break the consistency of the repository by preventing the execution of the tests or the campaign.  
  • A commit must be associated with a concise and explicit message.

Possibilities offered by this configuration  

The possibilities offered by this Git Bitbucket repository are the same as for any Git repository:  

  • Versioning of Agilitest projects and in particular of .ats files.  
  • Collaborative work between several automation profiles on the same project, and in particular the notion of Merge.  
  • Synchronisation of project folders between the Git repository, the automation roles, and the execution server. Git is thus a pillar of the CI/CD chain.  

Note that report retention is usually handled by Jenkins, with the retention of artefacts from each job launch (#1, #2 etc), rather than by versioning of runtime report files.

Still require support?
Contact support

Git repository for Jenkins builds

How to use a project from a Git repository as an Agilitest project source for running Jenkins jobs

In this guide, we will explain how to use a project from a Git repository as an Agilitest project source for running Jenkins jobs. With each build, Jenkins will first perform the Clone of the Git repository, and then proceed to run the ATS scripts configured in the test suite, and then generate any reports.  

Preparing the Agilitest project  

For the purpose of this guide, the Git repository is hosted at Bitbucket and has been initialized with a new empty Agilitest project by following the steps in the documentation Setting up a Bitbucket-hosted Git repository for Agilitest projects.  

Then, the Agilitest project (here, repository-test) lived on through commits, with the accumulation of ATS scripts, test suites, and data files.  

Creating the Jenkins job  

The Jenkins server must be started and connected to Agilitest from the Tools menu. It can be a local Jenkins server installed by Agilitest, or a remote server managed by your administrator.  

It is then time to create a new Jenkins job from the Agilitest run menu (by clicking on the "Manage project's execution suites" button in the "Projects explorer" accordion zone).

Figure 1: "Manage project's execution suites" button in the form of a cogwheel

Then switch to "Jenkins integration" mode and click on "Create a new task". Note that Agilitest has already recognized the presence of a Git repository in the project folder with its hidden .git subfolder. In our example we leave the */master branch by default. Then we drag and drop the desired test suite into the "Suites List" area.

Figure 2: Creating a new Jenkins job from Agilitest with a project initiated with Git

After validation, the new Jenkins job appears in Agilitest like this.

Before launching the build, it is essential to prepare the Agilitest project to support the Push and Fetch operations that will be performed by the Git client and the Jenkins server respectively. Git's default operation is not to synchronise empty folders, yet some of them are essential to Agilitest. A workaround is to drop an empty .gitkeep file in each empty folder of the Agilitest project. These files will force Git to synchronise the (empty) folders that contain them.

  • ./target/ats-output/.gitkeep
  • ./target/classes/assets/resources/lang/.gitkeep
  • ./target/classes/assets/resources/certs/.gitkeep
  • ./target/classes/assets/resources/images/.gitkeep
  • ./target/classes/assets/data/.gitkeep
  • ./target/report/.gitkeep
  • ./libs/.gitkeep
  • ./src/main/java/.gitkeep
  • ./src/main/scripts/.gitkeep
  • ./src/main/ats/subscripts/.gitkeep
  • ./src/assets/data/.gitkeep
  • ./src/assets/resources/lang/.gitkeep
  • ./src/assets/resources/certs/.gitkeep
  • ./src/assets/resources/images/.gitkeep

Configuring Jenkins  

First, the machine running Jenkins must have Git installed. The Jenkins server must have the Git plugin. Then the git.exe executable must be configured in the Jenkins Manage Jenkins > Global Tool Configuration > Git > Path to Git executable. In this case we have set C:\Program Files\Git\bin\git.exe.

Figure 3: Global configuration of tools (here, Git) in Jenkins

Let's take a look at what the newly created Jenkins job in the test repository project looks like from the web back office.

Figure 4: Configuration of a job from the Jenkins back office

The URL to the Git repository is recognized. It is important to configure authentication to the Git repository in Jenkins. Here we used a Bitbucket account (paul-chevalier) and an API token created from the "App passwords" menu in the Bitbucket administration interface.

One can initialize the Git repository in SourceTree with the syntax https://paul-chevalier:my-app-password@bitbucket.org/paul-chevalier/repository-test.git. The app password figures into the URL so in this case, configuring the Credentials in Jenkins is not required. To do that, SourceTree may require to address the System git.exe instead of Embedded gitlib.

Launching a build  

When launching a build on the Jenkins job thus configured, you can follow the Clone operation of the Git repository orchestrated by Jenkins in the standard output (Console Output icon). The name of the last commit appears here.

Building in workspace
C:\Users\paulc\.agilitest\work\jenkins\workspace\job\com.functional.repository-test\newJobJenkins
[…]
Fetching changes from the remote Git repository
>C:\Program Files\Git\bin\git.exe config remote.origin.url https://paul-chevalier@bitbucket.org/paul-chevalier/repository-test.git # timeout=10
Fetching upstream changes from
https://paul-chevalier@bitbucket.org/paul-chevalier/repository-test.git
[…]
>C:\Program Files\Git\bin\git.exe fetch --tags --force --progress --
https://paul-chevalier@bitbucket.org/paul-chevalier/repository-test.git +refs/heads/*:refs/remotes/origin/* # timeout=10
>C:\Program Files\Git\bin\git.exe rev-parse"refs/remotes/origin/master^{commit}" # timeout=10
Checking out Revision f167510d99abb5af2674db52227860cf423869fa(refs/remotes/origin/master)
>C:\Program Files\Git\bin\git.exe config core.sparsecheckout #timeout=10
>C:\Program Files\Git\bin\git.exe checkout -ff167510d99abb5af2674db52227860cf423869fa # timeout=10
Commit message: "Ajout de fichiers .copy manquants"
[…]

In addition, a new Git menu appears on the Jenkins page for the build (here #5).  

Through this article and its pre-requisites, we have used Git to link the test automation engineer's workstations that use Agilitest and the Jenkins server. Our continuous integration chain is ready!

Still require support?
Contact support

Setup a 2016 Windows Server

In this guide, we will present a step-by-step method to execute massive Agilitest tests.

In this guide, we will present a step-by-step method to execute massive Agilitest tests.

Global context  

The Windows server  

For the purpose of this guide, we installed a 2016 Windows Server. This is a common enterprise version, but the 2019 version works as well, as both share the same kernel as Windows 10.

This server is a virtualized VM with Linux KVM, and the hypervisor server itself is hosted in a datacenter. All configuration operations are done via Remote Desktop with the RDP protocol.  

During the setup, you need to check the "Windows Server 2016 Standard (User Experience)" version with a graphical environment. Firstly to facilitate administration operations, but mainly because most of the ATS tests generated with Agilitest require a desktop environment.

Two user accounts were created: worker1 and worker2.  

Installing Agilitest  

Agilitest was installed on the server from the Administrator session in C:\Program Files (x86\Agilitest. This installation is global for all users, and everyone will find an Agilitest shortcut on their desktop.  
On the other hand, the dependencies and configuration files are specific to each user concerning the two folders below:  

  • C:\Users\Administrator\.actiontestscript  
  • C:\Users\Administrator\.agilitest  

The same folders will be created for the worker1 and worker2 users automatically, during the first Jenkins build.  It is thus possible to have a particular configuration of the software for each user. For example, it is possible to modify the version of the Chrome or Firefox browser that will be used by the worker1 user by modifying the file C:\Users\worker1\.actiontestscript\.atsProperties.

You can find more information on the official actiontestscript page on GitHub.  

Installation of Jenkins  

Service or user command line  

Here Jenkins has been installed from the .msi installer for Windows. This installer offers to set up an independent Windows service, which we did (Login type: run service as local or domain user) with the user Administrator.

It is interesting to note that the Java package jenkins.war can later be run as a service or as a command line from a user session with desktop environment.

It is also important to mention that the way Jenkins is launched will have implications on the ATS builds that are executed. In service mode, running a test (e.g. Chrome web browser channel) will not generate any visible windows on the user session, which can be closed or locked, but the ATSV screenshots will be blank. In command line mode from a user session with a desktop environment, the test will generate visible windows on the user session, and the ATSV screenshots will work.

Anyway, it is recommended to run Jenkins as a service, and to run test suites with Jenkins Agents into user sessions with desktop environments. Jenkins agent can be stated at the opening of the session with shell:startup.

A tutorial in English on allowing a user account to run an executable as a service is available here. The steps to follow are as follows: Administrative Tools > Local Security Policy > Local Policies > User Rights Assignment > Logon as a Service (NT SERVICE\ALL SERVICES). The Administrator user has been added here.


The path to the Java JDK is requested by the installer. Java 52 (Java 8) or 55 (Java 11) are recommended by default but it is possible to use Java JDK 15 by adding the argument - enable-future-java in the Jenkins.xml configuration file.

The first connection to the Jenkins web back office requires entering a password contained in a text file. We then installed the recommended plugins.

At this point, the Windows Services Manager should allow the Jenkins service to be started and stopped. The auto-start type allows the service to start as soon as the server is started, even before a user logs on.  

The Jenkins installation was configured with the following points:  

  • Installation of the Locale extension to force the language "en" regardless of the language requested by the browser.  
  • Installation of the following Jenkins extensions:  TestNG Results Plugin & Test Results Analyzer  
  • Configure the path to git.exe (see article Using a Git repository as an Agilitest project source for Jenkins builds)
  • Add the label ats-executor in the menu Manage Jenkins > Manage Nodes and Clouds > Built-In Node > Configure.  

In this type of configuration, be careful to perform a Commit and then a Push of your Agilitest project so that Jenkins can execute your updates.


Still require support?
Contact support

Creating an instance on AWS

A step by step guide to create and setup an Agilitest/Jenkins instance running on the Amazon Web Services (AWS) cloud platform.

In AWS, an instance is a VM (Virtual Machine), a container etc. In our case, the instance will be a VM.

Creating an instance for Agilitest/Jenkins in the AWS cloud.

To create your instance you will go through 7 steps. To start creating an instance, click on "launch instance".

Step 1: Choose your image

Agilitest needs a Windows distribution. In the search bar, enter "Windows 2016" and select the "Microsoft Windows Server 2016 Base" image.


Step 2: Choose the instance type

For the choice of the instance type, a t2.small type will suffice. However, for comfort, using a t2.large or larger is recommended.

After selecting the type of instance you wish to use, click on "next".

Step 3: Setup the instance

For this step, no changes are required to get the instance working. You can proceed to the next step.

Step 4: Storage

The default configuration is sufficient for our instance. You can proceed to the next step.

Step 5: Tags

This step makes it easier to read your instance list. It is not necessary to add tags but it will simplify your reading.

Step 6: Security group configuration

First of all, you will have to create a security group. Name and description are open, it is up to you to fill in the information according to your configuration.
The type field allows you to choose with which protocol you will connect to your instance. The choice of a connection with the RDP protocol is simple and perfectly functional.
No modification is necessary on the protocol and the targeting of the ports.
In the source part, choose "My IP" so that only your machine can access your instance. If you need to access it via another IP address, you can add a new "custom" rule with the IP address of the machine you want to access.

Once done, you will need to click on "review and launch".

Step 7: Launch the instance and create the access key

Click on "launch", a window will open to select or create a key pair. If you already have a key pair, select it. If you do not have one, select "create a new key pair". Give it a name and upload it.
Be careful, you must save your key or you will not be able to access your instance. You can now launch your instance.

Connecting to the instance

Now that your instance has been created, you will have to connect to it. To do this, click on your instance once it has started and then click on "connect". You land on the connection window of your instance.

You will first click on "Get password" to obtain your password.

Here, you will have to get the key downloaded in step 7 via "Browse" and then decrypt this key to get your password.
Your password will not change from one connection to another, even if you stop your instance. So remember to write down your password so you don't have to repeat this step.
You can now download your remote desktop and connect to it with your password.

Installing Agilitest

Once your instance has been created and you have logged in, you will need to install Agilitest.
First, download Agilitest and JDK 10 (required for Jenkins). Then, launch Agilitest from the settings and download ATS settings and java (JDK) settings. Then go to Tools and download Jasper, Maven and Jenkins (embed server version).
If you have a Git you can link it to your Agilitest. To do this, go to "settings", and click on add in git account.


Jenkins Installation

To finish, you will need to connect to your Jenkins. Click on "connect" and then connect locally via a browser to the address localhost:port
In Jenkins, go to Manage Jenkins > Global Tool Configuration and install the JDK 10.
Optionally, still in Manage Jenkins > Configure system, you can add your github server to be able to replay your tests. However, you will also have to link your github to Agilitest. You can do this directly in the Agilitest settings.


Your instance with Agilitest is now ready to perform your first tests.

Still require support?
Contact support

Launching tests from an Azure DevOps pipeline

There are many ways to run ATS tests on Azure DevOps, here's a short overview of the solution we have implemented, which might give you some tips and tricks to implement yours.

To operate, Azure Pipeline relies on two types of agents:

1. Setting up the environment

You can install the Azure Pipeline agent on a Linux, MacOS, Windows or Docker machine. In this article we will detail the steps to use an agent on a Windows 10 machine. You can refer to the Microsoft documentation for the specifics of other platforms.

How to download and install the agent

To start, log in to Azure DevOps and click on User settings and then on Personal access tokens:

Personal access token menu
  • Create a new token by selecting the Agent Pools (read, manage) permission
  • Return to the Azure DevOps home page and click on Organization settings at the bottom left.
  • Click on Agent Pools and select the Default pool or create a new Self hosted one.
  • Click on New Agent and follow the instructions on the page to upload your agent.
  • Unzip the downloaded archive on the machine where you want to install the agent and run config.cmd.
  • Follow the script to set up your agent, including the token created earlier. When you have the choice between an interactive mode or as a service, choose the interactive mode otherwise you will not be able to launch the ATS tests.
  • Once your agent is configured, run run.cmd to start it.
  • For more information about how to download and install an Azure Pipeline agent: https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows?view=azure-devops

Machine setup

Once the agent is installed, several elements are necessary for the proper functioning of the ATS tests:

  • The .actiontestscript folder: this folder must be present at the root of the user's folder that will run the agent. It is created automatically and updated when Agilitest is launched. If you do not wish to install Agilitest on the machine where the agent is installed, you can copy and paste this folder from another computer where Agilitest is installed. In the future it will be possible to update this folder via npm and to automated it in the pipeline.
  • The JDK must be installed. Currently Agilitest needs JDK version 11 or higher.
  • Maven must also be installed, you can download it here:  https://maven.apache.org/download.cgi

2. Creating a new pipeline on Azure DevOps

On Azure DevOps click on the Pipelines menu:

The pipeline menu

Then click on New pipeline and indicate where your Agilitest project code is located and follow the instructions to connect the Azure Pipeline to it.

Select where AzuredevOps will find your code

You can choose to use a preconfigured pipeline for Maven.

Select a maven project

The selection of a maven project will allow AzuredevOps to directly manage the dependencies and external required libraries.

  • You can also start from an empty pipeline and add a Maven task.
  • In the pool section, change the "vmImage" type to "name" and enter the name of the pool you created earlier.
  • Modify the Maven task:
    o Change the value of "goals" to "clean test"
    o Change the value of "javaHomeOption" to "Path"
    o Add a "jdkDirectory" property and specify the path to the JDK on your machine
    o Remove the "jdkVersionOption" and "jdkArchitectureOption" properties
    o Add a "mavenVersionOption" property with the value "Path"
    o Add a "mavenDirectory" property and specify the path of Maven on your machine
    o Add a "mavenSetM2Home" property with the value "true"
  • Your YAML file should look like this:
Sample of a Yaml configuration file

For more information on the Maven task: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/maven?view=azure-devops

If you click on Save and run, the YAML file will be added to your source code and your tests will be run according to the configuration in your pom.xml file.

Still require support?
Contact support

Welcome to the Agilitest Support Center

Here is the full documentation about Agilitest and its features.

From setting up Agilitest to using its most advanced features, our documentation covers the broadest range of topics.

Should you not find answers to your questions about Agilitest here, please feel free to contact our Support team.

Still require support?
Contact support

Hardware and software requirements

AGILITEST is a client application running on Windows operating systems.

Supported systems:

  • Windows Server 2016
  • Windows 10 at least
  • Linux (2018+)

Software requirements

The following software requirements are necessary for the Agilitest solution to work properly.

  • Installation of the Java JDK 17 at least (Jdk 20 recommended)
  • Installation of the .NET Framework 4.8
  • Browsers: Support for the latest versions of browsers and for relatively recent versions for which there is a Web driver. Specific version may be configured as default.
  • Chrome
  • Firefox
  • Microsoft MSEdge
  • Opera
  • Brave
  • Chromium / JXBrowser (Needs of Agilitest technical support)

Android

Agilitest supports recent Android versions> 5.0.

Support of physical mobiles.

Support of emulators (Android Studio, Genymotion...)

iOS

Agilitest supports recent iOS versions> v12.

Support of physical mobiles.

Support of emulators.

Material requirements

Personal computer :

The minimum hardware recommendation for using AGILITEST on your client computer is the same as that for the .NET Framework 4.8

  • Processor : 2 GHz at least
  • Memory : 16 Go

Global installation if everything is installed: Approximately 500 MB of disk space is required

  • Java JDK: 300 Mo
  • Apache Maven: 10 Mo
  • Selenium Libraries + ATS: 40 Mo
  • Web and system Drivers : 26 Mo

Screen:

Agilitest is designed for professionals who create and maintain automated functional tests. A minimum of two screens is essential for good conditions.

A good screen resolution is required, at least 1280x1024, in order to view the application without scroll, or with a limited scroll and Agilitest in the same screen.

💡 Tip

For ease of use, we recommend using 2 screens. However, a single, fairly large screen may be sufficient. Agilitest is 1500px wide and 1000px high, so you need to take this into account, plus the size of the application you want to test, so that both can be displayed legibly on the screen.

Network & applications

Agilitest update:

In order to regularly update your agilitest version, you'll need to have a full network access to those sites:

https://api-agilitest.com

https://actiontestscript.com

Applications accesses:

The computer on which Agilitest is installed must have access to the applications:

Web & webservices: Access to the web application through a web browser installed on the computer

Desktop: the application must be installed on the same computer as Agilitest

Mobile application: You'll need to install ATSMobileStation on the computer on which the physical or emulated mobiles are installed

SAP Gui: The computer must have a SAPLogon access

Still require support?
Contact support

Genymotion emulators

Agilitestet and ATS, through free software ATSMobilestation, downloadable here let you use Android emulators from Genymotion Desktop.

Download and install the Genymotion solution

The prerequisite to be able to do this is to have downloaded and installed the Genymotion solution and installed an emulator.

By default, the Genymotion Desktop solution will allow you to launch emulators for your personal use. This can allow you to carry out tests before opting for a paid version.

The advantage of using this solution is that it is perfectly integrated with Agilitest and ATS, and that you will be able to very easily launch a wide variety of Android emulators:

  • Different formats (phone, small tablet, large tablet)
  • Android version
  • Screen density
  • Screen size in pixels
  • Source

Genymotion Desktop

Then you just need to launch an emulator:


Start a Samsung Galasy S7 emulator in Genymotion
Emulateur Galaxy S7 Genymotion

Then, you must launch ATSMobilestation, which indicates the terminals which are connected, you have several possibilities:

In our case, the Genymotion Desktop emulator appears directly in the list of terminals connected to the PC:

ATS mobilestation - Agilitest

You just have to use it to perform a mobile test.

In the image below, you will be able to identify: the Genymotion Desktop solution having launched an Android emulator, Agilitest and ATSMobilestation launched and carrying out a capture operation on a key on the calculator.


Still require support?
Contact support

Genymotion cloud

Agilitestet and ATS, through free software ATSMobilestation, downloadable here allow you to use Android emulators in the Genymotion cloud.

The prerequisite to do so is to have a Genymotion cloud account.

At launch, ATSMobilestation shows the connected devices :

In our case, we have a OnePlus physical mobile connected by USB and controlled by the Wifi network.

A physical mobile is connected by Wifi

Setting up your Genymotion account

ATSMobilestation will manage your Genymotion account, launch emulators and perform tests on them using Python scripting language gmsaas .

Click on the "gear" icon to open the settings menu:

Menu paramètres d'ATSMobilestation

You need to install Python, then enter its path in the "Python folder" field.

Click on "Install components", ATSMobilestation will install the gmsaas components:

Installation of gmsaas

Enter your Genymotion credentials:

Renseignez vos identifiants

The installation is finished!

Click on "Finish"

Launch a Genymotion emulator in the cloud

ATSMobilestation then displays a new tab, with the list of Genymotion terminals to which you can have access:

Liste des devices Genymotion dans ATSMobilestation  

Click on the green + to launch an emulator in the cloud, the emulator is then installing...

Install a Galaxy S7

... and is displayed in the list of available emulators. The "chain" icon indicates that the emulator is linked to your instance of ATSMobilestation. The emulators available on the same Genymotion account but on other PCs/Servers do not have a chain.

The device is installed

You can also count them in the Genymotion cloud tab:

3 Genymotion devices are launched

The new terminal is available in the list of connected terminals:

Connected and ready to run

Use the Genymotion

You can use it in Agilitest to write or launch tests:

Opening a channel on a Genymobile terminal in the cloud
Performing a test on a Genymobile device


Still require support?
Contact support

Android emulators

First, you must be familiar with the use of ATSMobilestation, which centralizes all of the mobile terminals that are accessible from a given PC / server.

ATSMobilestation can connect to your physical terminals, with mobile terminals in the cloud (via the Genymotion solution, which is also available on the desktop), but also perform tests on emulated Android terminals installed on your machine.

There are several, and we do not have an exhaustive list of the terminals supported by ATSMobilestation, in general, an access to adb is enough for us to support them.

For the demonstration, we will use an emulator provided by Google with the suite Android Studio

Install Android Studio and launch an emulator

By clicking on the previous link, you will be able to download and install Android Studio. There is no particular difficulty, just make sure that the installation of "Android Virtual Device" is taken into account.


Installing Android Studio

At the end of the installation, launch Android Studio and select the menu  "Tools" and  "AVD Manager":

Launch of AVD Manager

Click on "Create virtual device".

Then select a device type, the version of Android on which you want it to work and download the system image.


Selecting an Android configuration

Then complete the download and configuration of your device, you should then see it appear in your list of available terminals:

 List of installed Android devices

Then just click on the "Play" button on the right, and wait for the system to launch.

Launch ATSMobileStation

Then launch ATSMobilestation which will automatically spot the launched Android emulators, and you should see your emulator appear in the list:


The Android emulator spotted by ATSMobilestation

The right button allows you to launch the emulator, stop it, etc.

Once launched, it appears in the list of "Connected devices", in the image below you will see an emulator launched on your PC, and a phone connected to your PC: both are accessible by ATS and Agilitest.

Liste of connected devices

Launch Agilitest

Then, you just have to launch Agilitest and you should see your emulator appear in the list of accessible terminals to perform a test:

Selection of a device in Agilitest

Then you just have to select an application to test


Selecting an application to test


Agilitest in Capture mode on the Android Studio emulator
Still require support?
Contact support

Automation of HTTP Archives

Agilitest allows you to automate the creation of HTTP Archive (HAR) files which will be useful for analyzing network flows during the execution of a test.

HAR format

The HAR format makes it possible to record the details of the Urls  visited and the chronology of their loading made during an HTTP request.

It records the information related to all of the pages, files and images that are downloaded by a browser when you visit a URL.

You can then use a .HAR file viewing software that will allow you to display this query graphically.

You can obtain this result :

Visualisation d'un fichier au format HAR (source Wikipedia)

More information on the HAR format: https://en.wikipedia.org/wiki/HAR_(file_format)

How it works in Agilitest

The HAR format recorded by Agilitest involves more than visiting a  single URL, it can record all of the performance of a software test and  all of the URLs that were visited by the test, and it can do it action  per share.


We have therefore developed new ATS actions specific to this integration, you can put URL filters, start and stop recording as well.

Here is the detail of the operations to be carried out:

Activating performance mode


The performance mode is not activated by default in Agilitest.

To do this you will need to modify your .atsProperties file and insert an XML element <performance> inside <execute>:

<?xml version="1.0" encoding="utf-8">
<execute>
  ...
<performance>
<idle>4</idle>
<blacklist>
<url>https:\/\/www.google.com.*</url>
<url>https:\/\/accounts.google.com.*</url>
</blacklist>
</performance>
  ...
</execute>
...

You should know that the performance tag allows you to integrate other configuration elements.

For example, integration with Octoperf will allow you to transmit your HAR files directly into Octoperf projects to carry out load tests.

Les correspondances des paramètres sont les suivants:

  • idle : Allows you to change the default network timeout. See the "Configure Network Capture" action below.
  • blacklist: allows you to specify URLs whose browsing information you do not want exported to the HAR file. This allows you to remove advertisements, for example.

Once this configuration is done, if you restart Agilitest, you will see a Performance menu appear on the right side of your screen:

New Performance menu on the right of the possible actions

The Performance menu is drop-down and displays the following sub-menus:

Performance menu

Open a channel in HAR recording mode

You must create or modify your channel opening action to indicate to Agilitest that you wish to activate the network recording and control functions.

Start channel using performance mode

Click on the third icon at the bottom right.

The channel opening action shows an icon identical to the "Performances" menu

Start channel using performance mode

Add recording functions

Here is the detail of the different functions available:

Settings

Configure network capture.

"Configure network settings" menu

You can modify the behavior of Agilitest when recording the replay of the test allowing to provide a .HAR:

  • Latency :  Allows you to add latency in seconds to all requests sent and received by the web browser in use by Agilitest.
  • Traffic idle :  Maximum time in seconds before considering network traffic to have ended after the last recorded network activity (default: 3 seconds).
  • Upload : Limits the uplink bandwidth in bytes / second.
  • Download :  Limits downlink bandwidth in bytes / second.

Adding a URL filter allows you to filter the URLs that will be counted and saved in the corresponding HAR file. You can add as many filters as you want.

Add a URL filter

Record

This action is a switch on/off which tells to Agilitest when you want to start recording network traffic.

Network record disabled

You can stop and resume recording at will depending on the actions that are performed by Agilitest.

Restart the network capture

Recover HAR file

When your test is performed, if the channel has been opened in Performance mode, the channel closing action will generate the .HAR file.

You just have to recover it in the following directory:

target/performance/generateHAR.

Still require support?
Contact support

Automation of Octoperf scenarios

What is Octoperf?

Octoperf is a SaaS and On-Premise Load Testing solution.

Agilitest allows you to automate the generation of scenarios and to import them directly into your Octoperf account.

The two solutions are therefore very complementary since you will be able to transform any functional test carried out with Agilitest into a load test in Octoperf.

Principle

The principle is as follows:

  • You record a functional test scenario with Agilitest
  • You decide that this scenario is a good candidate for load-up tests carried out with Octoperf: you add the ATS actions necessary for its instrumentation
  • Then you replay this scenario, Agilitest will generate a .HAR file and can transmit it directly to your Octoperf account, in the worspace and the project you want.
  • You can then use in Octoperf the data that has been imported by Agilitest to carry out load tests, and analyze the results.

This makes it possible to benefit from the Agilitest capability of recording and replay  a scenario to transform any functional scenario into a load test.

We have therefore developed new ATS actions specific to this Octoperf integration.

Here is the detail of the operations to be carried out:

Activation of the Octoperf mode

First of all, you must activate the Performance mode, you allow the generation of HAR files

It is also necessary to activate the Octoperf mode, and the two operations can be carried out at the same time, because you will have to modify your .atsProperties configuration file and insert a <performance> tag inside the <execute> tag.

The following code activates the two necessary modes:

<?xml version="1.0" encoding="utf-8"?>
<execute>
  ...
<performance>
<octoperf>
<host>https://api.octoperf.com</host>
<apiKey>1b3b3b85-bbb5-219b-936b-61bb521b23ed</apiKey>
<workspaceName>AgilitestWorkspace</workspaceName>
<projectName>AgilitestCaptureProject</projectName>
</octoperf>
<idle>4</idle>
<blacklist>
<url>https:\/\/www.google.com.*</url>
<url>https:\/\/accounts.google.com.*</url>
</blacklist>
</performance>
  ...
</execute>
...

The parameters are as follows:

  • host : corresponds to the address of the Octoperf server, in general leave it by default.
  • apiKey : corresponds to your API key which you can obtain on your Octoperf account by clicking on the "Profile" section of your account

Profile section of your Octoperf account

It is then displayed not visible at the bottom right, you just have to make it visible and copy it by clicking on the "eye" icon.

API Key
  • workspaceName : Corresponds to the name of the Octoperf workspace in which your project is located
  • projectName : The name of your Octoperf project

Once this configuration is done, if you restart Agilitest, you will see a Performance menu appear on the right of your screen:

New Performance menu to the right of possible actions

The Performance menu is scrollable and displays the following submenus:

Specific Octoperf actions

Open a channel in Octoperf recording mode

You must create or modify your channel opening action to indicate to Agilitest that you wish to activate the network recording and control functions.

Click on the third icon at the bottom right.

The channel opening action brings up an icon identical to the "Performances" menu


Opening of a channel with activation of network functions


Add integration functions with Octoperf

Here is the detail of the different functions available:

Settings

Will allow you to configure the network capture.

"Configure network settings" menu

You can modify the behavior of Agilitest when recording the replay of the test to provide a .HAR:

  • Latency : Allows you to add latency in seconds to all requests sent and received by the web browser in use by Agilitest.
  • Traffic idle : Maximum time in seconds before considering network traffic to have ended after the last recorded network activity (default: 3 seconds). The default value of this parameter can be modified with the <idle> tag in your .atsProperties file.
  • Upload : Limits the uplink bandwidth in bytes / second.
  • Download :  Limits downlink bandwidth in bytes / second.

Adding a URL filter allows you to filter the URLs that will be counted and saved in the corresponding HAR file. You can add as many filters as you want.

Allowed URL filter

You have the option of adding unauthorized URL filters, which will therefore not be saved in your HAR file. As this is more of a general configuration topic, this is done directly in the configuration of your .atsProperties file.

Record

This action in switch on / off mode allows you to tell Agilitest when you want to start recording network traffic.

Recording action: recording is now disabled

You can stop and resume recording at will depending on the actions that are performed by Agilitest.

Resume the recording

Save VU

Action save VU

This action completes the registration, finalizes the generation of the .HAR file and sends it directly to your Octoperf account according to the methods defined in the configuration parameters of your .atsProperties file.

You have the possibility to act on the following information:

Modification of the description of the virtual user
  • Modify the description of the VU that will be sent to Octoperf
Backup settings for the virtual user
  • Change the name of the virtual user
  • Add a list of tags, separated by commas which will be used in Octoperf.
  • Select the possibility of appending the actions.
  • Append: the HAR actions accumulate in your Octoperf project
  • Don't append : the HAR previously saved in your project are erased before sending the HAR file.
Still require support?
Contact support

Making software tests more robust

There are a number of tips to know when doing software test automation in general, and with Agilitest in particular to make your tests more robust.

Indeed, when it comes to automated software testing, there is an automation tool, and there is also the SUT (system under test) which has its own behavior, its response times and its peculiarities that will have to be taken into account.

This post covers a set of tips that we recommend you use to make your tests more robust.

About the use of Max / Wait for in a test

Your server is slow to respond : never mind, we will wait 5 more seconds !

We do not recommend doing that, this post will explain why and how to deal with the subject. The proposed technique will allow you to manage all the solutions where a certain latency between the software and Agilitest can occur : waiting for a server response, complex calculation on a Desktop solution...

Object identifiers

Some component frameworks generate identifiers that may only be valid for a given browser session, and relying on these identifiers to perform tests is risky, since it is highly likely that during execution The identifiers have been changed.

In some cases this can still be done using regular expressions.

It is enough to recognize the part of the value of the attribute of the component to be recognized that is always fixed, for example a prefix or suffix, in the following case :

"select_

"id = select_4657

To treat this case, the following regular expression applied to the attribute "id" should do :

select_( d{4})

So the number of four digits can vary depending on the executions, but we will always find in a very robust way the component with an id beginning with "select_".

The design of ATS

During the design of Agilitest and the ATS language, we have benefited from several years of experience in market automation solutions, and we aim to overcome a number of shortcomings and/or defects. This involves the implementation of configurations specific to runtime environments: by default, ATS is designed to work correctly in most cases, But it is still possible to change its configuration.

Double property checks

When recovering a value on a composter, Agilitest will double-check the value to ensure that it retrieves accurate and stable information. This ensures that the values we want to control are definitive and those provided by the test, while adding stability and reliability.

The configuration by robot execution

The reliability of a test also depends on its speed or its slowness of execution. Indeed, networks and machine performance can put tests into chess.ATS takes into account the possibility that machine performance impacts the execution of tests. Thus, when it is launched, ATS will recover a configuration file .atsProperties specific to the job it is running on.

This makes it possible to fine-tune runtime environments to the desired context, for example a development software version or a production version may not respond in the same way: With this system there are many more guarantees to always have a regular replay.

Configuration by navigator

The behavior of the test and therefore the result of its execution may also vary depending on the browsers. It is therefore also possible to configure the execution environment according to the browsers used.

Robustness at the center of the issues of our development product

Robustness and maintainability of the tests are at the center of our concerns because we want that the testers focus on what is really important to them. In Agile/Lean jargon, we seek to remove "muda" (waste of time/waste) as soon as we have the opportunity.

Still require support?
Contact support

Automating dialog box validation

How to automate a dialog box validation

It frequently happens that you have to validate a dialog box on WEB supports in order to confirm or cancel an action.

To automate the validation with Agilitest please follow the following steps:

  • Add a "Mouse click" action
  • Click on the "Root of the application" button to select the interface type among the following

A new menu appears:

  1. Interface element
  2. System button
  3. Dialog box
  4. System interface
  • Click on the "Dialog" button"
  • Hover over the item to select the desired answer then click on it
  • Select the type of validation desired on the dialog box:    
  • Accept    
  • Dismiss

Your dialog validation action is automated.

Still require support?
Contact support

Encrypted passwords management

Agilitest allows the recording of variables which are then encrypted in ATS files.

How to manage encrypted passwords

This allows them not to appear in plain text in the files, nor in the test editing interface.

You can access the use of an encrypted password through the shortcut located in the special keys when entering text.

encrypted-password-shortcut

They can also be managed in the "Edit project properties" menu.

Edit project properties

Click on "Add" and enter a variable duplicate, value.

Thereafter, the value can be retrieved in ATS as a normal variable using the keyword $pass(variable).

What differs from the normal management of variables:

  • Passwords are not printed in the editor user interface anywhere other than in their edit menu.
  • They are not visible in ATS files, not even their declarations.
  • They do not appear in ATSV files.
  • They do not appear in the logs and logs generated by Agilitest and ATS.
  • Each variable declared using $pass() variables is handled in the same way.
Print a password in Agilitest

When to use encrypted passwords

We recommend that you use encrypted passwords when you cannot do otherwise.

For example, we do not recommend that you perform your tests with real user accounts that are in your teams by encrypting passwords. The solution that we recommend to you is to create users dedicated to tests and having their own privileges, if possible limited.

If you cannot do otherwise, for example if you must test the administrator account, we advise you to do so on environments similar to production that are secured differently (for example physically on your premises).

Finally, if you are testing on systems that are in the cloud, you will not be able to do otherwise, and in this case, we advise you to complete this mechanism, for example by going through secure transfer protocols like https or using one-time passwords issued by a secure server.

Still require support?
Contact support

Quick start

You have just obtained your license or a trial version and with the help of this documentation your first steps on Agilitest will be guided. Here is an article to help you install Agilitest and then start performing your first tests.

▶️ You can find a tutorial on how to install Agilitest on our Youtube channel.

1. Download Agilitest

Agilitest is installed on a computer running the Windows operating system. Before starting your installation, it is preferable to take note of the technical prerequisites listed in a dedicated documentation.

If you don’t have access to the Agilitest archive, go to the page : https://www.agilitest.com/free-trial.

Enter your personnal information and we will come back to you for a short demonstration before the installation.

Our support team will give you a link to download the archive.

Once you have a link to download Agilitest, and you are sur to have an active license or a demo version, you can install Agilitest on your computer.

To do that, open your download repository in your Windows explorer to recover your .zip folder.

The .zip folder contain all the necessary files to make Agilitest work.

You can extract this folder with by clicking on the “Extract all” command

extract agilitest.zip folder

Then, place your folder in the repository of your choice in which you can create a sub-depository named “Agilitest” in order to better organize your files.

🔸 Warning

Make sure that you place your Agilitest folder in a directory where you have access rights. If this is not the case, it may cause problems when creating scripts. The "Document" directory is recommended.

Click on “Ok” to confirm the location of your archive and the files it is composed of.

Open your Agilitest folder then double click on your .exe file to launch Agilitest.

2. Launch Agilitest

The ChangeLog window will appear at the opening of Agilitest when it is your first time opening Agilitest or when modifications have been made since the last time you have opened the software.

ChangeLog

The ChangeLog is there to inform you about the last current Agilitest version and about the modifications that have been made on the software (sometimes with a short explicative video to better understand).

For your first opening of Agilitest, the terms and conditions of use will be presented to you.

Read them and click on the “Accept” button.

terms and conditions

Once this is done, the first ATS components updates will start automatically.

ATS components update

An update is made about every week, notably to support the browsers and webdrivers evolutions.

Agilitest works with the JDK (Java Development Kit). Java will be used during the whole compilation and execution phase of automated projects. By default you will need a JDK in your environment.

To parameter youor JDK you can do it from the settings menu in Agilitest.

Settings button

It is possible to link to an existing JDK on your computer or you can directly download it from Agilitest as indicated by clicking on the "Download" button. This will download the open JDK which is a selfported version of the JDK.

Java (JDK) settings

The two prerequisites to use ATS are the ATS package and the JDK which will make the editor functional.

You need at least a version 11 of the JDK. Agilitest will download the latest version.

💡 Tip

If you have UFT installed with a JDK in the environment variables, then you can make Agilitest cohabit with this existing Open JDK.

You can return to the editor interface by closing the open window.

The license is located at the very top of your editor. By clicking on it a license pop up will appear with a number of information such as id, system ID etc…

Agilitest activation

You can also create or change your ID by entering another ID in the input bar and then clicking on the "Create Account" or "Change ID" buttons.

You can also find information about your license in the "Help" section.

Help button
Help and informations - license

In the "Help" menu you will also find various links that complement the use of Agilitest.

Help menu

You will find the link to download Agilitest. Links to download Mobile Station on Windows or MacOs and a link to download the ATSV player.

In the right hand sidebar are various resources with links to Agilitest documentation, website, tutorials, web drivers and a list of integrations you can use with Agilitest.

In the tools menu you will find additional tools that can enhance the use of Agilitest.

Tools menu

By default, Agilitest will display an error icon if they are not downloaded. It is recommended to download all of them during the installation to have them accessible.

Tools installation

The editor can be divided into several parts. The project management part with buttons to create a project or components.

Project management section

The section of settings and configurations with the category Help, Tools, etc…

Settings and configurations section

The project explorer where the different projects and their components are placed.

Project explorer

The channel management part which is used to manage the execution of the scripts.

Channel management

Then the part dedicated to the variables below.

A documentation is at your disposal for more details concerning the Agilitest interface.

3. Create a new project

▶️ You can find a tutorial on how to create a new project on our Youtube channel.

To create a new project, click on the action “New project”.

New project button

You can rename your project and change its domain if you want to divide your project into different domains.

New project window

When you create a new project, it will create a project directory "AgilitestProjects" where all your projects will be automatically placed.

The path to your project in Windows Explorer will be indicated. You can also add a description to your project.

Once the project is created, it will be placed in the project tree in the project explorer.

To find your project you have to go through the "src" (source) > "main" > "ats" directory.

project explorer files

Note: Agilitest scripts are ActionTestScript files (.ats). You can create sub-directories to better categorize your projects. You can also create sub-scripts, which have no differentiation with scripts, both are ats files, only one is called by the other.

There are two ways to create a script:

  1. By doing a right click on the “ats” file and by selecting “Create ATS script
Create ATS script command

       

          2. By clicking on the “New component” button.

new component

           And by selecting “Create ATS script

New component window - create ats script

Enter the name of your script. This will open a window corresponding to the graphic interpretations of the actions that will be performed on your script. The ATS format is a textual format that will describe all its actions.

script view

To do the link between Agilitest and the tested application you need to open a channel.

To do that, click on the “Channels” menu and select the action “Start channel

start channel action

It is possible to do multi-channel by creating several open channel actions. The name of these channels will automatically adapt to the number of open channels. It is possible to rename them.

🔸 Warning

It is possible to make only one instance with web browsers, which means that for the same browser opened in several channels it will correspond to several tabs or channels that open different browsers in parallel.

Once you have created the channel action, click on the execution button to launch the action

execute action button

This will open the channel opening window with various information about the browser and the operating system.

ats page

On the Agilitest interface, the opening of the channel will be indicated by its presence in the channels management area with a line that appears with the name given to the channel.

Channel open in channel's management

In a web test, to access a URL you must click on the "Navigation" action and select "Browser URL".

browser URL action

Click on the action to open the input bar and indicate the url you want to launch.

input

Once the site is open you can perform various actions using the elements that compose it. To do this you must capture the elements with the capture tool.

Click on the “Capture” button in the channels management

capture button

The capture tool will open by placing a filter on the channel and bringing up the capture window. With your mouse you can hover over the DOM elements that will be highlighted by a blue box.

capture tool open

To capture an item, press the CTRL key on your keyboard to open the parent window of the captured item.

captured element's parents

This window displays the tree structure of the element from the root to the targeted component. Each branch of the tree has properties that can be selected as attributes. The properties can be taken from the various branches of the tree for further clarification.

🔸 Warning

Pay attention to the properties that are going to change and that cannot be recognized in the script afterwards (Example: text, class, etc).

Click on an attribute to open the property value. This can be changed in the form of a regular expression.

regex

Once the attributes are selected, click on the statistics button to confirm the uniqueness of the element found.

statistics button

If several elements match these attributes, you can select others by moving up in the branches.

Once this is done you can drag and drop your element into the script which will create an action.

Select the action you want to use.

Action selection of the captured element

Once the capture is complete, you can close the capture from the channel management menu in Agilitest.

close capture tool button

Or you can click the "Close" button from the capture window to stop the capture tool.

close button in captured window

Your actions will be added to your script. It is possible to move them manually.

action presentation
  1. Each action has an index that is automatically added and adapts to its position in the script.
  2. In the action is the nature of the action which can be configured.

Example : For the text input you can enter the text you want to appear in your test.

       3. Finally, you will see the component that has been captured. You can click on it to have access to its value which you can change. You can add parents and children to your element and change the nature of the component.

children and parent's element

Once your script is completed, you can launch the execution by clicking on the “Play” button in the channels management menu.

Execute test button

🔸 Warning

In access remote, make sure that your sessions are kept open during the executions.

When you want to close your channel, you can create an action “Close channel”.

Close channel action

You can also close your current channel from the channels management menu.

To do that, click on the “Close” button

Close button in channels management

Or you can click on the “Stop” sign in the channel line

Stop button

🔸 Warning

You should not close your channel manually directly from the application. Agilitest is not intrusive (no plugin), it has no way of knowing that you have closed an application directly by the actions of the operating system (Example: by clicking on the cross of the application window).


Still require support?
Contact support

Calls for conditional sub-scripts with Agilitest

Agilitest allows you to call conditional sub-scripts, that is, the evaluation of a condition leads to the call or not of the sub-script.

How to call conditional sub-scripts

To perform this operation, you must create a sub-script call action beforehand.

Then, click on "call script" then "create a condition".

Click on create condition

Agilitest then displays a selection popup of a variable on which the condition is based, which must be a tie.

Selecting a condition

Only one condition can be selected, and it is possible to remove a defined condition by re-clicking on "call script".

Ability to remove a condition

The other call parameters of the sub-script remain the same: you can pass input variables or a CSV file.

During execution, Agilitest will evaluate the condition and, depending on the result, it will call or not the sub-script using the defined parameters.

For now, only equality has been proposed as a condition, and Agilitest will show you in the editor the result of the current status of the call of sub-scripts :

  • Green arrow: the sub-script would be called
  • Sense-forbidden: the sub-script would not be called
Explicit signaling

We advise you to use this function with a lot of precautions, because it will allow you to integrate non-genericity in your tests, and therefore potentially malfunction related to uncontrolled data.

The cases for which we recommend it are the following :

  • Make a call based on a global variable value, this allows you to perform set-up operations based on whether or not a variable is present in the call parameters of continuous integration for example.
  • In a sub-script with a CSV file: call a script according to a parameter of the CSV file passed in sub-script call, this requires you to have a second level of sub-script, but allows you to manage dedicated controls.
Still require support?
Contact support

Capture boxes on overflown elements

In order not to be intrusive with the tested software, Agilitest will not deploy a plugin on the browsers and will appear as an over-print of the windows of the tested application. In some cases, this can cause display shifts between the two applications, especially when displaying the component selection boxes.

How to deal with overflown element

Symptom: The capture mode of my AGILITEST editor is not perfectly aligned on the page on which I want to record operations.

Check that your Windows System has not automatically made a change in the size of texts, applications and other elements displayed on each of your screens. By name, this parameter must be set to 100% for the proper functioning of the AGILITEST capture. To open the display menu : Right click in the window's background and select "Display Settings".

Set the text size to 100%

Still require support?
Contact support

Element "Not found"

It can happen in test automation that an element is no longer recognized during an execution due to modifications made in the software.  

To fix it, AGILITEST allows direct adjustment of tests in the editor.

Location and analysis

The user can use the video of execution of the failed test and / or an illustrated report to understand and locate the recognition failure. There are then two possibilities:

  • The element initially sought no longer exists in the software tested.
  • The element initially sought does exist but is no longer recognized.

Fix the test

If the element sought no longer exists:

  • The test can be modified by deleting this action directly by "right click" via the test editor.
Delete an action
  • The user checks the previous, linked and following actions in the test execution, if necessary.
  • Save the modification.

If the element sought exists well but is no longer recognized:

  • A modification of the test is therefore necessary via in particular an update of the recognition criteria for this element from the AGILITEST editor.
  • For this AGILITEST indicates precisely which attribute is not found to locate this element.
Find the element not found  
  • Then open the capture mode via the editor.
  • Hover over this item again on the software to be tested.
  • Push the CTRL button to capture the element

Reselection of the missing element
  • Adjusts the detection attributes (it is possible to use "Regular Expression" on each attribute for robustness purposes)
Selection of identification criteria
  • Validate the uniqueness of detection via the incorporated statistical test.

Validation of the uniqueness of the component

Drag & Drop these new attributes on the action concerned by this "non detection" in order to update it.

The new identification is implemented
  • Save the change.
Still require support?
Contact support

Opera and Firefox: channel opening failure

AGILITEST may not automatically locate the installation location of the browsers on which you wish to automate functional tests.

How to locate the browser installation

Relative error message:

To fix this, you just need to manually configure the ATS configuration file accessible directly from the editor via the "Settings" menu> "Edit configuration" button.

Edit configuration

The file will be automatically opened with your default file editor:

You will only have to define the path specifically established on your system to access the execution files of the target browsers ("opera.exe" in our example).

Save the modification of the configuration file.

Close and restart AGILITEST to take the change into account.

The configuration file is also used to configure other functions of the AGILITEST editor. For more information, please consult the installation and configuration section> User guide - Editor configuration

Still require support?
Contact support

Activation of Agilitest

You have just ordered an Agilitest license and you should have received your customer ID. If this is not the case, please contact our sales department who will provide it to you. (mail : contact@agilitest.com )

How to activate your Agilitest licence

Here is all the information necessary to obtain the activation of your licenses on your workstations, this operation must be done for each license and for each workstation:

  • Connect to the computer on which you want to activate the license.
  • Launch Agilitest and click on the license activation banner at the top
 License activation banner  
  • Display of the license activation popup
  • Enter your account identifier in the "Create or modify your account identifier" field
  • Click on "Change Account"
  • If the number of activated licenses is less than the number of licenses you have ordered, activation should be effective:
Agilitest activated
  • If you click Help at the top right, you should see the activation information appear (machine name, user name, system id, customer id, email, company and expiration date).
Activation information

If the activation is not done, please contact our sales department or send a request to: contact@agilitest.com

You can also contact us if you have activated a license on the wrong extension or if you want to change the extension.

Still require support?
Contact support

Recovering a script

You have the possibility to delete your ATS scripts via the contextual menu of the right mouse click directly from the explorer file tree proposed by Agilitest.

Method to recover a script

A confirmation window of this deletion is then proposed to you:

(The latter informs you that the deleted ATS script will be sent to the Windows system trash.)

If this deletion was an error, you can simply restore the said file via the Windows system recycle bin.

Click on your ATS project in Agilitest to update its content and the restored ATS script will be displayed again:

Comment faire un refresh des dossiers dans l'explorateur Agilitest

The recovered file can be used

You can then edit it, launch it, etc., as if it had not been deleted.

Still require support?
Contact support

iFrames automation

Some HTML pages include iFrames (inline frames) in their design, especially to insert elements from another server into the page.

How to identify iFrames elements

To find elements on these HTML pages, you will have to select each iFrame in the page's DOM otherwise you won't be able to find the children of this IFRAME on the page.

Example below :

  • Select the iFrame attribute that allows you to recognize it:
  • Select the attributes of the children you want to automatically find in this iFrame:

The object is then recognized without any problem.

Note :

If the iFrame is not identified, the result will be negative to detect its children as accurate as the selection of attributes.

Still require support?
Contact support

Test reports

Agilitest is able to generate an XML file containing all the important information about the test process, as well as the successive images of the different actions performed. We have chosen to rely on an open format (.xml) and a document generation engine under free license (FOP).

These .xml files can be used to produce all types of reports:

  1. Execution reports:

              · Execution report: for a global reading of tests execution

              · Detailed execution report (with or without screenshot): to analyse the reasons for failed tests

                 ◦ Summary report (pdf): for a global reading of test success in a specialized format

                 ◦ ATSV report: Execution images compiled in a video format (played via the ATSV player)

        2. Validation report: to document and to archive the implemented executions

Below is a scheme on how to use the reports according to the needs ot the teams and the way the organisation of the information can be used (plus, an animation video of the scheme https://youtu.be/2UdsYINPk_s)

Scheme about test reports organisation

Configurations

Reports generation

It is possible to configure the information that you want to see appear in your reports (execution or validation) from the project constructor by checking the “Generate report” case or from your Jenkins integration. You will be able to choose to generate execution reports or a validation report.

From the execution interface

There are two possible ways to generate reports:

  1. From the drop-down menu of your project, by clicking on “Execution parameters
Drop-down menu from the project explorer
Drop-down menu of the project explorer

Then by clicking on the case “Generate report” in the project’s builder. This will give you access to the “Report detail level” drop-down menu as well as the possibilty to check the “Generate validation report” case.

project's builder
Project's builder page

       2. From the “Channel management” menu, by selecting the “Parameters” menu and then “Generate XML report

Execution parameters
Execution parameters from the channel management menu

From your Jenkins integration

The configuration of reports can also be done from the Jenkins integration when creating a Jenkins Job.

You can set the execution report level or generate a validation report from a dedicated box in the Jenkins Job creation window.

Jenkins Job creation
Configure the reports from Jenkins

Reports storage

At the end of the execution, the reports will be stored in one of these default files:

Report generated via Agilitest;

  • Java : <Agilitest_project_file>\<project_name>\target\ats-output
  • Maven : <Agilitest_project_file>\<project_name>\target\surefire-reports
  • Or placed according to the user choice

Report generated via Jenkins integration:

  • Jenkins : <jenkins_job_folder>\builds\<numero_de_build>\htmlreports\<nom_du_publisher>\

Execution reports

The level of information in the execution reports can be chosen in Agilitest by using the drop-down menu "Report detail level".

The execution reports provide three level of information from the project’s builder in the Agilitest editor.

Report detail level menuu
"Report-detail-level" drop-down menu

Each report level has the following headers:

  • A global summary of the executed Suite with a description, the added parameters and the execution result.
  • A summary of the Suite that have the number of tests executed
  • A summay by script with the number of actions, the hour and the date of the script execution, the author, a link to the video report and the execution result.
report's headers
Reports' headers

Execution report

The execution report provides a global reading of tests execution. It indicates:

  • Actions
  • External links
  • Execution time
  • The status of the action’s execution
Execution report
Example of an execution report

Detailed execution report (with or without screenshots)

The detailed execution report provides a better understanding of the tests design and of potential bugs. It indicates:

  • Actions
  • External links
  • Execution time
  • The status of the action’s execution
  • Information about the action
  • A clickable screenshot that can be zoomed in (for the report with screenshot)

All the information about the actions specifiy what type of action and the elements of the action. Example: ActionMouseKey, Type : Click.

A purple insert corresponding to the action will appear in the image when an executed action corresponds to an user interaction (example : Mouse actions, text input, etc…).

When an action is failed or is not validated but does not prevent the test’ success, a explanation of the error will appear in the information part of the action.

Image of a detailed report
Example of detailed execution report without screenshot
Image of a detailed report with screenshot
Example of detailed execution report with screenshot

The video report: ATSV

The ATSV file can be accessed directly from the execution reports and corresponds to a video format of the report presented as a set of compiled images accompanied by animations of the executed actions. For now, the file format is only usable via Agilitest and its internal player (Soon: the reader will open on a web page)

Link to ATSV report
Link to the ATSV report from the execution report

The ATSV file can also be accessed from the execution parameters by clicking on “Video report”.

Generate ATSV report
Only generate the ATSV report from the execution parameters

Summary report

The summary report is generated directly from the execution report in a PDF format. It requires the use of the Jasper tool to be generated. It is consulted by managers and the teams project to have a report of the executed tests’ success in a specialized format. It corresponds to a summary by execution Suite and by test in order to have a global status of the software quality assurance.

Directly from the Execution report, click on the Summary link to generate the PDF file (at the top right of the Execution report)

Link to Summary report
Link to the Summary report from the execution report

The display of your summary reports can be customized with project report templates.

To access it, open your project properties by clicking on the Burger menu located in the Project Explorer

Burger menu in the project explorer
Burger menu in the project explorer

Then choose the template you want to use in the dedicated box.

Proect's reports templates
Project's reports templates

The validation report

The validation report is generated by checking the box "Generate validation report" in the project’s builder:

Generate a validation report
Check box to generate the validation report in the project's builder

The validation report is designed to be a proof of execution to be saved or archived.

It includes the same information as the detailed execution report with clickable screenshot, except that:

  • It has no link,
  • There are all actions (execution time, action execution status) except these: no ActionChannel as well as ActionProperty and ActionComment,
  • In the information part, there is no "error" part and in the "element" part, we find the Tag and Criteria but we do not find the number of elements found, the search time, the location, the click position.
Validation report
Example of a validation report

The execution status of the action

For all execution reports and for the validation report, there are three execution statuses:

Failed action

Failed action: When an action is in error for various reasons (bugs, wrong input, etc...) the error icon will appear on the action’s line.

Successful action

Successful action: When an action is successful, the validity icon will appear on the action’s line.

Failed but passing action

Failed but passing action: When an action is in error but does not prevent further execution of the test, the passing error icon will appear on the action's line.

The verification status of the action

For the detailed execution reports and the validation report, in the "information" box, the elements of a validated action are indicated in green.

Validated action
Validated action

For the detailed execution reports and the validation report, in the "information" box, the elements that put an action in error are indicated in red.

Action in error
Action in error

Still require support?
Contact support

Activation of the automation module

Agilitest support the tests automation on Android devices.

Prerequisites on the Android terminal

  • Enable the smartphone's developer mode to allow "USB Debugging"
  1. Go to the settings.
  2. At the very bottom, go to "About the device" (or in "System - About the device", on some models).
  3. Press the Build Number box several times (seven times) until a message appears "You are now a developer". You have just activated the developer mode on Android.
  4. Return to the main settings menu, you will then see a new sub-menu: "Options for developers" or "Development options" depending on the manufacturer customization.
  5.  In the developer options, enable "USB Debugging".
  6. Disable all the automatic screen locking functions.
  7. Connect the Android terminal on USB.
  8. Connect the Android terminal to the same WiFi network as the one to which you are connecting Agilitest.
  • On Windows 7, install the developer driver provided by your phone manufacturer. For example, here is the driver for Samsung Devices. After installing the driver, an "Android ADB Interface" line appears in the Windows Device Manager by connecting the phone via USB.

Prerequisites on Agilitest

  • In the "Help" menu, click on the link dedicated to downloading "AtsMobileStation" in agreement with your OS (Windows or Mac OS)
  • Run the downloaded package "AtsMobileStation.exe or .dmg" to install this mobile device detection module locally

Start of test automation

Launch ATS Mobile Station. The first screen displays that there are no devices found, but the system starts scanning the USB ports. If this screen persists, make sure that you have connected your Android device to the USB port on your PC and that it is in developer mode..

ATS Mobile Station has just discovered a connected Android device and is configuring the connection.

Finally, the terminal is found, configured and ready for use. Get the IP address of the connected terminal to enter it in Agilitest.

In Agilitest, create the ATS script that suits you and insert the "Start channel" action and select "Mobile".

Start a channel on mobile devices

Enter the IP address of the connected terminal, click on "Discover" and then select the installed application you want to launch automatically:
 Click on "Ok" to finalize the pairing.

Enter your Android device's IP adress

The opening action of the mobile application is configured in Agilitest.

The action "Start channel" on an Android device

The activation of the capture in Agilitest opens an remote display of the screen of the controlled terminal in order to automate directly above the desired actions.

Saving the settings for launching a mobile application

You can save this setting for launching the desired application in your ATS settings as follows:

Click on the "Settings" button on the top right.

Click on the "Edit configuration" button (this opens the.atsProperties file in your default text editor)

Fill in the configuration file by naming the application and filling in the URL previously defined

<mobiles>
<mobile>
<name>Betclic</name>
<url>mobile://192.168.0.39:8080/sport.android.betclic.fr</url>
<waitAction>100</waitAction>
</mobile>
</mobiles>

Still require support?
Contact support

Configuring ATS

When using Agilitest for the first time or during its use, you can configure the software to optimize its use. Agilitest works mainly with the ATS and Java (JDK) packages that will be used to create, maintain and execute automated projects.

At the top right of the editor there are various support menus including the "Settings" menu.

settings button

Click on the “Settings” button to open the window in the editor

settings page

Agilitest settings

Error reporting

You can enable error reports (or logs) by checking the "Error reporting" box.

error reporting

Three log options are available:

  • The Startup logs, in case Agilitest crashes at launch

Then the test execution logs which will display technical errors (related to a driver, not functional errors):

  • To open the current logs, empty by default, which display the last created logs
  • To open the logs directory in your Windows explorer and have access to the logs history

Languages

In this configuration menu, you can also change the language to English or French.

agilitest languages

Mandatory tools

There are two prerequisites for the proper functioning of Agilitest: the ATS package and the JDK.

ATS settings

Agilitest requires an up-to-date ATS library to operate.

ats settings

From these configurations you can :

  • Create a configuration: This will create a global configuration of ATS in the system. By clicking on it you can modify the configuration.
  • Download ATS components
  • Download ATS-OpenCv
  • Create a Neoload configuration
  • Open a Maven directory
  • Open an ATS directory

How to set up ATS?

It is also possible to configure some of the functions of the Agilitest editor via the .atsProperties configuration file.

To access the ATS properties, click on the "edit configuration" button of the ATS settings

edit configuration button

The currently allowed parameters are as follows:

  • Default number of executions of each action in the editor before deciding on a failure. By default they are set to 10.
atsproperties maxtry

  • Positioning of windows opened automatically by the editor. By default, the coordinates of the upper left corner are set to x=20 and y=20.
  • Sizing of the windows opened automatically by the editor: width and height set by default to 1500 x 960
atsproperties sizing

  • Management of the "timeOut” on the execution of the scripts and the loading of the web pages. By default, it is set to 60ms and 120ms
atsproperties timeout

  • Management of access paths to different browsers and specific waiting times for each of them:
atsproperties path

  • Management of access paths to the various Windows desktop applications installed on the computer. A shortcut will be automatically created from the "Applications" menu in the startup action of a channel.
atsproperties path windows app

You will find the application registered in the properties directly in the applications when you open a channel

https://uploads-ssl.webflow.com/60799032d5e3523ef1cd727c/6091037db25653a59aa30cfc_image-51.png

🔸 Warning

The access paths will have to be adapted according to your configuration.

Java (JDK) settings

Java allows to load, compile and execute ATS projects.

From the configuration menu it is possible to download the JDK or to enter the path to a JDK already existing in your computer.

Java JDK settings

🔸 Warning

You need at least a version 11 of the JDK for Agilitest to work.

It is also possible from this interface to add Java execution arguments for the launch of tests by clicking on the "Add argument" button.

add arguments button

External connections

ATS Mobile Station servers

It is possible to set up an ATS Mobile Station server to automatically connect the set up server during your mobile tests.

By clicking "Add" button, you will be asked to enter the IP address and port, which will be retrieved directly from Mobile Station interface.

You can check our documentation on mobiles tests.

GIT accounts

The Git account in Agilitest allows you to clone an existing Git account and thus use a Git project.

Click on the “Add” button to add an account

add git accounts

Then, enter your Git account information.

git account info

Still require support?
Contact support

Script comments and log

Agilitest allows you to use advanced formatting of comments directly from the publisher.

The format used is HTML, so you can design your comments as you wish.

In addition, you can use the variables in your scripts to make intelligent comments.

There are three types of comments:

  • Script comment
  • Functional step
  • Execution log

Script comment

This comment explains the operations performed by the script, intended for those who will have to maintain it in particular.

 Selecting a comment type in Agilitest

Comments of type "Functional step"

These comments indicate an important step in the course of the test.

They are included in the video and XML / pdf report files

Comments of type "Execution log"

These are functional comments for the testers.

Samples

  1. Bold characters
  2. Underlined characters
  3. Italic characters
  4. Using bullets
  5. Using numbered paragraphs
  6. Clickable active links
  7. Show a screenshot

Below are some examples of these HTML formats of strings allowed with Agilitest:

  • Bold characters :

<b> Bold characters </b>

  • Underlined characters :

<u> Underlined characters </u>

  • Italic characters :

<i> Italic characters </i>

  • Using bullets :

<UL> <LI> Using bullets  N°1</LI><LI>Using bullets  N°2</LI></UL>

Commentary text with bullets
  • Prioritized into numbered paragraphs: :

<OL><LI>Numéro 1</LI><LI>Numéro 2</LI></OL>

Text of the hierarchical commentary
  • Insert an active clickable link (to a bug tracking software like Jira or Bugzilla):

<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1431248">Bug 1431248</a>

Text of the comment containing a link
  • Insert and display a link to a screenshot (which would illustrate the error to correct):

<img src="https://bugzilla.mozilla.org/attachment.cgi?id=8943437" width="300" height="110"/>

Text of the commentary containing an image
  • An example of an advanced comment in the editor:
Still require support?
Contact support

"text" attributes in element recognition

Warning about text attributes

We recommend using the "text" attributes of an item on which you want to automate an action only when you can't do otherwise for the following reasons:

  • The recognition of the item no longer works in a multilingual context of your solution.
  • Some browsers are case-sensitive (and some are not), so a capital letter tends to decrease the robustness and portability of your test.
  • The management of line breaks and / or spaces may differ from one browser to another.

However, these "text" attributes will be the only attributes available to recognize an element.

Once you have selected the "text" attribute, you can click on it to edit the content: we have added some options allowing you an automatic edition of the values ​​with regular expressions useful to prevent the latter issues.

Select an element using its text : click on the regular expression check

Automatically add the regular expression to manage the case in mutli-navigators

After activation: the spaces are replaced by \s* and the string begins with (? i)

Subsequently, AGILITEST will not take into account the spaces and the case on these elements of recognition whatever browsers used to further increase the robustness of your automated functional tests.

Still require support?
Contact support

Passing parameters to a subscript (JSON/CSV or manually)

One of the features of Agilitest is the ability to use subscripts. This will allow you to factorize the common functions of your tests. Agilitest also allows you to pass values as parameters to your subscripts and thus make your subscripts scalable and generic.

A subscript created from a script will always perform the actions it is composed of with the same parameters.

It is also possible to modify the values of the subscript to use it in several possible configurations.

There are different ways to pass parameters to a subscript:

  1. Manually, by entering the parameters in the script
  2. or with a dataset, using a CSV/JSON file

▶️ You can find a 3 part tutorial about passing parameters to a subscript on our Youtube channel : Part 1, Part 2, Part 3

Add parameters to a susbcript

If you don't have a subscript call action in your script, you can create one in two ways:

  1. Either by entering the name of the subscript in the action

To do that, click on the “subscript” action in the action menu

susbscript action in action menu

Click on the action “Call the script [ ]” to enter information

call script action

Then, enter the name of the script you want to call as a subscript.

entering script name

      2. Either by dragging a script into your test

From the project explorer, click on a script you want to use as a subscript and drag it into your script.

dragging script from explorer to editor

This will create a “Call the script” action with the dragged script.

call script action

1. Parameters entered manually

It is possible to pass parameters manually.

Once you have created the sub-script call action in your script, you can pass parameters manually to your sub-script, directly from your script.

To do this, click on the call sub-script action, "Call the script [scirpt_name]

call script action

Then click on “add parameter

add parameter button

For information, the first parameter will always be named "Parameter 0", then the second parameter will correspond to "Parameter 1", the third parameter to "Parameter 2", etc…

parameter entered manually in call script action

Once you have entered the parameters in the script, you need to add them in the subscript.

To do this, open your subscript from the project explorer.

opening subscript from the explorer

From your subscript, click on the action that will execute the settings and then open the special values view.

special value menu

Select "Script parameter" from the special values and choose the parameter you are interested in.

Select the script parameter

When the action of calling a subscript is executed, it will execute the specified parameters.

📙 To know more
With the call script action, a script will call a subscript. When the script has parameters defined, the subscript will retrieve them and pass them to $param(x) (see the scheme above "Passing parameters to a subscript from a script”)

During the execution, the parameters will be shown in a pop-up at the bottom to the right on the editor.

parameters shown during execution

For your information, to make the pop-up indicating the settings reappear, you can click on the "\x" button.

\x button

When the parameters are entered manually, the execution of your parameters will be done only once. To multiply the iterations, you will have to create as many subscript call actions as the number of iterations you want. In other words, you will have to repeat the previous steps for each new iteration.

💡 Tip

Add comments to your parameters to track data and to tag the parameters. Those comments will be visible in the execution report.

2. Parameters entered from a JSON/CSV file

Create a JSON/CSV file

It is also possible to pass parameters from a JSON/CSV file. A JSON/CSV file corresponds to a dataset. The dataset will allow to create iterations. The behavior of the subscript on a dataset will be to loop the number of iterations contained in the dataset.

Unlike a manual input, where you would have had to create the subscript call action several times and enter parameters each time, for the dataset, the parameters will be organized in a table that will be used by a single subscript call action.

There are two ways to create a JSON/CSV file:

  1. Click on “New component” situated at the top ion the left of the Agilitest editor
new component button

Then select “Create a CSV file” or “Create a JSON file

          2. In the project explorer, open the “assets” file and then the “data” file

asset and data file in project explorer

Finally, do a right click to create a JSON or CSV file from the drop-down menu

create a json/csv file in project explorer

Once the CSV/JSON file is created, it can be used from the call script action.

To associate your JSON/CSV file to your script, click on the call script action “Call the script [name_of_script]

call the script action

Select “CSV/JSON” file

CSV/JSON button

There are two ways to add your CSV/JSON file in the action:

  1. Directly from the project explorer

Drag your CSV/JSON file from the project explorer to the action.

csv/json file in project explorer

        2. By selecting the file from Windows explorer

Click on the file icon to search your file from Windows explorer

open file button

Once the CSV/JSON file is added to the subscript call action, it will automatically open during the execution of your test.

CSV/JSON files are in the form of a table.

table from a csv file

They are both used in the same way with the only difference that it is possible to rename the column hearders in a JSON file.

table with titled headers in json file

In the table, you can add columns that correspond to the parameters, as well as rows that correspond to the iterations by clicking on the assigned buttons.

buttons to add iterations and rows or remove

With a CSV/JSON file, the subscript is executed as many times as there are iterations.

Once your file is completed, you can recover the variable of your subscript by using the $param(…) function and by passing the value of the parameter column you are interested in.

Example :

Enter $param(0) in the action to return the value of the first column in your CSV/JSON file.

param(0) in an action

📙 To know more
The parameters of the subscript are defined from a CSV (comma-separated values) file consisting of an array with rows and columns. Depending on the number of rows, this determines the number of times the file will be called, this is called iterations. (See the scheme above "Passing parameters to a subscript with a csv file")
The same goes for the parameters of the subscript defined from a JSON (JavaScript Object Notation) file composed of an array with rows and columns. Depending on the number of rows, this determines the number of times the file will be called, this is called iterations. (see the scheme above "Passing parameters to a subscript with a json file")
For a complex JSON file, it is composed of an array with rows and columns like a classical JSON file. Only, the iterations are done according to the number of values in a line. The number of values in a line corresponds to the number of parameters (See the scheme above "Passing parameters to a subscript with a complex json file").
Parameters can be created from an http file or a database from a web page. The principle is the same as for a JSON/CSV file, the iterations correspond to the number of lines and the parameters to the number of columns (see the scheme above "Passing parameters to a subscript with a http file").

CSV/JSON file execution options

Once the dataset is created, you can add options on the execution of your CSV/JSON files. By default, the iterations are done according to the order presented in the table, but it is possible to ask Agilitest to make the execution of your iterations random.

To do that, click on your element and check the box “Use random row

use random row button

You can also give a "Range of indexes", which allows you to limit the number of iterations among the total iterations that make up the JSON or CSV file.

range of indexes button

If you want, with this option you can also execute only one precise row by indicating its number.

Example: If your JSON file consists of 150 iterations, you can specify 0-50 in the index range to limit the execution to the first 50 iterations.

Finally you have the option "Execute as suite" so that the execution continues until the end even if an iteration is in error.

execute as suite button

When you encounter an error in one of the iterations, this will cause your test to be in error, and thus stop the test considering it as KO. This option allows you to consider each iteration as an independent test.

Example: On an execution of 50 iterations, if the 48th iteration encounters an error, it will be indicated as being in error but will not prevent going to the 49th and so on.

🔸 Warning

Actions created after the call script action is executed as a suite are not saved and will not appear in reports.

3. Parameters from an interface element

It is possible to make only one element of your parameters appear. In a complete subscript, if one of the actions does not have an element then the param(0) will be used by default. To fill in the param(0) that will be used, you can add a "Element’s text" to the action that calls the subscript.

From the call script action, click on "Element’s text".

element's text button

Then add an element selected with the capture tool.

add recognition criteria interface

When you execute your subscript, it will display the element you have captured.

This is especially useful when you are looking for data in your table among a set of rows. Agilitest will allow you to iterate until you arrive at the line you were looking for and allows you to take a specific action on this line.

Example: You have a table that contains 5 different rows. By giving the component "table" as input to the subscript, Agilitest will loop through the rows of the table in the subscript.

📙 To know more
Parameters can also be taken from elements. For a list of elements (DIV), each element corresponds to an iteration and each separate value of a text property "\n" corresponds to a parameter. (See the scheme above "Passing parameters to a subscript with a list of elements (div)”)
For a complex list of elements (Rows), each row corresponds to an iteration and each separate value of a divided text "\t" corresponds to a parameter. (see the scheme above "Passing parameters to a subscript with a list of complex elements (rows)”)
For a list of special elements, each of its elements has sub-elements which themselves have values. The number of iterations is determined by the number of sub-elements and the number of parameters is determined by the separate text property values that make up these sub-elements. (See the scheme above "Passing parameters to a subscript with a list of special elements”)

Parameter execution options

Iterations

Adding iterations will allow your script to be executed multiple times. This is handy when you have a function that can be used successively and will allow you to check your UI behaviors.

Example: The "go back" function to return to previous pages of a web page that can often be repeated several times.

To add iterations to a subscript composed of parameters, click on your subscript call and increase the number of iterations.

subscript iterations

Example: If you add 3 iterations, the subscript and its parameters will be executed 3 times.

Adding iterations allows you to avoid flaky tests, i.e. actions that are executed several times and that will sometimes produce an error for no particular reason.

Iterations, conditions and variables are not always usable depending on the case :

  • Executing the subscript from the parameters added from your script will give you access to all available options: iterations, variables and conditions.
  • Executing the subscript from a JSON or CSV file will not allow you to use variables or iterations but will allow you to add conditions.
  • Executing the subscript with adding the text of an element will allow you to add iterations and conditions but will not give you access to variables.

Return value

It is possible to get data from a subscript. This will create a dynamic (non-modifiable) variable since the return variable will automatically value the variable of the main script.

There are two ways to obtain a returned value:

1. Create a variable

At the very bottom of the subscript is a small yellow arrow allowing you to add a return value.

add return value button

Once the return variable has been created, it must be retrieved from the script call action.

To do this, click on the "Variables" button to tag it in the main script with an equivalent variable opposite.

variables button

2. Property variable

Create a property action to get data from the interface.

To do that, click on “Property” in the action menu

property action

The property action will target an interface element.

For that, click on the “Load” button in the property action

load button

It will load all the properties that are associated with this element.

Click on the property you are interested in to have it loaded during the execution.

properties' list

These properties correspond to the attributes of the element that are found in the "Captured Element's Parents" window when the element is captured.

ATS properties also appear in the list of properties as well as formatting elements (CSS).

When a property is selected, it will be placed in a variable that will take the value of the selected property.

property var

Example: If you select the property "text" with the value "Hello world - Wikipedia" in the list of captured properties.

text property from the captured properties

Once the value is created from the property, you can return it.

Click on the "Add a return value" button

add return value button

Then, open the special values menu and select in the script variables the one that corresponds to the property variable

property var from script variable

Click on the sub-script call action, then on "Variables" to specify that a value is returned from the subscript.

variables button

Select the variable that will store this return value from one already created or you can also create a new one.

newvar returned value

This means that the return value of the sub-script will be retrieved from the variables of the main script.

This allows to pass data between a script and its sub-scripts.

📙 To know more
The main script calls a subscript that contains values. It is possible to pass parameters to this subscript and it is also possible to return the values from the sub-script to the main script. With the return value action, you can call a number of values that will be returned based on the values in the subscript. Sometimes the information sent (parameters or return values) is not expected and therefore not processed.


Still require support?
Contact support

Channel management

▶️ You can find a tutorial on how to manage channels on our Youtube channel.

Tests performed with Agilitest are created from scripts that open channels to communicate with the application under test. Agilitest allows you to open multiple channels on multiple devices.

In an Agilitest-generated ATS script, there is always one active channel at any given time, and all actions are directed to that channel.

In Agilitest there is a distinction between actions to manage channels in ATS scripts and the channel management menu in the editor to perform graphical element capture operations.

Start a channel

All tests must start with a channel start action.

To do this, click on the channel action in the action menu

channels action

Then, click on "Start channel".

start channel action

Next, it is best to rename the channel you have opened so that it can be referenced in the following actions.

To do this, click directly on the “Start channel” action

start channel action in editor

Then enter the name you want to give to your channel.

channel name

The "Start channel" action allows you to select the application that Agilitest will launch for you, you have several possibilities:

application panel
  • Open a browser among those proposed (MsEdge, Chrome, Firefox, Brave, Opera, Internet Explorer)
  • Open a Windows Explorer
  • Open a desktop application defined in your configuration
  • Open a mobile application (Android or iOS)
  • Open any .exe application.
  • Open a Webservice

It is possible to open multiple channels in a same script.

Switch channel

switch channel

The "Switch channel" action allows you to switch from one channel to another opened channel identified by its name.

switch channel action in editior

From this action, all the following actions will be directed to the specified channel in the "Switch channel" action.

🔸 Warning

Starting a new channel means that it will activates it directly.

You can also use the channel management menu to change the active channe.

To do this, click on the blue check mark next to the channel name to make the channel active

channels management

However, switching channel in the channel management menu will not figure as an action in your script.

Close channel

close channel action

Closing a channel tells Agilitest that this channel will no longer be used during this test, and will close the application.

You can also close the current channel from the run management panel in the Agilitest editor.

To do that, click on the “Close” button

close channel action in channels management

Or the “Stop” sign on the channel line

stop channel button

🔸 Warning

You should not close your channel manually directly from the application. Agilitest is not intrusive (no plugin), it has no way of knowing that you have closed an application directly by the actions of the operating system (Example: by clicking on the cross of the application window).

Connec a channel to an application already launched

It is also possible to channel to a process already existing in your operating system.

To do this, you can use the command process:// supplemented with a regular expression to find your process in the list of already started processes.

Example :

process://.notepad\+\+\.exe

process

Channels management menu

The channel management menu allows you to manage the different input channels of the actions when debugging tests.

The channel management menu is located on the left, under the project explorer.

channels management menu

It has several icons with the following functions:

Capture button

capture button

This action is only available if you have already opened a channel. It allows you to enter the capture mode and select the elements on which to perform actions.

Close button

close button in channels management menu

This action allows you to cleanly close an open channel, i.e. close the application and tell Agilitest that it is closed.

Play button

play button

This action starts a complete execution from the current action. If you are not sure about an action to start a test, you will get the following message:

agilitest error

In Agilitest, all scripts can be sub-scripts of other scripts. In the editor, it is impossible for Agilitest to determine the start of a test, so you must indicate which action you want to start your test with in the editing and debugging phases.

Next button

next button

This action executes the selected action and moves to the next action. You can therefore execute your test in sequence, step by step. This action is equivalent to the execution action of each action displayed to the right of the current action in the editor.

Parameters button

parameters button

This action displays a sub-menu for selecting the current execution parameters in the editor.

executions management parameters
  • Animate: This allows you to replay the test by animating the actions performed.

Example: mouse movement, clicks, text entry, etc...

  • Visual report: The visual report has the same result as the animation, but in the form of a video report: an ATSV file (ATS Video) is generated in the /target/reports directory. It is not necessary to put the replay in animation mode to get the visual report.
  • XML Report: Agilitest will produce a test execution report in XML format (actions.xml), as well as a set of images corresponding to the screens that were visited by the test. These elements are stored in the directory /target/report/>test_name>. They can then be manipulated to produce three levels of execution reports as well as a pdf report using JASPER. The production of an XML report activates the generation of a visual report.
  • Run in reduced mode: This allows you to hide the Agilitest editor during the test execution, and thus better see the application under test.
agilitest execution in reduced mode

💡 Tip

The reduced mode is very useful if you use Agilitest on a single screen.

Potential problems

Channel opening failures

What to do if the Agilitest editor won't open a test and capture a channel?

If this is a JDK problem, then :

  • Verify that Java has been installed and that its version is compatible with Agilitest (version 14+)

It can be installed directly from the Agilitest "Configurations" menu in the top right-hand corner of the editor.

settings button

Click on the "Download" button to download the latest version of Java directly from Agilitest

download button

If the problem is with the drivers and/or libraries:

This means that a file is blocked by the firewall or antivirus software. In this case there are two possible solutions:

  1. Regenerate drivers and libs files
  • Repeat the operation, making sure that the blocking does not recur (temporary neutralisation of the antivirus).
  • Close Agilitest
  • Go to your computer's user folder to manually delete the "drivers" and "libs" folders.
drivers and libs folders
  • Open Agilitest again to force a regeneration of the files with the latest versions available in SAAS
Components update

        

         2. Download packages manually to deploy them yourself

  • Via the "Settings" menu, download the zipped Drivers and Libraries package
Download ats components button
  • The "ats.zip" archive will be automatically downloaded via your default browser.
  • Unzip this "ats.zip" archive containing the "drivers" and "libs" folders into your own user folder.
  • C:\User\”Your_Account”\.actiontestscript

If the problem persists, you can contact our support team at support@agilitest.com or directly via Slack.

Open a channel with plugins

When you start a browser channel with Agilitest, the channel will be without plugins, without history, accounts, etc…

This simulates the use of a real user visiting your application for the first time. This is why a channel started by Agilitest does not load extensions by default.

There are several ways of achieving the behaviour you want, the simplest being to create a user profile and define this user profile when the channel is started.

Or, there is also the option of adding elements to your ats.properties file.

See the official documentation: www.actiontestscript.com


Still require support?
Contact support

Window management

▶️ You can find a tutorial on how to manage windows on our Youtube channel.

‍The window management action allows you to manage the Windows operating system, Windows desktop modal applications and browser tabs.

It does not allow to manage internal windows of some Web applications, which are floating HTML elements, directly accessible with the Web automations.

A specific menu is also available to manage dialog boxes without adding unnecessary complexity.

In other words, the window action does not only concern various windows but also tabs on the same page and pop-ups.

When an application opens a window, Agilitest cannot determine whether the capture should take place on that window or whether it should remain on the current window. This depends on how the application designers intended to do it, whether the window is modal, non-modal, etc.

To access the window action options, click on the "Window" button in the action menu

window action

The window action has a sub-menu with three possible actions:

window actions menu
  • Size and location: This moves the window by specifying its new Cartesian coordinates or change its size (height and width)
  • Window visual state: This allows you to send an event from the operating system about the current window
  • Switch window: This changes the current window by indicating the number of the window to be changed

Size and location

https://uploads-ssl.webflow.com/60799032d5e3523ef1cd727c/60910360b49e959fc8bc06f2_image-211.png

This action allows you to move the window by specifying its new Cartesian coordinates, or to change its size: height and width.

Simply activate the parameters you wish to change by clicking on the yellow stars, then enter the desired values.

This action will affect the current window.

Window visual state

This action will allow you to send an operating system event to the current window.

It works in the same way as if you had clicked on one of the icons of your application (top right for Windows).

https://uploads-ssl.webflow.com/60799032d5e3523ef1cd727c/60910360e8e6f57b55aa7ddd_image-19.png

The possible actions are as follows:

https://uploads-ssl.webflow.com/60799032d5e3523ef1cd727c/60910360d3595f5b5552df4a_image-212.png
  • Close: To close the current window
  • Maximize: To enlarge the current window to the maximum
  • Reduce: To reduce the window

Switch window

When there is only one window in the application, all actions that are performed are sent to this window. When an application has several windows, a current window must be defined.

This is very similar to the current channel: all actions that are performed are on the current window.

The windows involved are true OS windows: you can have a very complex web application that handles multiple windows in a browser without having to switch windows.

https://uploads-ssl.webflow.com/60799032d5e3523ef1cd727c/609103601d2478e49db557ee_image-210.png

This function allows you to change the current window by indicating the number of the window concerned. In general, the number 0 corresponds to the main window of the application, and the following numbers are in the order of appearance of the windows (or tabs in a browser).

Problematic interventions

All these actions will allow you to precisely influence the configuration of your application's windows.

In some cases, this can cause problems:

Forced positioning

If you always place your application windows in the same position, you may not see any bugs, in which case we recommend letting the applications use the screen space as they wish, and possibly testing on different screen sizes.

Obviously, in some cases, it is useful to force a specific configuration, if you use graphical recognition for example, because contrary to an approach related to the application structure (DOM, Desktop), graphical recognition will act on the elements actually visible on the screen.

Direct intervention on the application

Closing the current window gets rid of a cluttered pop-up window.

But we do not recommend closing the main application window (unless you want to control an alert window).

To do this properly in Agilitest, use the action to close the channel.


Still require support?
Contact support

Text input

▶️ You can also watch our tutorial on how to use text input on our Youtube channel.

Create a text input

The "Enter text" action can be accessed directly from the actions menu,

enter text action

or by dropping a locator in the editor

enter text with a created action

The enter text action looks like this:

enter text action in the editor

To enter the required text, click on the "Enter text [ ]" action.

text input

A set of additional keys are available to simulate the keys on a keyboard.

additional keys

You can also enter special values when entering text.

special values menu

Of course, in order for your text to appear in the application being tested, the interface element on which you are performing this action must accept text input from the keyboard.

However, Agilitest will not prevent you from doing this on a wrong element, as the final operation will always depend on the reaction of your application.

enter text action succeeded


Still require support?
Contact support

Mouse actions

▶️ You can also watch our tutorial on Mouse actions on our Youtube channel.

‍During your tests, the mouse actions proposed by the Agilitest editor are used to simulate the mouse actions made when using the application under test.

Mouse actions can be used for all applications, including mobile applications (the click corresponds to a tap on the screen).

Create a mouse action

There are two ways to create a mouse action:

  1. From the actions menu

In the Agilitest editor, click on the mouse action

mouse action in action menu

Then, select the mouse action type you want to execute

types of mouse actions

         2. By creating an action with a locator

Once you have captured an element with the capture tool, drop it into the editor to create an action.

create action with the locator

Hover over the mouse action to open a sub-menu and click on the type of mouse action you want to execute.

Types of mouse actions

🔸 Warning

When you drag and drop an element to create an action, do not click on “Mouse” action. You only need to hover to open the sub menu (cf. image above)

Types of mouse actions

Mouse click

click action

The mouse click action is used to do a click on the tested application or to simulate finger pressure on a mobile test.

You can edit and specify the type of mouse click you want to do by clicking on the Mouse action in the editor.

mouse click options

You will have access to a sub-menu that allows you to select the type of click you want to generate: left click, wheel click, right click or double click.

By default, the click is at the center of the element. However, you may want to click on an offset zone or on another element whose Cartesian coordinates you know based from the captured element.

To do that, you can select a corner or side of the element from which you are going to specify a Cartesian offset.

coordinates of the mouse click action

Positives coordinates will always define a point inside the element.

Example :

If you select the top right corner with a 10x and 10y offest, then click will be pointed 10 pixels at the top right inside your element’s box

You can also add the press of the “CTRL” or “Shift” key to your click action.

key press with mouse action

Over

The hover action lets you indicate that you want to hover over a specific area of the screen. This is particularly useful for unfolding the drop-down menus in your applications.

Over action

As with other mouse actions, you can also redefine the mouse position using Cartesian coordinates.

cartesian coordinates of mouse actions

Drag, drop, swipe

Drag and drop actions simulate a mouse movement during which the left mouse button is held down.

This action is very often used to perform drag-and-drop operations between several windows in one or more applications.

drag, drop, swipe actions

The actions must be carried out in this order:

  • Start with a drag action by defining the element from which you want the left click to start and then hold.
  • (Optional) Insert zero or more swipe actions: these correspond to swipe zones that are visited by the mouse with the mouse button held down.
  • Then add a drop action by defining the element on which the mouse button is released.

The swipe action can also be carried out independently from the drag and drop.

Once you have entered the element on which your swipe action will be performed, you can specify the action.

To do that, click on the swipe action

swipe action in the editor

A swipe 20 pixel to the right is set by default.

This will open the actions parameters menu

swipe parameters

You can change the orientation of the swipe by clicking on the directional arrows as well as define the number of pixels vertically or horizontally.

As with other mouse actions, you can also redefine the mouse position using Cartesian coordinates.

Scroll

The scroll action simulates a rotation of the mouse wheel, causing the displayed page to scroll.

In the case of a mobile application, scrolling means swiping the screen.

In both cases, Agilitest is used to indicate the number of pixels for scrolling up or down. This number is positive if you want to scroll down.

To be effective, the selected interface element must respond to a scrolling action. You can perform this action on the main application window by not selecting an interface element.

The action can be used on sub-windows (DIV) which have scrolling options, by selecting the element including the desired window.

When the scrolling action is created, it will be performed as automatic scrolling by default.

However, it is possible to set the scrolling you wish to execute.

To do that, click on the scroll action

auto scroll action

In the action parameters, you can define the pixel value to be scrolled.

scroll parameters

This can be done by manually entering the value, or by placing your mouse over the square provided and scrolling your mouse wheel up or down.


Still require support?
Contact support

Automation of Neoload scenarios

Agilitest automates scenario generation in Neoload

This allows you to benefit from Agilitest's ability to record and replay a scenario.

We have developed new ATS actions specific to Neoload

Here is the detail of what is available:

Activating Neoload mode

Neoload is not activated by default in Agilitest. To do this you will have to modify your file .atsProperties and add the following lines:

<neoload>
<recorder>
<host>192.168.0.28</host>
<port>8090</port>
</recorder>
<design>
<api>Design/v1/Service.svc</api>
<port>7400</port>
</design>
</neoload>

The parameters are as follows:

  • recorder / host: corresponds to the IP address of the machine running Neoload and which records the scenarios.
  • recorder / port: the Neoload listening port on this machine. The default is 8090.
  • design / api: Listening service of the Design api allowing you to listen to and modify the current Neoload project.
  • design / port: Port du Servie. The default value is 7400.

Once this configuration is done, if you restart Agilitest, you will see a Neoload menu appear on the right of your screen:

 New Neoload menu on the right

The Neoload menu is scrollable and displays the following submenus:

Neoload submenus

Here is the detail of the different functions available:

Start

Allows you to tell Neoload to start a user scenario.

The UserPath value is not mandatory but will allow you to register a user in your scenario.

Starting a Neoload user scenario

Stop

Tells Neoload to stop the current user journey.

Terminate a user path

The options available on the action:

  • Find framework parameters: this option allows you to define replacement parameters in Neoload in the framework in order to be able to use them during variabilisation.
  • Search for generic parameters: this option allows you to define generic parameters in Neoload in order to be able to use them during variabilisation.

Container

This action creates a container in Neoload and names it.

Action to create a Neoload container

Recording

Record activation / deactivation action

This action activates and deactivates the recording in Neoload.

Resumption of recording in Neoload
Still require support?
Contact support

Desktop automation

Agilitest natively supports these solutions, thanks to a specific desktop driver.

With Agilitest, it is possible to automate software solutions developed and compiled under Windows.

Running tests that are not on the Web

Open a native Windows application

To open a native Windows application, start a channel, then click on the icon to select a .EXE file.

Agilitest then opens a file explorer allowing you to select your executable file.

Then, everything works like on web technologies: switch to capture mode to select the components:

capture window

Press the CTRL key on your keyboard to select a component and open the “captured element’s parents” window

captured element's parents

In this case, the components that are displayed are not DOM elements as on web browsers, but correspond to the Widgets used to build the graphical interface of the desktop application.

The identification of a locator to uniquely find the component in the page works in the same way. In the case of a desktop application, there may be an "AutomationId" generated by the component framework used to develop the application.

Create an action by dropping the component at the desired location in the editor. The action entered by the desktop is then inserted into the editor.

Desktop application

There is also the Desktop button located directly in the applications when opening a channel.

desktop button

This one will not open a window if you run it, but it will allow you to capture the elements of your desktop and to execute actions on them.

The tests performed on the Desktop are done in the same way as the Web tests.

🔸 Warning

When opening a Desktop channel, you will still need to go through the "Browser URL" action by entering the path of the tested application in Windows Explorer to access your files.

Capture a system element on a web application

The Desktop Driver is always active in Agilitest, even when you are automating web solutions.

This allows you to select specific components of the .EXE application for your browser.

To select a Desktop Locator on a web application, simply press the ALT button in capture mode: Agilitest will switch from the DOM view to the Desktop component display. Press ALT again to return to the DOM selection.

You can also click the "Sys. (Alt)" button at the top of the capture window.

capture window

If you want to test your application on several web technologies and several browsers, we don't recommend using this mode, as you may activate non-DOM components, specific to your browser, and thus cause malfunctioning on other browsers.

This feature is very useful if your web application allows you to upload a local file to a web server: no special effort is needed to automate this action.

Applications management

Configuration of a commonly used application

You can configure a commonly used application by editing the .atsProperties configuration file.

The icon of this application will then be automatically displayed in the action of opening a channel, allowing you to open it directly.

To do that, click on the “Settings” button in the editor

Settings button

Then, click on “Edit configuration” in the ATS settings

edit configuration button

This will open the atsProperties in your notes.

ats properties

Different configurations exist in the properties, including one concerning the applications. To add a frequently used application:

  • Enter the entry tag <application>.
  • Add <nom> and enter the name of your application
  • Add <path> and copy and paste the path to find the application in your window explorer
  • Finally, enter the closing tag </application>

🔸 Warning

Don't forget the entry and exit tags for any new applications that you would like to add to your favorites.

Execute an already open application

With Agilitest it is also possible to open an application that is already running.

To do this, open a new channel, and enter in the command line :process:// followed by the name of the application you want to run.

The application must be written in the language used in the file explorer.

command process

When you perform your action, the open application can now be captured by Agilitest.



Still require support?
Contact support

Using a non-unique locator

Some test configurations require that you can retrieve multiple elements of the same type with a single locator. There are several reasons for this:

Count the elements

It is useful to be able to count all elements of a given type to make sure without going into the details that a page, a table, a list, a search has the right number of elements.

We will take the example of a table that displays the main browsers and their porting on different operating system:

Our sample table: browsers / OS

We will make a first check that verifies that the number of lines is equal to 8.

We are looking at the lines (TR)

We will start by selecting a line, with an attribute that allows us to identify it, and we make sure to also identify one of his parents common to all the elements wi want to count in a unique way (starting with this one).

Select a unique line

Then we drag-drop the element following our script to make an occurrence check equal to 8.

The first check fails

Obviously, the first attempt to launch the test on the fly will fail, since this element is uniquely recognized with its xid = tr5, and thus Agilitest only finds one line occurrence.

We then remove the attribute TR xid = tr5 from the locator

Suppress the unique id specific to a single line

We obtain a non-exclusive locator which allows to find all the occurrences of TR under the element TABLE table-main

Check the number of lines in a TABLE element

When performing the action on the fly, we confirm that Agilitest finds 8 rows in this table.

If you click on the magnifying glass:

The magnifying menu

Agilitest displays all the elements that correspond to the locator used, as well as their order number of appearance in the structure of the tested software.

Search an item by its index

When we have locators that make it possible to find several elements, it is possible to specify by an index which we wish to address.

You wish to put an index on TR : click on TR


You must click in the editor on the item that is multiple

Then to the right of the element, you will see a # and two up / down controls that identify by an index the element defined by your locator.

Define an element by its index

By validating, Agilitest allows you to retrieve specific attributes of an element identified by its index. For example, we retrieve the text in the third line of the table below.


Retrieving the text contained in the 2nd row of the table

To go further

You can use the indexes on several elements of the same locator.

This can allow you for example to go check the contents of a specific cell of a table.

Get the text of a specific cell

This feature of identifying an element by its index can also allow you in some cases to get out of complex situations, if you lack attributes to uniquely select an item in a page.

You can also bring more robustness to your tests, for example if you often change your test data, to not select an item by its content but by its index may be more effective in the long run, but your test will be less deterministic.

Still require support?
Contact support

Version management

Regular updates

Agilitest is a software solution that updates automatically as soon as it is launched. New versions are updated regularly, every one to three weeks.

Agilitest supports the latest browser versions, which is absolutely essential for checking changes and updating dirvers.

ATS and Agilitest editor

At launch, Agilitest begins by updating the ATS open-source library.

ATS is the open-source library that manages all the interfaces with the technologies supported by Agilitest and replays tests written in ATS format.

This update will enable Agilitest to use the latest version of ATS.

The Agilitest editor then updates itself: a welcome screen informs you that a new version is available, and suggests that you update it.

The content of the new version will also be presented in the ChangeLog, which includes the following elements:

changelog

Added: These are new functions that are not linked to existing functions.

Changed: New functions linked to existing functions and function extensions

Fixed: Functional bug fixes, feature corrections, technical improvements, etc.

Refuse the update

Naturally, you can refuse the update, but you should be aware that the impact is fairly limited, since it only concerns the editor and its functions: the ATS update is automatic.

If you decline the proposed update, a button will appear at the top right of the editor allowing you to update to the most recent version of Agilitest.

update button

Use a specific ATS version

It is perfectly possible to stabilise the use of a specific version of ATS by referencing the ATS library you want.

🔸 Warning

We don't recommend this because the changes in the editor and ATS are closely linked, but we do consider that this feature may be of interest to certain profiles. In general, you may not have access to certain recent features developed in the editor.

To specify the desired version of ATS, click on edit “Project properties

project properties

Then enter the version you wish to apply to your project.

project's ats version

If you want to let Agilitest manage the dependencies and automatically download the libraries required for the selected version, you can tick "Use Maven with Agilitest".

use maven button

Otherwise, you'll have to manually move the version to your .actionTestScript directory.

Finally, if the ATS version of the installed components is not the same as that of your project, Agilitest will indicate this by means of information panels in the properties tab and in the project banner of the project explorer.

information

💡 Tip

We recommend that you systematically update your version of the Agilitest editor and the ATS library it uses.

Configuration reset

Here how to reset your configuration:

  1. Uncross "Use Maven" in the project properties.
use maven button

        2. Delete the two directories libs and drivers (in your user directory under the .actionTestScript directory).

        3. Close and restart Agilitest.

        4. Check that the libraries are updated at start-up and downloaded in the "Settings" tab.

settings window

As well as in the “Tools

tools window

If not, click on the "Download" button

download button

ATS vulnerability verification and management policy

Vulnerabilities in code can lead to a variety of problems, such as system integrity being compromised by an external source, integrated data or confidentiality being compromised, etc…

One of the latest known vulnerabilities is the "Apache Log4j" (December 2021), which affected Agilitest as well as several organisations, including the government.

Agilitest performs maintenance before each delivery to find these vulnerabilities, understand where they come from and fix them.

ATS versions are released approximately every one to three weeks through Maven, and some of these versions may contain vulnerabilities.

Analysis of these vulnerabilities involves two levels of research through the MVN repository and DockerScout.

MVN repository

From the MVN repository, you can view all the ATS dependencies.

mvn repository interface

In detail, for each version of ats, MVN repository can report the presence of vulnerabilities.

Example:

vulnerability in mvn repository

Version 2.9.3 have a vulnerability.

This was implemented just 10 days before moving on to 2.9.4, which corrected the vulnerability in the previous version.

To consult the versions of ATS and the vulnerabilities that may be present: https://mvnrepository.com/artifact/com.actiontestscript/ats-automated-testing

Dockerscout

Docker is an image generation integration. A Docker image contains all the ATS components (ATS library, system drivers, web browsers, etc.) unlike Maven, which only contains the ATS library.

Agilitest uses the Dockerscout tool provided by Docker to analyse potential vulnerabilities.

There are four levels of vulnerabilites with a colour code from red to dark orange, light orange and yellow:

dockerscout interface
  • Critic
  • High
  • Medium
  • Low

Agilitest is committed to not delivering versions with critical vulnerabilities and to avoiding high-level vulnerabilities as much as possible. Nevertheless, the latter may be delivered for some time with a view to being removed in the next few days.

Medium and low vulnerabilities remain under vigilance.

To view Docker images that may contain vulnerabilities: https://hub.docker.com/repositories/actiontestscript

Still require support?
Contact support

Testing non-nominal behavior

When performing your functional tests, you will have to set up checks that correspond to the correct functioning of your application, by checking that the elements that must be displayed are correct. Generally it is quite simple when the software works in a nominal way because you only have to select the elements that you need.

In some cases, it is also necessary to check that non-nominal operation cases do not occur. And it can be difficult to replicate this type of failure case when the software is running in a nominal way.

How to test non-nominal behavior

We will see a tip that is not usable in all cases, but that can help you in certain situations.

In our example, the page we are going to test must display a pdf file. In nominal mode this file is displayed using the internal viewer of your web browser. The code used is similar to this one:

<object data="agilitest.pdf" type="application/pdf">

In nominal mode you get the following result:

Viewing a native pdf in Chrome

When viewing a pdf file produced by an application which may be different from one case to the next, it can be very difficult to verify that the pdf is displayed well: the content may be totally different from one publication to another and sometimes you do not really know what to look for.

It becomes interesting to check that the case of non-display of the pdf does not occur. But here it is: how to simulate it if my page works correctly.

The trick is to go directly edit the page in Chrome to tell him to open a pdf document that does not exist.

Just click on F12 to display the HTML code of the page:


Opening the HTML code edition in Chrome

The code displayed is as follows:

<div align="middle">
<object data="agilitest.pdf" type="application/pdf">
<iframe src="https://docs.google.com/viewer?url=agilitest.pdf&embedded=true">
</iframe>
</object>
</div>

Then just change the name of the file, for example by adding a letter and press ENTER: Chrome will interpret the new code and display the result: This display corresponds to the one you will get when the pdf file is not correctly generated and is not available.

Result displayed when the file is not found

You just have to do a graphical control on a part of this display representative of an error case:

Switch to capture mode and select a portion of the displayed message, then drop it into Agilitest to create a check on occurences

Be sure to set that the number of occurrences of the image must be zero which corresponds to nominal result.

In this particular example, we used graphic recognition because we want to control the display of an internal pdf viewer to Chrome. It is possible that for your particular cases, you can treat this final control only with internal elements, (DOM or structure of your Android or iOS application) displayed in a nice error popup.

Still require support?
Contact support

Test modification / execution

The Agilitest editor is very particular, because it allows you to replay the tests and modify them at the same time, with the granularity of a simple action.

This allows you to go to the basics when it comes to changing a test or to maintain them, these activities are necessary to make live your test base, but obviously you must spend the least time to focus on the essentials: increase functional coverage or depth of your tests, do exploratory testing...

Step by step

Agilitest allows you to replay actions independently of each other. Just click the play button that appears at the top right of each activable action when you hover over it.


Play button at the right

Agilitest will then immediately perform this action on the tested software and return the result to you.

Element not found in the page

In this case, the element could not be located and the action failed: it is then necessary to modify the locator of the object if it still exists, or to modify the test more in depth.

This operating mode allows you to run your test step by step by successively selecting the actions one after the other and thus check the progress of each action.

It is also very powerful to set up the tested software in a context on which you know that you will be able to continue your test edition.

For example: click on a URL navigation to return to the launch of the page.

Breakpoints

The easiest way to modify an existing action or insert an action at a given location is to set a breakpoint.

To do this, simply click on the small STOP button at the top left of your action.

Setup a breakpoint

Then you run your test by clicking Play in the Channel Management tab.

Run the test

The test will then run to the breakpoint and stop just before playing the action.

Execute in reduced mode

If you select the reduced mode execution in the channels management tab, the Agilitest editor will be reduced to let you better see what is happening in your application, it can be useful if you only have a single screen.

execution in reduced mode

Whatever the selected execution mode, you just have to enter the capture mode to select a new component or recover the locator of the component causing a KO.

Select a new locator

Then you can check that your action is going well step by step.

The action was successful

Java run mode

The step by step mode is a special mode dedicated to the editing / modification of tests. ATS has been designed to generate java code to run compiled tests, which is particularly suitable for launching continuous integration tests, or running full test campaigns in Agilitest. It is fast and efficient.

Still require support?
Contact support

Javascript code calling

Agilitest allows to call javascript code on a component that has been captured.

This differs from a java call that is more like a subscript call.

In both cases, you must be informed that it will be possible to modify the elements of the software that you test, and thus to break appart from the operation that you are supposed to control.

In some cases, it is very practical, even necessary: ​​We will see the case of the slider.

The next image shows two sliders that originally have a value of 50.

When manipulating a slider, it is quite complex to set a precise value only by using mouse movement actions, as shown in the example below, the two sliders display different values ​​for the same swipe of 100 pixels to the right.

Drag a drop of 100 pixels to the right
move of 100 px: sliders have different values

What is the issue ? If you perform a test based on move of 100 pixels and subsequently the value of the slider is critical to the success of your test, you become dependent on the implementation of the slider.

In this case, javascript is particularly suitable, since it will allow you to set a value directly on the slider element by modifying its internal variable value:

value=75;

The same value is set on both sliders

Then, the two sliders that have different sizes allow the setting of the same value, no matter the movement of the sliders, which are different.

Values are identical

Visual checks

You can modify the style and therefore the color of the elements you test, for that you just have to modify the style object:

style.backgroundColor="green"

Modify the style of the element

This will allow you to display visual controls in ATSV files or XML reports produced by Agilitest. It might be useful...

The slider became green

A complex check built into the page

In some cases where you have to perform a complex check on your page, it is quite possible to code this check in javascript code loaded in the page, and then call the javascript function in your test by retrieving the value returned to do a simple check.

This is not an optimal situation because you may have to manage development code including this function and production code with the hazards that it may cause, but it can lead to complex situations to deal with.

For that you just have to declare a global function in a SCRIPT tag of your page:

<SCRIPT>
function checkpage() {
    ....operations...
    if (condition) {
       return true;
    } else {
       return false;
    }
}
</SCRIPT>

Then just call it from your Agilitest editor, referencing a return variable, on which you will only have to perform a value check.

 Call and check a javascript check function  
Still require support?
Contact support

Using Variables - AI

▶️ You can find a tutorial on how to use variables on our Youtube channel.

Variabilising a script makes maintenance easier, provides easier access to the data consumed and makes the test more dynamic. All these variable operations are managed in a separate tab dedicated to variable management, which is located at the bottom left of the main screen and is called the “Script’s variables” tab.

script's variables tab in the editor

There are two types of variables :

  • Purple variables 🟪 : They are declared by the user and can be modified (called independent variable, declared variable, assignment variable).
  • Orange variables 🟧 : They come from the interface to be tested and the elements of the application under test, and are not modifiable (also called dependent variable, dynamic variable, recovery variable).

The set of variables in a test is therefore an assembly of variable dependency trees. Agilitest and ATS will automatically update variables that are dependent on other variables when they are modified.

This mechanism offers a great deal of flexibility and ease of processing for people who are not used to IT development.

How to create a variable?

There are several ways to create variables in Agilitest:

Modifiable script variable (purple variable)

Modifiable script variables (purple) are also known as independent variables, declared variables and assignment variables.

These variables are created in the "Script’s variables" tab.

Click on the menu and select "Create variable".

create variable button

This will create a purple variable that you can modify. You can then give it a name and a value.

Once the variable has been created, all you have to do is value it (add a value), without having to press the “Enter” key on the keyboard or perform any other additional actions.

As soon as your variable has a value, it appears to the right of its name. This allows you to check the values of the variables in the current script at any time.

If the variable is not declared correctly and Agilitest cannot assign it a value, it displays an error message in addition to the variable name.

error message

To define the value of the variable, you can enter a hard-coded variable of your choice.

You can also use the "Insert a special value" menu to the right of the input field,

insert special value

This gives you access to all the categories of variables that can be used in Agilitest.

Non modifiable script variable (orange variable)

Non-modifiable script variables (orange) are also known as dependent variables, dynamic variables and recovery variables.

There are two ways to create a non modifiable variable:

  1. Property action

These variables are generated from elements of the tested applications, using the "Property" action in the actions menu at the top of the Agilitest editor.

This action takes as input an element of the user interface which is to be captured, as well as the name of the attribute of this element which is of interest to us.

To do that, click on “Property” in the actions menu

property action

The property action will target an interface element

Click on the “Load” button from the Property action

load button

It will load all the properties associated with this element.

Click on the property of interest to load it during the execution

captured properties

These properties correspond to the element attributes found in the "Captured element parents" window when the element is captured.

ATS properties also appear in the list of properties, as do formatting elements (CSS).

When a property is selected, it is placed in a variable which takes the value of the selected property.

property variable

Example :

If you select the "text" property with the value "Hello world - Wikipedia" in the list of captured properties.

text property

When the property action is executed, the value of the selected property will appear in the property variable.

text property action

             2. Return value

Non-modifiable variables can also be retrieved from a script return value to be stored as an independent variable

Variabilising special values

special value menu

These functions can be used to define all the modifiable variables you need, and can be concatenated to generate a more complex value.

Here are the main functions for accessing it:

  • Environment variable: Returns the value of an execution parameter defined in the current execution. Example: $env(parameter)
  • Script variable: Returns the value of a variable. Example: $var(variable)
  • Script parameter: In a subscript, returns the value of a variable passed as a parameter by giving its index. Example: $param(index_param)

You can pull down the menu to access the "calculated values".

calculated values
  • Now: Returns a character string indicating the current time of the computer replaying the test (or of the continuous integration server). Example: $now: 17:38:11
  • Today: Returns a character string indicating the current day of the computer replaying the test (or of the continuous integration server). Example: $today: 30/08/2023
  • Unique identifier: Returns an identifier in Universal Unique Identifier (UUID) format. Example: $uuid: 110e8400-e29b-11d4-a716-446655440000
  • Random characters: Returns a random character string indicating the desired number of characters and its case. Example :

$rndstring(10): Generates a character string of 10 random characters

$rndstring(15, low): Generates a string of 15 lower-case characters

$rndstring(8,upp): Generates a string of 8 uppercase characters

Environment variable

Environment variables are declared in the execution parameters of your project.

To access the execution parameters, click on "Executions management" in the project explorer.

executions management

On the main screen, select an execution, then add a new parameter and modify its value.

execution variables

These variables must be declared as character strings and cannot use the modification functions that are available for other variables.

To use them in your scripts, use the $env(parameter_name) function.

Advanced use of variables

Agilitest lets you transform a variable in 5 different ways to make calculations easier.

  • Character strings
  • Regular expressions
  • Date
  • Hourly
  • Numeric

Character strings

By default, all variables are character strings.

A variable can be transformed on creation by clicking on the corresponding button.

5 types of calculation

When a character string is transformed, a page is displayed according to the type used to manage it.

Example:

If you click on “Regular Expr.” button

regular expr button

This will display entries corresponding to the character string of a regular expression

a regular expression

You can concatenate variables in string format with each other and with text.

Example :

If you take two variables:

  • A date variable date: 8/9/2019
  • A hourly variable: 11:34:33
hourly variable

If you create a variable $day, and give it the value $var(date)_$var (time)

Then its literal value will be 8/9/2019_11:34:33

Transformation into regular expressions

Regular expressions are used to divide strings of characters to generate variables corresponding to sub-groups of characters.

The regular expression management menu will ask you for a model which must correspond to your original value.

This model includes brackets that define the subgroups and are used to determine the value of the variable.

By selecting group 1, the variable will have the value that corresponds to the model defined in the first parenthesis.

regular expression

Transformation into date

It is possible to perform date calculations to obtain a later or later date, in a day, a month, etc.

From the value entered, selectors can be used to add or subtract days, months or years.

The original format supported can be m/d/yy or yyy-mm-dd, i.e. an English format..

The date obtained can then be used in regex variables to retrieve the day, month or year.

date variable

Transformation into hourly

It works in the same way as transforming a variable into a date, in which case the selectors allow you to add or remove hours, minutes or seconds at a given time.

The format of the input variable is hh:mm:ss.

hourly variable

Transformation into numeric

Variables transformed into numbers are used to manipulate integers or decimals in the nn.nnnnnnn. format.

The input format can be a decimal number in this format, or a decimal number with a comma as the separator.

numeric variable

Standard operators can be used to perform calculations:

  • +: addition
  • : substraction
  • x : multiplication
  • / : division

The most common mathematical functions are implemented: sin, cos, tan, power, ln, etc.

For very specific cases where you need to perform particular operations, you can call java code by passing certain values as parameters and then retrieving a variable on which you can place a control.

Use of "if" conditions

You can use the “if” condition in variables with numeric transformation.

For a formula made up of 3 groups:

if($var(var1) < $var(var2) ; 1 ; 0)

1st Group = $var(var1) < $var(var2)

2nd Group = 1

3rd Group = 0

If the formula is verified, the first value after the semicolon, will be displayed: i.e. the 2nd group with the value 1

If the formula is not verified, the 3rd group will be displayed: i.e. the value 0.

Example:

example with value and variables

Agilitest and AI

To facilitate the design and maintenance of your tests, Agilitest offers AI integration to improve the day-to-day work of test designers.

The first time you open Agilitest, or following an update, a window will open asking you to accept or reject the integration of artificial intelligence into Agilitest.

AI helper

🔸 Warning

It is important to specify that the integration is not intrusive and has no access to your personal or company data.

You can change the choice of AI use in Agilitest directly from the settings in the editor, top left:

settings button

Tick the box to enable or disable the integration of artificial intelligence.

AI helper settings

ChatGPT : A tool for creating your variables

Increase the comfort of using Agilitest and the reliability of your scripts with regular expressions generated by ChatGPT in Agilitest.

When you create a variable, it is sometimes difficult to know which regular expressions to write or which date format to enter.

By using the ChatGPT function to create your variables, you can solve these problems and also describe the tester's needs in natural language so that you can carry out the only slightly technical operations in Agilitest.

To access this function, go to the variables menu and click on the "ChatGPT" button.

chatgpt button

This will open a dialogue window with ChatGPT

dialogue window

This window adapts depending on whether you want to transform a phrase into a regular expression,

regex button

Or create a variable date.

date button

In the regular expression case :

Once you have entered the value of your variable, click on the "ChatGPT" button.

chatgpt button

Enter the data you wish to extract from the phrase entered as the value

natural language

ChatGPT will generate the regular expression you need to enter into Agilitest to extract the data, along with an explanation of the expression

chatgpt response

This intuitive approach eliminates technical hurdles and allows you to focus on your test work, giving you a higher level of comfort. For example, ask ChatGPT to get :

  • The machine’s name
  • The build version
  • The windows version
  • The machine name after the second dash
  • The date format
  • etc…

Example :

If in the sentence "Microsoft Windows 11 Professional, Machine name: DT-W-PIERREH, build version: 22621" you want to extract the Windows version and the Build version, then write your query in ChatGPT :

query entered in chatgpt

The regular expression proposed by ChatGPT will be automatically entered into the model input in Agilitest

chatgpt's regex

🔸 Warning

Even if the integration of artificial intelligence is not intrusive, do not enter personal or company data in the AI search bar. The AI will not process information linked to your Agilitest licence, but it will process all the information you give it in a text input. Do not make it process your passwords, for example.

Return a variable in subscripts

To ensure that a variable created in a script also appears in subscripts, you will need to use the $var(script_path.script_name.variable_name) function to retrieve this value from any subscripts in your runtime.

Example:

If you have a "Phone" directory with a script called "Samsung" and a variable in this script called "Version", then you enter the function $var(Phone.Samsung.Version).

🔸 Warning

If the script is in the root directory, you don't need to specify the script path. So $var(script_name.variable_name) is enough.


Still require support?
Contact support

Table data control

How to control table data

The title is a little complex but corresponds to a case that is often encountered in automated software tests:

You want to control the values ​​of a cell that is located on the same line as another cell that you know.

Relative control of table data

For example, in the table above, we want to control that Chromium is well availiable on Android, ie that there is Yes in the Android column of the Chromium line.

Agilitest allows you to do it simply by a text aggregation trick: if you select the corresponding TR line of the Chromium table, you will be able to retrieve a TEXT attribute which is a concatenation of all the values ​​of the cells of the line.


Visualizing the aggregated attribute of a table line text

The text value of the TR line containing Chromium is as follows:

Chromium Yes Yes Yes Yes Yes No No

The value you want to control is the 5th Yes.

To retrieve the line that matches Chromium without assuming any of the following values, your locator will look like this:

(?i)Chromium\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)

(?i) indicates that the control must be case insensitive

\s corresponds to a space

(.*) corresponds to any type of text, by inserting with \s, it corresponds to text before a space, the "greedy" behavior of regular expressions will then try to match as many characters as possible.

Retrieving the line of text  

Then create a variable that will retrieve the specific value in the Android column.

Use the following regular expression:

(?i)(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)\s(.*)

The corresponding group is the 6th

Retreiving the value for android

It is then enough to make a control of value:

Final control

Several comments to this trick:

First, you have to master the data of your tests, so it can be dangerous to use this technique when you don't know where is the Chromium line in the table. You can end up with a slightly lax test that does not really know where the data is.

So adapt this technique on a case-by-case basis, for example if your test data is not yet fixed and you do not want to modify your test too often.

It is also possible to use it if you do Data Driven Testing, the controls set up will adapt to the data you have defined in a CSV file. In this case precautions should be taken: for example "Internet Explorer" contains a space that will be used by the regular expression and shift all the data you will want to control.

To finish with this example, you can use a "Check Values" action to control the entire Chromium line at once. You control all of a sudden but you will not know in case of failure what value was not in conformity.

One-time verification of the complete line


Still require support?
Contact support

Checks

The purpose of the software tests, besides compliance with the execution procedures, is to be able to control that the software complies with the expected behavior.

We will see what are the functions of Agilitest that allow to perform controls or assertions in your software tests.

The check function

Everything goes through the function "Check", which comes in three sub-functions:

  • Check Properties
  • Check occurrences
  • Check values

"Check properties" and "Check values" will work the same way. The only difference is that in one case we will check the properties of one UI element and in the other the values ​​of a variable.

Check occurrence will control the number of items counted in the displayed page of the tested software.

Check properties

This function takes as input an interface element that will have to be captured.

Check properties

In the example above, we select a SPAN with an "id" equal to "cwos".

We then check its "text" property which must be equal to 4.

The verification function will perform the comparison considering both parameters as strings; and accepts regular expressions.

Check values

This function takes as input a variable that can be modifiable or not.

The operation is then identical to the "Check properties" action.

Check occurrences

The occurrence check controls the number of items found on the current page using an Agilitest locator.

Indeed, in some cases, it may be useful to define locators which can match multiple elements. This allows for example to control the number of rows or columns of a table.

The "Check occurrence" action is also very useful for adding more robustness to your tests.

Check occurences

Check occurrence and graphic recognition

Occurrence checking also works with graphical elements.

You will be able to check that an image is present a number of times in the displayed page.

This differs from a check based on the software structure, for example the DOM, for which even non-displayed items will be counted.

You can also combine occurences checking and graphical recognition to determine when you will be able to continue your test. In the example below, we are waiting for a processing to be done by checking its "progress bar", and comparing it by the one to be displayed at the end of the processing.

Graphic control before moving on.
Still require support?
Contact support

Java code calling

Agilitest is known for its broad coverage of various recent technologies in software development, and generally allows you to automate just about anything that can be automated in a few clicks and graphically.

In some cases, however, it is useful to call external code to perform a specific operation specific to the customer environment.

We will see in this article how Agilitest can call a piece of java code, passing input variables and retrieving output parameters.

Obviously, we recommend all the usual precautions in the use of external code java, because as it allows to do everything, it can also have an unwanted impact on the SUT (System Under Test).

In terms of portability, the .ats code that Agilitest produces is transformed into java for execution. You can therefore consider that the java code that you will write will be portable on the various platforms supported by ATS.

What, write some code!

Let's go !

For starters you will generate the stub of your java code in Agilitest by doing the following:

  • In the Agilitest Explorer, select the java directory in src / main at the same level as your .ats files
  • Right-click and select: New java script.
  • The editor opens a popup to request the name of the script, enter the name of your script and click OK.
  • The editor then opens a java code editing window and, after the necessary and useful declarations, displays the function that will be called: testMain().

public class test extends ActionTestScript{
      public void testMain() { }
}

Parameters

It is possible to pass parameters by value to your java script.

To do this, you must click on "call the script" or on the small pencil that appears when you hover over the action, then click on "add a parameter".

Passing parameters to a java sub-script call in Agilitest

Then you can enter the values ​​you want to pass to your script, and you can use all the possibilities offered by the Agilitest editor for that: use variables, values ​​in "hard", iterations on a .csv file.

To retrieve them on the java code side, you have the function getParameter(int), which takes an integer corresponding to the index of the variable in the call of the subscript: getParameter(0) will return the first value passed in settings.

String param1 = getParameter(0).toString();
int param2 = getParameter(1).toInt();
double param3 = getParameter(2).toDouble();
boolean param4 = getParameter(3).toBoolean();

Recovery of results

The results are retrieved symmetrically on the call.

It requires the declaration of variables in the Agilitest editor, which will be of the unmodifiable type (by the user).

To declare return variables, do the following:

Variable declaration in Agilitest
  • Declare a new variable in the variable management menu in the left-hand side of the editor.
  • The type will be modifiable by default (violet).
  • Name this variable
  • Drop it directly into the subscript call action
  • Agilitest will change the type of variable to make it unmodifiable by the user (orange) and indicate it as a return value from the java call
  • Subsequently, you can use this variable in your script
Declaring a variable returned by a script

To set a return value on java side, you have the function returnValues​​() which takes all the values ​​you want to return:

returnValues("value1", "retvalue2", param1);

Obviously, the number of returned values ​​must match the number of variables declared on the Agilitest editor side.

Exécution of the code

If your test includes a Java script, it will be necessary to compile it before running the test. At the time of this compilation, your potential syntax errors will be highlighted. You can find out more about the compilation of tests and the configuration of the executions.

Once your project is compiled, you will be able to run your test, and the java actions as if it were Agilitest's standard actions: step-by-step (Agilitest action by Agilitest action) and mode run in the same way, with each java action running in one go.

If your java code is a little complex, and you want to debug it, step by step will be possible provided you have assigned a Java debug port in agilitest and have an eclipse or intelliJ type IDE.

Still require support?
Contact support

Regular expressions

You can watch our tutorial or you can go through our documentation about regular expressions:

Regular expressions are very powerful for performing operations on data, extracting subsets or recognizing patterns.

We allow their usage in several places in Agilitest:

Component recognition

In Capture mode, when you have selected a component by pressing the CTRL key, you can then click on the attribute of interest to select its value.

How do I match a UUID?

In the case presented above, we have only one cd_frame_id_ attribute whose value will eventually change over time since it is a UUID.

We can allow Agilitest to recognize it simply by clicking on the "Regular Expression" checkbox and entering the following regular expression in the property value: [0-9a-fA-F]{32}This regular expression indicates that we are going to look for a 32-character string, consisting only of hexadecimal characters.

Entering a regular expression

Afterwards, a statistics request allows to recognize the element in a unique way in the page:

The uuid is recognized

Thanks to the regular expression, the value of the uuid can be modified, but as long as it remains a uuid, Agilitest will recognize it.

This trick makes it possible to recognize elements whose attribute values are highly volatile, but which retain a constant structure over time: an identical prefix or suffix, an incremented number, etc.

Checking up

It is possible to use regular expressions in the action of checking object properties or variable values.

In the case below, we use the same regular expression as before to check that the format of the cd_frame_id_ property is indeed that of a uuid. Obviously, we use another way of identification to find the element (here id = examples-iframe).

Checking the format of a uuid

Manipulations of variables

Finally, it is possible to use regular expressions to perform operations on variables, with the objective of recovering certain sub-parts of them. We use the notion of capturing parenthesis, associated with a group number: the complete regular expression is decomposed into sub-expressions surrounded by parenthesis, it is then possible to retrieve the part of the variable we are interested in by its group number corresponding to the number of the parenthesis in the global regular expression. In the example below, we have retrieved a complete text that includes a price we wish to check.

Recovery of the raw text containing a price to be checked

Using the following regular expression:

(\d),(\d)\ €(.*)

We can retrieve successively:

  • The price in euros corresponding to group 1
  • The cents after the comma corresponding to group 2
  • The additional text corresponding to group 3

Recovery of pennies

Finally, what is the use of regular expressions?

You will have understood: the use of regular expressions will allow you to surgically target the different elements of your tests: components, variables, values and add a lot of robustness during their execution. For people who are not familiar with them, after the first errors and the surprise of the discovery, this technology is actually quite simple to use and allows you to do a lot of things without writing a single line of code.

Still require support?
Contact support

Graphic recognition

How graphic area recognition works

Graphic area recognition is used in Agilitest to allow:

Here's how it works:

At any time when you are in "capture" mode, you can identify a rectangular area of ​​the application tested by drag-drop.

The selection of a locator

Select a graphical zone

Agilitest then displays the image you have selected and allows you to copy it, save it, or go directly to generate a locator using it, by activating the display of the element tree.

Display the selected image

When you click on "Element Tree", Agilitest will display the structure of the software or DOM to the smallest element that completely contains the selected image. This operation will allow you to ensure a unique identification of your image that could be printed in several places of your software.

Indeed, without selecting a locator, you can end up with an image present in several places, just use the magnifying glass tool to realize it:

2 similar images found by the magnifier without additionnal locator

To fix this issue, simply select the parent elements and their attributes to generate an additional locator and drop the whole into a new action of the Agilitest editor.

The final locator including an image and DOM elements : one image

If during this selection phase of the locator you click on the "Statistics" button, Agilitest will temporarily hide the capture grid so that you can recognize the graphic component in the page.

The final locator selection

Just after the drop in the editor, the generation of a new action is performed and displayed. It contains a link to an image that is saved in the src/assets/resources/images directory.

The final locator in Agilitest

And the files in the project explorer

You can view all the images that have been used in your project by selecting the "Show resources images" menu of the project explorer:

A view of all the images in one project
Image recognition menu

The image search menu that you get by clicking on the image in the editor allows you to add the following information:

  • Using a non-unique locator to identify occurrences, then select through an index the image uniquely.
  • You can affect the graphical recognition tolerance and the algorithm used. For the moment only the ATS algorithm is proposed and we advise you to keep the default tolerance (0.5%).

Graphic assertions

Occurrence assertions will allow you to add controls on the presence of graphical elements in your applications, to count them, to generate wait-for timers, and so on.

To achieve them simply drop the graphic element in an action of type "Check of occurrence".

Check on image occurences

However, we must pay particular attention to this control of occurrences: Agilitest will check the images that are actually displayed on the page (unlike a DOM approach that can potentially trace objects not displayed).

In this case, it must be ensured that the window is correctly sized and displayed to allow complete recognition of the elements.

Still require support?
Contact support

Web drivers

Why Agilitest need Web drivers

Agilitest is a software solution installed on your computer and regularly updated at launch.

The objective is to make available as quickly as possible new features for our customers, to correct bugs present in the solution, but also to adapt to the evolutions of the browsers that we support.

In the facts, without additional configuration, Agilitest currently supports 5 browsers: Chrome, Firefox, NewEdge, Opera and Internet Explorer in version 11.

Our philosophy is to provide support as soon as possible to the latest versions of browsers, and this is why we use the web drivers to communicate to the browsers : we can provide a very quick support as soon as the Selenium drivers that we rely on are updated on these latest versions.

Therefore, the update of Agilitest will bring with it the latest version of the driver and will drive the latest version of the browser, and generally you have nothing to do because:

  • If you update your browser, it should be done without impacting the operation.
  • If you do not update it, well, it is often possible that the latest driver provides backward compatibility with previous versions of browsers, and in most cases, it goes well.

The Chrome update 74

Except that it did not go as planned for Chrome 74: The update of end of April 2019 and chromedriver Selenium brought a break of compatibility with Chrome 73. And since that date, it somehow happens with new versions.

To enable our customers to update their version of from one version of Chrome to another, we have made it possible to deploy alternative configurations do not announce the official support.

For example, currently, Agilitest can drive Chromium and an extension of it, JXBrowser, an embeddable browser in a java heavy client.

How to proceed

Adding new browser versions to Agilitest requires the configuration of the editor in the .atsProperties file.

To set up a new browser, insert the following lines into your .atsProperties file:

<browser>
<name>chromium</name>
<driver>chromiumdriver</driver>
<path>D:\tools\chromium\chrome.exe</path>
</browser>

The name tag allows you to name the browser as it will be printed in Agilitest. A certain number of names are reserved because we adapt to the specifics of each browser: chrome, firefox, etc. You will therefore only be able to modify the driver and the path of the executable for a browser already known to Agilitest.

The driver tag tells Agilitest what is the name of the .exe driver to load (in the $ user /.actiontestscript/drivers/directory)

Here are the links of the drivers for Chrome, Firefox, IE , and Edge

The path tag indicates the path of the browser executable.

For example, if you want to use Firefox 60 ESR, the procedure is as follows:

  • Download and install Firefox 60 ESR in a different directory than your firefox installation
  • Complete the following lines in your .atsProperties file:

<browser>
<name>firefox</name>
<path>D:\tools\firefox60ESR\firefox.exe</path>
</browser>

In the case of firefox, the driver used should be compatible with the latest version and the ESR version, so there is no need to add a driver change.

To specify what is the MSEdge path, you may use the following lines:

<browser>
<name>msedge</name>
<path>C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe</path>
</browser>

Still require support?
Contact support

JXBrowser support

What is JxBrowser?

JxBrowser is an application layer for integrating modern web pages, containing HTML, CSS and Javascript, into Java applications. It allows building GUI of your cross-desktop application using any popular HTML5 UI toolkit. You can also use recent HTML5 toolboxes to produce java applications running on multiple platforms. JxBrowser is based on the open-source Chromium project that includes the source code and libraries written by developers in the Chromium community.

JxBrowser is a powerful library that allows developers to embed a web browser component into their Java applications. With JxBrowser, developers can easily display and interact with web content in their Java applications, making it easy to create rich, modern user interfaces. The library is based on the Chromium project, which provides the underlying rendering engine and feature set for JxBrowser. This allows developers to take advantage of the latest web technologies, such as HTML5, CSS3, and JavaScript, without having to worry about cross-browser compatibility issues.

One of the key features of JxBrowser is its ability to interact with web pages using the Java programming language. This allows developers to call JavaScript functions and access the Document Object Model (DOM) of web pages directly from their Java code. This can be useful for automating interactions with web pages or for building custom UIs on top of existing web pages.

In addition to its web rendering capabilities, JxBrowser also provides a number of other useful features, such as support for proxy settings, cookies, and browser extensions. This allows developers to customize the behavior of the embedded browser to meet the needs of their specific application.

Overall, JxBrowser is a great choice for developers who want to add web browsing functionality to their Java applications. With its powerful features and support for modern web technologies, JxBrowser can help developers create engaging and interactive user interfaces that run on multiple platforms.

How to setup JXBrowser?

Configuring JXBrowser requires adding a new driver-browser pair to your Agilitest .atsProperties configuration file. This file is by default in the following directory: your user directory, followed by .actiontestscript).

You must add a <browser> section as follows:

<browser>
<name>jx</name>
<driver>jxbrowser</driver>
<path>C:\Program\path_to_jxbrowser_based_application\app.exe</path>
</browser>

  1. <name> is the name you want to print in Agilitest
  2. <driver> : Download the latest Selenium driver for Chromium integrated with JXBRowser, available at:

https://sites.google.com/a/chromium.org/chromedriver/

The drivers directory containing the correctly renamed chromedriver driver

3. Unzip the driver file and copy the file "chromedriver.exe" into the installation directory of Agilitest drivers (by default: your user directory, followed by .actiontestscript/drivers).

4. The file "chromedriver.exe" should be renamed by the name of the driver you gave in your configuration file (in this case jxbrowser.exe, but you can give the name you want as long as it does not impact the Chrome driver and the .exe file matches what is configured in the .atsProperties file).

5. <path>: path to the executable that launches your JXBrowser application

6. The configuration of JXBrowser must allow remote debugging on port 9222. (https://jxbrowser.support.teamdev.com/support/solutions/articles/9000013082-remote-debugging-port)


Still require support?
Contact support

Connection to an existing process

Different modes of launching applications

Agilitest is a multi-channel solution that allows you to connect to multiple channels simultaneously for different types of applications:

  • Web Channels: Chrome, Firefox, IE, Edge and Opera: by opening a channel on one of the browsers, then by performing a navigation action on a URL.
  • Desktop Channels: All types of applications compiled for Windows. Just select the executable file directly in the opening action of the channel (.EXE).
  • Android Channels: All applications running on Android devices, including those offered by the operating system. In this case, the selection of the application goes through a connection to the terminal via "ATS Mobile Station", which then allows access to the list of all installed applications.
  • SOAP or JSON web service channels: The web service is selected when the channel opens, and navigation allows you to call specific services.

My application does not fit in any of these cases !

For each of the situations described above, it is Agilitest that launches the tested application because it is its nominal operation.

In some cases, it is not possible to have Agilitest launch the application to test, this can occur for example in the following cases:

  • Launching an application with a .bat file initializing environment variables before launching the .exe. In this case it is not possible to run the .exe directly. (in fact you can use an Agilitest java call to do it).
  • Launching the application on Windows startup by a service. However, the application must have a graphic window on which to act.
  • Using a specific Windows application to perform certain operations as part of a general end-to-end test (for example: Explorer.exe).

The solution

To use an existing process as an Agilitest test channel, the trick is to identify it among the processes running on the test machine. Here's how to do it:

  • Create a channel open action
  • Specify the name of the process to hang on to starting with process://

The use of regular expressions is possible to specify the name of the application concerned, for example:

process://.*notepad\+\+\.exe

Connect to an existing processus


Still require support?
Contact support

File selection by browsers

Why select files from a browser?

When performing business scenarios involving web solutions, there is a case that occurs frequently: the interactions with the operating system, and in particular the selection of files to download them to the web server ( we are talking about upload).

This feature is indeed implemented by all tools managing business data: ERP, GED, PLM, CRM ...

The upload function is implemented natively in all browsers because they must respect the HTTP standard that specifies how this file transfer takes place.

All browsers have therefore implemented a file selection menu on the computer or on a network access, and then transmit it to the server. This usually involves using a modal file selection window whose implementation depends on the desktop environment, but each browser can have its own implementation.

Problems caused in test automation

This causes two types of problems while automating this procedure in a test

  • Issue 1: The test software must be able to interface with the "desktop" part of the browser. In this case, to rely on the HTML page and the DOM is not enough, it is necessary either to recover and to recognize the internal structure of the components and controls of the navigators, or to use the graphic recognition ...
  • Issue 2: The  "file selection" can vary greatly from one browser to another, which requires adaptations depending on the browser used.

Solution to problem 1: Agilitest is a multi-channel solution

Agilitest is an integrated test solution that supports the use of different application technologies (web, desktop, ...) within the same test. We will use a DOM-desktop failover.

The issue 1 is easily handled by Agilitest and here is the solution:

  • Open a channel on your application and run your test up to the download part.
  • When the file selection popup opens, simply press the "ALT" key on your keyboard to switch from the DOM component recognition mode to the desktop component recognition mode. There, you will be able to navigate in your window of selection of the file.
  • At the end of the selection of your file, you can close the modal window and use the "ALT" key to switch back to the web part with a DOM.
Selecting a file on the user's computer from a web application

Tip: For more robustness, we advise you to set a file in an easily accessible tree of your filesystem and that you can reproduce everywhere, for example in "quick access" under Windows Explorer.

Solution to Problem 2: Agilitest knows how to handle the specific behavior of browsers

Issue 2 is managed with Agilitest using sub-scripts set up via a data-driven testing (CSV) data file in the following combination:

  • Calls of a first sub-script fed by the parameter "navigator" in column of the file CSV. We recover the name of the browser to iterate the launch of the same test on several browsers.
  • Calling subsequent sub-scripts whose name is composed from the "browser" parameter of the first sub-script. For example: script_chrome.ats, script_opera.ats, etc. We use the name of the browser to customize the name of the executed script.

The proposed solution makes it possible to manage the differences of behavior of browsers. However, we do not recommend that you use it for the following operations, which are handled directly by Agilitest for all browsers:

  • Navigate to a URL, prev, next, home ...
  • Closing the window
  • Tab change

This would make your tests non-generic, which is not desirable.

Still require support?
Contact support

Wait function

The problem of non-constant waiting time

Some applications are dependent on external elements to be able to continue their processing: waiting for a response from a server, waiting for the results of a calculation, waiting for the full display of a page that may depend on the implementations of the browsers, etc.

This poses a problem when performing the functional tests: how to correctly manage this waiting without causing a situation of failure of the tests and without spending too much time waiting?

The solution is not to wait a given time to continue the test, for obvious reasons: you do not know how long you'll have to wait. In addition you will completely pollute your database of automated tests by sprinkling here and there waiting times sometimes useless, which will considerably slow down the execution of all your tests.

That's why you will not find a "wait" function in Agilitest ...

The Agilitest solution: make a "check on occurrence"

What is it about ?

An Occurrence Check is an Agilitest action that verifies that there is one or more items present or missing in the page or software being tested.

This solution will tell Agilitest that you want to control the number of occurrences of an object in your application.

The action checking the occurrences of an object in Agilitest

It is applicable in the following situations:

  • We want to wait until the page has finished loading to continue processing. In this case, we can perform an occurence check on an item that will display at the bottom of the page at the end of the upload.
  • We want to wait a modification of the page which will remove elements already printed. In this case we perform a check on occurrence equal to 0 (absence check) on an item which must disappear before continuing the test.

In both cases and as long as the conditions of success of the check on occurrence are not met, Agilitest will start to consider itself "in a situation of potential failure" of the test, and will therefore multiply the controls to avoid generating a false negative.

At the end of its control, Agilitest will produce a test failure situation, unless, in the meantime, the conditions for successful check are met, and therefore the items we were expecting are either present or have been removed.

The option "Max trials" in Agilitest

The trick is to tell Agilitest how many tests it will have to perform to wait for the conditions of the check. This is done by selecting a number of max tries that he will have to perform before considering "to be in failure" on this action.

Each action has the ability to wait and retry multiple times. This greatly contributes to the robustness of the tests when you know that your server may be in a situation of not delivering the desired page immediately.

The maximum number of trials is limited to 50, but the waiting time between each test follows an exponential curve: this allows to quickly check the conditions of success when they are present, but also to wait "a certain time '' for a long treatment to be done.

Using this solution we could even ask to wait until the end of a trailer on an Android application broadcast video ...

How to still wait for a fixed period?

There is always a solution with Agilitest, and in this case it involves using a piece of Java code, here's how:

  • In the Agilitest Explorer, select the java directory in src / main at the same level as your .ats files
  • Right-click and select: Create java script.
  • The editor opens a popup to request the name of the script, enter wait and click OK.
  • The editor opens a java code editing window, paste the following code in the function testMain ():

try {
    final int ms = Integer.parseInt(prm(0, "1000"));
    Thread.sleep(ms);
} catch (Exception e) {}

  • Drag-drop the "wait.java" script from the Agilitest Explorer to where you want to call it in your test.

TIP: If you want to be able to specify the wait time directly from your ATS script in Agilitest, you can declare a parameter passed by value to the script and then use the following code:

try {
        final int ms = getParameter(0).toInt();
        Thread.sleep(ms);
} catch (Exception e) {}


Still require support?
Contact support

TestNG execution

You can watch our tutorial or you can go through our documentation about execution report:

TestNG is a framework that was created to run tests in Java, which is the basis of ATS executions produced by Agilitest.

Apart from the specific execution / editing mode of the Agilitest editor, we have developed a compiled Java runtime mode which is faster and intended to be used for a test or group of tests. in a project.

As we will see, the executions are created in Agilitest, can be executed by Agilitest, but are also exportable to TesNG compatible environments that will be able to replay the tests without requiring complex configurations.

To create a TesNG runtime in Agilitest, go to the project's strip level in the project explorer and click on the gear wheel.

Enabling the executions menu

Manage project executions

Agilitest will open a new tab with several parts:

  • The Project Builder: Allows you to configure, generate, execute, and optionally produce the corresponding reports and open them. The operation of the project builder is discussed at the end of the article.
  • Command line: Agilitest shows you the command line that you can use if you want to start ATS execution from a command prompt on Windows. This command must be started at the root of the ATS project. You can copy these elements to a .bat or .ps1 file to run all the executions you have configured without going through Agilitest..
  • Executions: This is the configuration menu for TestNG executions whose operation is explained in the next paragraph.

The executions

An execution corresponds to the definition of a subset of the tests of a project that you will be able to replay at one time.

To define an execution, click on the "Add" button in the executions tab.

Executions defined in a project

Then, enter the name of the execution to create, you will see it appear in the run tab.

A set of options will allow you to define the quality of the reports produced when launching the run.

Agilitest will generate a corresponding .exec file in the /src/exec directory.

The executions directory

This file is in the TestNG standard and is a filter on all the tests of a project, as well as instructions for executing the corresponding test campaign.

You have several options for defining this subset of tests:

Add scripts to an execution

Add scripts directly to the "Scripts" tab: Drop the ATS files directly from your project explorer to see them on your tab.

Select packages

Indicate which are the directories in which to get the scripts, and which ones are not concerned.

Sélection du package api

The "Packages" tab presents all the directories of your project and allows you for each directory to define if the ATS files that it contains must be included or excluded from the selection.

It is not necessary that the files have been added beforehand in the script tab.

Transversal selection by groups

Test groups allow you to filter tests based on the groups with which they are associated.

The group menu allows you to define new groups and select groups to add or exclude from a execution.


Managing test groups in executions

Execution parameters

The execution parameters are variables that you will define for a given execution and that will appear as environment variables in the set of tests that are affected by this execution.

Adding environment variables to an execution
Using the environment variable in a script  

The environment variables will allow you to manage different runtime environments, which will however use the same test base.

Reporting configuration

By clicking on the little pencil that appears during the overview of the executions, you can select a number of parameters to manage the level and quality of the reports you want to produce.

The pencil to enter the modification of the parameters

Here are the different options that are proposed:

Logs level

The different log levels are as follows:

  • Silent
  • Error
  • Info
  • Warning

They are ordered from the least verbose to the most verbose.

XML Report

If you decide to produce an XML report, it can be directly converted to pdf by Agilitest.

Visual report

Indicates the quality of the ATSV video reports you will generate. The different options are:

  • Off : no report generation
  • Size : optimize the size of ATSV files
  • Speed : optimize the report generation speed
  • Quality : optimize the quality of generated reports
  • Max quality : optimize everything
Generation and Quality Reporting Options

Start an execution in Agilitest

Once your execution is created or selected, you can do the following at the project builder:

The project builder

Generate: generate the java files corresponding to the selected ATS tests.

Compile: compile java files corresponding to the selected ATS tests (includes the "generate" phase).

Execute: Agilitest will open a console and replay all the selected tests in the run. (Includes the phases "generate" and "compile").

There are two possible options:

  • Open the TestNG report at the end of execution: opens the report produced by TestNG.
  • Generate the pdf report for each test and open the generated reports (as well as replayed tests).
Still require support?
Contact support

Scripts headers

In addition to the tests and controls to be performed, the ATS format makes it possible to define a set of meta-data that are very useful for characterizing all of your tests.

To access it, click on the "Page" icon at the top right of the editing window of your script.


Script information access menu

You will then see a submenu whose activation will modify the display of your editor according to the information to display:


Sub menu to access script information

Actions

You return to the display in the test actions editor. By default this possibility is not activated.

Header

You access the information in the script header:

Script header

The following items are displayed:

  • Author : the person or group who performed the test
  • Description : definition of the test content. This field accepts HTML code. You can also add a set of metadata that will be reproduced as such in the ATS script: requirement numbers, and so on.
  • Prérequisite : what are the links with other files, or the availability of environments, etc.
  • Groups : the groups to which the test is affiliated.

ATS code

Display of the raw ATS code corresponding to the test being edited.

This menu allows you to copy the code of the test to send it by email to a correspondent who can replay it.

This tab does not allow direct editing of the ATS code.

Copy of the ATS code in the ATS tab of the editor

When receiving an email or file containing ATS code, the procedure to import it into Agilitest is as follows:

  • Create a new empty script
  • Select the ATS code in your email editor, notepad, etc ...
  • Drop the code directly into the empty window of the Agilitest editor
  • Agilitest will read the code and regenerate the corresponding actions.
  • Then click on Run ...

Java code

Display of the Java code generated during the execution of the test. Obviously, the java file that correspond to the ATS files of the tests can not be modified directly.

Affichage du code java

Close

Closing the script, allows you to save it if it has not been saved.

Still require support?
Contact support

Settings menu

When using Agilitest for the first time or during its use, you can configure the software to optimize its use. Agilitest works mainly with the ATS and Java (JDK) packages that will be used to create, maintain and execute automated projects.

At the top right of the editor there are various support menus including the "Settings" menu.

settings button in editor

Click on the “Settings” button to open the window in the editor

Settings page

Agilitest settings

Error reporting

You can enable error reports (or logs) by checking the "Error reporting" box.

error reporting

Three log options are available:

  • The Startup logs, in case Agilitest crashes at launch

Then the test execution logs which will display technical errors (related to a driver, not functional errors):

  • To open the current logs, empty by default, which display the last created logs
  • To open the logs directory in your Windows explorer and have access to the logs history

Languages

In this configuration menu, you can also change the language to English or French.

choice of french or english

Mandatory tools

There are two prerequisites for the proper functioning of Agilitest: the ATS package and the JDK.

ATS settings

Agilitest requires an up-to-date ATS library to operate.

ats settings

From these configurations you can :

  • Create a configuration: This will create a global configuration of ATS in the system. By clicking on it you can modify the configuration.
  • Download ATS components
  • Download ATS-OpenCv
  • Create a Neoload configuration
  • Open a Maven directory
  • Open an ATS directory

How to set up ATS?

It is also possible to configure some of the functions of the Agilitest editor via the .atsProperties configuration file.

To access the ATS properties, click on the "edit configuration" button of the ATS settings

edit configuration button

The currently allowed parameters are as follows:

  • Default number of executions of each action in the editor before deciding on a failure. By default they are set to 10.
maxtry code

  • Positioning of windows opened automatically by the editor. By default, the coordinates of the upper left corner are set to x=20 and y=20.
  • Sizing of the windows opened automatically by the editor: width and height set by default to 1500 x 960
window position and size code

  • Management of the "timeOut” on the execution of the scripts and the loading of the web pages. By default, it is set to 60ms and 120ms
TimeOut code

  • Management of access paths to different browsers and specific waiting times for each of them:
path to browsers

  • Management of access paths to the various Windows desktop applications installed on the computer. A shortcut will be automatically created from the "Applications" menu in the startup action of a channel.
path to windows applications

You will find the application registered in the properties directly in the applications when you open a channel

https://uploads-ssl.webflow.com/60799032d5e3523ef1cd727c/6091037db25653a59aa30cfc_image-51.png

🔸 Warning

The access paths will have to be adapted according to your configuration.

Java (JDK) settings

Java allows to load, compile and execute ATS projects.

From the configuration menu it is possible to download the JDK or to enter the path to a JDK already existing in your computer.

java jdk settings

🔸 Warning

You need at least a version 11 of the JDK for Agilitest to work.

It is also possible from this interface to add Java execution arguments for the launch of tests by clicking on the "Add argument" button.

add argument

External connections

ATS Mobile Station servers

It is possible to set up an ATS Mobile Station server to automatically connect the set up server during your mobile tests.

By clicking "Add" button, you will be asked to enter the IP address and port, which will be retrieved directly from Mobile Station interface.

ats mobile station servers

You can check our documentation on mobiles tests.

GIT accounts

The Git account in Agilitest allows you to clone an existing Git account and thus use a Git project.

Click on the “Add” button to add an account

Git accounts

Then, enter your Git account information.

Git account entry

Still require support?
Contact support

Capture tool

You can watch our tutorial or you can go through our documentation about the capture tool:

The Agilitest capture tool is an essential component for selecting user interface elements to capture and reuse them in tests as action targets.

What is the capture tool?

During a manual or automated test, it is essential to define the target of each action programmed in the scenario. For example, a click action requires a target element to interact with so that the test clicks on the right button, or the right interface element.

The Agilitest capture tool defines these action targets. It goes a long way in identifying the components of your applications, to set up detection rules tailored with the relevant attributes.

The capture tool allows to fly over the GUI elements of your web, mobile, desktop, or data structures (XML for your SOAP webservices, JSON for your REST webservices).

For each element thus overflown, the capture tool presents you the tree in which it is located, and the attributes which it has.

What is the DOM?

It's the same capture tool that allows you to capture the HTML tags of the DOM (Document Object Model) of your web applications, the Widgets of your desktop or mobile applications, or a graphical presentation of the data structures of your webservices.

In this sense, the Agilitest capture tool is graphic, versatile, and at the service of the multichannel aspect.

The DOM is an HTML representation of a web page, which defines the structuring of the different components of the page.

The DOM can be seen as a tree where each element can have zero or more children, which can themselves have zero or more children.

Example : The DOM always starts from a root element: the <html> tag. This tag has children (<head>; <body>) which therefore have <html> in common as a parent. The content of your <body> tag can notably contain links, buttons, blocks etc.…

💡 Tip

To better understand HTML:

  • Opening tag <>, closing tag </>
  • Element, parent, child element and sibling element
  • Processing a component of <iframe> type
  • An <input> tag implies a parent <form> tag (often rich in attributes)
  • A <li> tag implies a parent <ol> or <up> tag (often attribute-rich)

How to open the capture tool

To open the capture tool, you must first start a channel and have the website open as part of a web test

Once you have created your project and opened your channel, you can open the capture tool by clicking on the corresponding button in the channel management menu.

capture tool icon in editor

The capture filter is symbolized by a pattern in the form of small crosses that are positioned in front of the channel (the screen of the application to be tested). This filter is used to delimit the capture area.

capture tool filter above web page
The capture tool filter is activated

Another indicator that the capture tool is activated is the Capture window that appears at the top on the left.

capture window

You can press the Shift key on your keyboard to click on elements on the web page without having to close the capture tool. This will open a drop-down menu or show other elements that don’t necessarily appear.

🔶 Warning

The pattern corresponds to the initial size of the channel that is set in its ATS configuration. If the channel is manually resized, some times the syncronisation with the channel will work and the filter will match the modified channel size. However, in other cases, the filter will not match the channel size because it will be out of sync with the channel driver. It will therefore be necessary to close the channel and then to open it again for the driver to synchronize again.

Use of the capture

The Agilitest capture tool consists of a "capture window".

capture window

This window can be moved from left to right, especially when it hides an element that interests you.

This capture window is composed of 3 main buttons:

  • System (Alt): Toggles between HTML capture mode and system capture mode. By default the capture tool will be placed on the HTML view. To change the view you can click on the system button or press the ALT key on your keyboard. Changing the capture mode requires the capture tool to reload, which may take a few seconds.
  • Source Code: Displays the source code of the page.
  • Close: Disables the capture mode.
  • The coordinates x and y: correspond to the coordinates (x: abscissa and y: ordinate) of the cursor.

The movement of the mouse over each element of your application is accompanied by a tooltip specifying its type (either the name of the HTML tag for the web, or the name of the GUI component for the desktop).

capture identify an element

To capture an item, you need to hover your mouse over the desired item, then press the CTRL key on your keyboard. You don't need to click on the mouse, just press the CTRL key.

This will bring up the "Captured element's parents" window that displays the path from the root of the application to the item that was just targeted.

capture element's parent window

The parent elements unfold like an accordion to display more details of the attributes. The attributes must be checked according to what you want to keep to perform the detection of the element.

captured element's parents window close up

As the mouse moves through the different "nodes" of the path, the blue frame around your element in the web page will position itself to identify the element you have moved.

captured element underlined

The component is displayed with all the attributes that define it. The objective is to select one or more attributes that will define the component and make it uniquely recognized within the page. This is called a "Locator".

The attributes

attributes in the capture element's parents window

The attributes are: type, class, id, name, or even CSS attributes for web applications. Or they can be: TitleBar, Button, TabItem for desktop applications.

Agilitest only proposes the attributes it finds. This means that it does not invent ids, it takes them from the DOM.

If there is no id proposed, it means that the application is developed as is. Two possible situations:

  1. The developers have not developed any id, perhaps because of Agile development or a lack of time. You can therefore give them a report on your test and tell them if any ids are missing. As a QA, your role is also to audit good practices and quality in a broad sense. As a functional tester, it is more common sense to point out to the developers that it takes you time that is not necessary to identify this or that component when an id would be a time saver in the configuration of your tests.
  2. Conversely, if you use development frameworks, some frameworks do not have "good practices" that are respected and therefore do not have an id.

Advanced features in the locator

Once the attributes to define your component are selected, several steps can be performed before placing your interface element within the script by adding a corresponding action.

Statistics on the captured element

In the "Captured element’s parents" window, the Statistics button allows you to check whether the checked attributes will uniquely recognize the item on the page.

statistics action on an element

Clicking on the "Statistics" button confirms or denies the uniqueness of the checked element according to the chosen detection rule. A green tick will appear to confirm the uniqueness of the element. It is possible to click on the magnifying glass from the green tick to highlight the element on the web page.

If the green check mark does not appear when checking the statistics, there are several possibilities:

  1. Multiple occurrences: A warning will appear to indicate multiple occurrences on the page. In this case, you can add precision and go up in the upper elements by adding attributes to your element or, if several occurrences appear, it is possible to target the occurrence that interests you from its index number.Example: If an image always appears as the 2nd occurrence in the order of the components on the page, then you can select the 2nd occurrence among those indicated..
  2. A red cross: This means that the element is not found. You will have to find another way to recognize the component.

Regular expressions (regex)

Regular expressions can be used in the Agilitest capture tool to match parts of attributes. The regular expression allows you to manage dynamic data.

A search based on long text is not recommended, as blank spaces and line breaks can lead to errors.

Example: Some JavaScript libraries are known to randomize parts of ids or classes. If we look at an id written "btn-XYhSj02-01". We assume that the first part "btn" is fixed and the second part "01" as well, only the middle part is likely to vary.

We can then match this identifier with this regular expression:

btn -.{7}-01

regular expression in the capture

The use of regular expressions brings an additional layer of difficulty, but their use allows to simply handle the most delicate cases. The difficulty associated with regular expressions is therefore a lesser evil.

When you click on the text of an attribute it will open the insert allowing the setting of regular expression.

buttons for regex

Access to two buttons for :

  • Manage case
  • Manage spaces

💡 Tip

Expressions to remember:

(?i) : Means that the expression is completely case insensitive

(?s): Insensitive to the formatting of special characters (line breaks, spaces, etc)

.*: To form any character string. The dot represents all possible characters (A-Z, 0-9 and special characters) and the star indicates that the previous pattern (i.e. the dot) is repeated n times.

[a-z]{3} : Means 3 letters between a to z.

Drop the element in the script

The "drag and drop" icon in the parent window of the captured item allows you to use this detection rule in the item of an Agilitest action.

The drag and drop can be placed either after the last lines of the test, which will create an action,

Create action with the element captured

Either inside an existing action line in the "Interface element" section.

add interface element section

Search for an element by its index

When a locator allows you to find several elements, it is possible to specify by an index which one you want to manipulate.

Example: In an array where the number of rows is represented by the element "TR", if you specify index #2 in this element containing several occurrences, then the text of the second row of the array will be retrieved.

From the editor, fill in the index of a multiple element by clicking on the Lego icon.

add an element "logo" button

Then, to the right of the element, you will see a # and two up/down controls that identify by an index the element defined by your locator.

modify indexes in the element

By validating, Agilitest allows you to retrieve specific attributes of an item identified by its index.

Graphic recognition of elements

Graphical recognition is possible with Agilitest, it allows to detect the presence of an element on the application and to count the number of occurrences (PCRE format). While it is not desirable to abandon the HTML attribute capture system, graphical recognition is complementary in specific use cases.

Example: When the desired element has no usable id or class, graphic recognition is usable.

When the application includes Java, Flash or 3D code, the capture tool will not always be able to dive into the application tree to present the different elements of the interface in a structured way. In this case, graphical recognition allows actions or controls to be performed even in the presence of a programming framework that is not cooperative with Agilitest.

To use graphic recognition, open the capture tool. Instead of positioning on a component and pressing the CTRL key, to perform a graphic capture you need to select the area you want to capture.

Using the mouse, hold down your left click to select the area to capture

capture graphic element recognition

The selection will take an image capture of the element with 3 buttons available:

  • Elements Tree
  • Copy
  • Save
graphic element buttons

Click on "Elements Tree" to associate the location with the graphic capture then drag the element into your script and add an action to it. The possibilities are the same as for a classic HTML component.

🔶 Warning

This tool should be used sparingly; it may be useful to act on a button that is not recognized, for example, but it may interfere with graphic recognition.

Target an element

In some particular cases, it is mandatory to do an operation on a very particular position on the tested software where the locator can not be used since it is only based on attributes.

Example :

When you want to click on a precise zone on an image where the last element visible by the locator would capture a bigger zone than wanted.

Like a web image of a map where you want to click on a city rather than a country, or a intern component of a desktop app, etc…

Agilitest offers a solution that allows a precise definition of the point on which you want to execute actions by specifying its cartesian coordinates in relation to the window’s component.

In the example below,

precise position on an element

If you only want to click on California, but the last element visible in the HTML structure is the full image of the United States, then you will need to create a cartesian coordinate for the locator.

A cartesian coordinate definition of the locator is done in two steps:

  1. Select the reference component

Start by selecting the standard locator, either by its attributes of by its graphic recogntion

capture element
  1. Target the action point

Once the locator is selected, click on the “Target location” button

target location button

You can then target precisely the point on which the action is to be exectued by clicking directly on it.

targeting the element

Agilitest will inform you that a locator with a cartesian target has been created by adding a target on the drag and drop button

drag drop button

Once you have dropped your locator in the editor, Agilitest will generate an action with cartesian coordinates.

target action in editor

Thanks to this functionnality, you will be able to generate a locator out of the select component.

The interest of such a tool

Using the source code in another way

The Agilitest capture tool offers interests compared to the development tools panel offered by browsers with the F12 key that gives access to the source code of a Web page:

  • The Agilitest capture tool is cross-browser: Chrome, Firefox, IE, Edge, Opera are treated the same way;
  • The Agilitest capture tool is multi-channel and can be used on: web applications, webservices, desktop applications, mobile applications;
  • The Agilitest capture tool does not just hover over elements, it refines the detection rules and tests their uniqueness on the application screen;
  • The Agilitest capture tool offers graphical element recognition** in addition to HTML attribute recognition.

Locator Agilitest vs. XPaths

agilitest locator vs xpath table

Many testing software applications use XPath as a system for querying and detecting elements in an application.

Detection is often assisted, and allows relative ease in creating an XPath expression. The XPath expression is created and used, often without the tester having had the opportunity to read and review it in the context of their knowledge of the application.

A recorder allows, when activated, to open a browser and to perform actions on it (clicks, data entry, etc) which will then be transformed into a script by the recorder.

The capture tool has the same purpose, only the typing is manual.

One of the advantages of the Xpath is the "absolute" side of the path, which allows to find exactly the component thanks to the detail of the indicated path.

However, if an element changes within this path, it will result in a wrong indication to the component. This is especially true with Javascript frameworks (like ExtJS) that randomize element ids making them difficult to use.

Example: If the developers add an IVD within the path or have rearranged the components, the attribute used to recognize the IVD has evolved.

Also, automatically generated XPath expressions can be cumbersome to maintain.

Agilitest offers the opposite:

The idea is to slow down the recognition of the component as much as possible. The fewer components you add, the less likely you are to make the test obsolete to future changes, which makes the test more robust.

These are, in our opinion, two reasons not to use XPath technology in Agilitest:

  • No automatically generated XPath expressions without review by the automation engineer or functional tester.
  • No systematic KO testing after the application is updated.

Still require support?
Contact support

SELECT components / combo boxes

You can watch our tutorial or you can go through or documentation about select components :

Agilitest native manages SELECT components in HTML and combo boxes for desktop applications. This is necessary because these components have a graphical interface and a particular behavior: it is a matter of selecting one or more values from a drop-down list.

A SELECT HTML component

There are 3 possible options to select a value :

Selection options in Agilitest

Index selection

The index corresponds to the position of the desired value in the drop-down list, starting from the top and beginning with 0.

Simply check the Index box and enter the desired value, obviously this index must not exceed the number of values proposed -1 otherwise no text will be selected.

Selection by text

In this case, the text will be selected if it corresponds to a possible option proposed by the SELECT.

This makes sure of the value used, but it still needs to be proposed.

Value selection

The value attribute is an additional value that is provided in the HTML code and that is related to the displayed text. This allows you to select a text, but not to retrieve the value.

Again, this value must be proposed for the corresponding text to be selected.

Still require support?
Contact support

Project explorer

The Agilitest Project Explorer represents a physical file tree that you will find on your computer as it is.

We made this deliberate choice for several reasons:

A test corresponds to a file ATS, readable and modifiable, it is thus interesting to have this correspondence to be able to use them directly from your operating system.

This organization will  allow you to manage your files in folders and sub-folders without any big complexity, and it makes it possible to manage a very large number of tests.

Finally, we are ourselves on a MAVEN-type tree, so that we can take advantage of the ability to manage dependencies so that they are always up-to-date with ATS, and people who wish to use it with Agilitest can do it simply.

Tree Example in the Project Explorer

The contents of the directories

Here is the detail of the main useful directories that make up the project explorer:

  • libs : This directory can integrate non-MAVEN-dependent libraries that you want to use with your test project.
  • src\assets\data : Contains the CSV files used to variabilize your scenarios and do Data Driven Testing.
  • src\assests\resources\images : This directory stores the images used for graphic recognition.
  • src\assets\resources\lang : This directory includes the different translation files you use (for example in your video files)
  • src\exec : Contains the executions files that you have created with Agilitest. These files can be used as is by Agilitest or your continuous integration environment compatible with TesNG.
  • main\ats : Contains your tests in ATS format, and subdirectories that you have declared. The number of .ats files in each directory is indicated.
  • main\java : Contains the java code files you want to call from your ATS scripts.
  • target\classes : Contains the compiled code of your java files, this includes the java code generated by ATS and the additional java files you have imported.
  • target\generated : Tthe ATS code is transformed into java which is generated in this directory before being compiled.
  • target\logs : Executions logs generated by TesNG.
  • target\output : A set of files and directories used by TestNG during the execution of the tests.
  • target\report: Contains the ATSV (ATS video) files that are generated on demand during test replay.
  • target\report\<name_of_the_test> : Contains all the screenshots that are generated during a test replay, as well as an actions.xml file. All of these elements allow you to generate reports on demand in several formats, including pdf, using the XLST FOP engine.

Change the view of the project explorer

By selecting the menu at the top right of the project explorer, you will be able to modify its display.


Project Explorer View Menu
  • Projects Explorer: Normal view
  • Show resource images: Allows you to see all the images you have used for graphic recognition at a glance.
  • Show ATS scripts : Allows you to see only your test scripts
  • Show visual reports : Allows you to focus on the videos generated during the execution of your tests.
The image view
Still require support?
Contact support

Editing actions

▶️ You can find a tutorial on how to edit actions on our Youtube channel.

During the creation of your tests you will interact with the Agilitest editor. The editor allows you to create actions and to manage their executions in order to improve the maintenance of your tests.

Create actions

Your created actions are going to be added one after the other in your script. It is possible to change their order manually directly in the editor.

There are three ways to create new actions:

Actions menu

actions menu editor

This menu, which appears when you have opened a script, contains the actions used during a test.

To create a new action, simply click on one of the actions in the menu and it will be added to the editor.

Example :

If you want to create an “Enter text” action, click on the corresponding action in the menu,

enter text action

Then, the newly created action appear, empty of any information, in your script

new action without info

You will need to complete your action manually or by dropping an interface element.

Action created from a captured element

Once your element is captured with the capture tool, click on “Drag drop into editor

drag and drop

While holding your element with your mouse, drag it into your editor and place it under an action to make the “Create action” input appear.

create action popup

The generated action is linked to a graphical element in your application.

Select the action you want to do on your element.

contextual actions

All actions are not available from this contextual menu. To have access to all the actions you can check the actions menu.

Copy and paste an action

By doing a right click on on an action in your script, or a group of action, a contextual menu with different options appears.

right click on an action

This menu allows you to:

  • Copy/cut and paste
  • Delete permanently an action
  • Deactivate/activate an action or a group action

Their display will be greyed out and a stop icon will be added to a deactivated action.

greyed out action

They won’t be played during the script.

Active actions

You know that an action is selected when its colour is dark grey. This is what is called an active action.

active action

You can select multiple active actions.

To do that, select the first action, then press the SHIFT key on your keyboard and select the last one

All the actions in between those two actions will be selected (cf. from action 1 to action 3).

You can also use the CTRL key on your keyboard to select separately one or multiple action to add in a group of active actions.

Actions linked to the application’s elements

What is an action composed of?

Agilitest editor gives graphical interpretations of the actions that will compose your scripts. The ATS format, which is a test language, is a text format that describe the whole of the actions.

presentation of an action
  1. Each action has an index that add up automatically and is numbered depending on its position in the script (cf. index 2).
  2. Next to the index is the nature of the action, which can be parametered

Example :

For an enter action, you can enter the text you want to see appear in your test, (cf. “Hello World ! $key(ENTER)” for the action in the capture)

        3. Then, under the nature of your action, you have the interface element and its options. In the options you can modify, specify or enter manually the Locator, which is the targeted element.

Actions on the interface element

Click on the lego icon to the right of your element to add attributes to your element.

lego icon

Enter or modify attributes

attributes menu

You can also click on the element to add parents or children and specify their type.

specify the element

If your locator, i.e your targeted element, can retrieve multiple elements on a page, click on the “#” to specifiy which element to select by its apparition order.

index element

💡 Tip

This functionnality can be useful to select a specific row or column in a table.

Drag and drop an element

As seen previously, you can create an action by drag and dropping a captured element into your empty action.

application root

Furthermore, you can drag and drop an element already used in a previous action into a new one.

drag and drop

Empty element

An action may not have an element.

application root

Click on the root application to show different options

root application options

  • Addition of an interface element: With this you can create an element with search criterias (type of element, parents, etc…)
interface element creation

  • System interface: This allows you to target an element from the system window by defining it. The “Button” type appears by default.
system interface specification

💡 Tip

You can make manual modifications on a system interface, however, we recommend to make those modifications via the “Desktop” application in an Start channel action.

desktop application

  • Dialog box: This is allows you to manage and execute actions on a dialog box
dialog box

For further information you can consult the documentation on how to automate a dialog box.

  • Screen record: With this feature you can count shapes in a video.
screen record

Still require support?
Contact support

Web automation

Agilitest supports the automation of web applications on 5 browsers:

  • Chrome
  • Firefox
  • Microsoft Edge
  • Internet Explorer
  • Opera

In addition, we provide generic compatibility with browsers that come from Chromium, for example JXBrowser.

Create a first test

To begin, you must open a channel on a web browser of your choice. By default Agilitest will find the installation of the main browsers of the market, except for Opera which will require a little additional configuration.

By clicking on the "Start a channel" button, you will be able to select the browser that interests you.

You can then immediately open the channel by clicking on the "Play" button that appears on the right side of the action: opening the channel will launch the browser.

The following action "Navigation -> Browser URL" allows you to specify which URL your application is at, it can be a local link or an internet link.

Enter an URL

After specifying your URL, just play the action directly so that your browser is positioned on the desired page.

From there, you will have to go into capture mode to select DOM elements, perform actions and controls, and finalize your test.

How to run the same test on multiple browsers

Once your first test done, you can very easily launch it on several browsers, for that do the following operations:

Create a CSV file of a single column and fill in the browsers that interest you. This is done simply by clicking on "New component" and csv file.

Ficher browsers.csv

We will then iterate over the values ​​of the CSV file by performing a subscript call.

  • Create a new script
  • Drop your main script from the project explorer into the edit window, this will create an action "Call the script".
  • Drop the CSV file on this new action, to generate an iterative call on the CSV file.
Iterative call of the main script by iterating on the different browsers

All you have to do is slightly modify your initial script, in order to vary the name of the browser: click on the App section of the "start a channel" action, and replace the browser name, set to hard, with the variable $param(0), this is the value of the first column of your CSV file on which your subscript call will iterate.

Vary the browser's name

In Agilitest, you can use variables in many places in order to increase scripts and file reuse, you will have more information by consulting our documentation on Data Driven testing.


Still require support?
Contact support

Video reports

It is important that the analysis of test failure conditions be quick and efficient to determine if the test needs to be modified or if there is a regression condition in the software.

This is crucial to further reduce the load of automated testing on the maintenance site.

The ATSV video functionality is provided by ATS natively: it is open source. You will be able to exchange reports with your partners even if they do not have access to Agilitest.

How to generate a video report in Agilitest?

There are several ways to produce a video report directly in Agilitest.

From the channels management menu

The channel management menu is accessible on the left side of the Agilitest editor, below the project explorer, and allows you to request the generation of a report during an execution.

Click on “Parameters

parameters button

Select “Visual report”

visual report

At the end of the execution, the report is accessible with the project explorer in the target\report directory.

By double clicking on the generated ATSV file, the video report is read in the viewer provided with Agilitest.

atsv file

From the executions management menu

In the execution control panel you can request the generation of Video Reports.

To open the run control panel, click on "Executions management" in the project explorer

executions management

This will open the run management and suite compilation page.

project's builder

Then, click on the suite settings button.

pen button to edit

Click on the case “Enable reports

enable report button

Then select the quality level of the video report which implies the level of detail more or less high

quality choice

It is important to configure this correctly as it may affect the execution time or size of video reports when replaying continuous integration tests.

Finally, click on “Generate reports” in the execution line of the project’s builder.

generate report

The ATSV format has been optimized to take up little space and be generated quickly, but be aware that the configuration of the videos in the runs is for all tests that will be replayed and can produce a large amount of reports.

How to play an ATSV video without Agilitest?

An ATSV player written in HTML5 / Javascript is provided free of charge and can be integrated directly into your continuous integration environments, or even launched from the command line.

The HTML5 ATSV player is activated to read the reports.

ATSV HTML5 player

The ATSV player is a tool that allows you to replay an ATS test as a sequence of images and animations

When you open your ATSV file, it is displayed in a browser tab.

atsv html5 player

For each ATSV HTML video, it will display on the screen the name of the channel being executed and the number of actions performed.

current channel

The following actions can be performed during the reading process:

  • Play
  • Pause
  • Stop playing
  • Previous and next actions
previous and next actions

  • Switch to full screen, which will expand the image sequence to the entire screen with the list of actions superimposed on the player

To activate the full screen click on the corresponding button

full screen button

This will show you the player on the whole page

player on full screen

When the full screen is activated you can click on the "Actions" button

actions menu

This will display the list of actions next to the video images

list of actions

  • Select an action in the action pane that will be displayed directly on the video
actions of the test

  • Select a sequence moment, directly on the playback bar
playbar

To do this, hover over the player's progress bar and select a capture to display it

overview of the video

To view the details of the report, hover over the "i" to see the information

"i" point for information

The comments in a test are also visible in the video reports.

To view them, move your mouse over the yellow bars representing the comments.

comments in the player


Still require support?
Contact support

Actions menu

The Agilitest action menu is central and allows you to manually declare all possible actions in a test script.

actions line in the editor

Types of actions

Channels button

Channels action

These actions allow you to create, close and modify the current channel of your test. They are integrated directly into the script.

Channel actions

Start channel: This action allows Agilitest to make the link with the application under test.

Switch channel: This action is used when several channels are present in the script. It allows to switch between the different channels.

Close channel: This tells Agilitest that the channel will no longer be used during this test and will close the application.

Navigation button

Navigation actions

In the case of application automation on remote services, Web and Webservices, these actions will allow you to indicate which URL to navigate to and which protocol to select: Web / HTTP, SOAP, REST.

Navigation actions

🔸 Warning

In the case of an execution on the desktop, you will still have to go through the "Browser URL" action by entering the path of the tested application in the Windows Explorer.

Subscript action

Subscript action

This action does not have a drop-down menu because it directly creates a script call action in the script. Sub-scripts do not differ from scripts, both are ats files, only one is called by the other.

There are two ways to use this action:

  • By making a direct call with or without parameters
  • From a CSV/JSON file

Enter text action

Enter text action

The enter text action sends items corresponding to keyboard keys to your application, key presses, with or without additional special keys.

This action is inserted directly into your script. From the action you can set the nature of the action.

Click on the action "Enter text [ ]" to enter a text.

You can write directly the desired text with your keyboard. You also have access to the special keys which have the same functions as those present on the keyboard (enter, space, CTRL, etc...).

Text entry

Also, you can insert special values into your text entry from the special value menu.

Special value button

This will give you access to various values, variables, etc…

Special value menu

mouse button

Mouse actions

The mouse actions are used to manage the mouse on PC applications, but also the specific actions of mobile applications such as the swipe.

mouse actions

This action has a sub-menu including :

  • Mouse click: It performs a click action on an element
  • Over: It simulates the mouse over
  • Drag and Drop: This action contains a sub-menu that completes it:
  • Drag: This performs a hold click
  • Drop: This releases the element. It must be preceded by a "drag" action
  • Swiping: To swipe right, left, up or down with the mouse or by simulating touch for web tests.
  • Scroll: To scroll a cursor or access elements of a page

Check action

Check actions

Check actions are generated for an explicit check or assertion during the test. This can potentially lead to the test failing or allowing it to continue.

Check actions

There are three possible verification actions:

  • Property check: This allows you to check the value of an existing property in the script
Property check

  • Occurrences check: This allows you to check the number of occurrences of an element
Occurences check

  • Values check: This allows to verify that a value corresponds to an existing value in the script
Values check

property action

Property action

The property action allows you, from a captured component, to retrieve one of its properties and place it in a variable.

This variable can then be used to define other dependent variables, create assertions, etc.

Property action

System action

System actions

System actions are only used for a mobile channel.

This action is done in two ways:

  • By using the button action: This allows you to interact with a physical button on the phone (sound setting, home, lock, etc...)
  • By setting the properties: This allows you to define a system property  (sound volume level, phone orientation, enable/disable WIFI, etc...)

Window button

Window actions

The window management action allows you to manage the Windows operating system, Windows desktop modal applications and browser tabs.

It does not allow you to manage the internal windows of some web applications, which are floating HTML elements, directly accessible with the web automations.

A specific menu is also available to manage dialog boxes without adding unnecessary complexity.

window actions

The window action has a sub-menu with three possible actions:

  • Size and location: This moves the window by specifying its new Cartesian coordinates or to change its size (height and width).
  • Window visual state: This allows you to send an event from the operating system to the current window.
  • Switch Window: This changes the current window by specifying the number of the window that should be swapped.

select action

Select action

This action handles specific SELECT components in web browsers or COMBO-BOXES in desktop applications.

scripting action

Scripting action

Scripting is used to execute Javascript code on a component.

It differs from the Java execution action which occurs outside the context of a component (but which can still retrieve variables).

comment button

Comment actions

In addition to simple technical comments, this action will allow you to declare key functional steps in your test.

Comment types

This action has four types of comments:

  • Functional step: This comment indicates an important step in the script
  • Script comment: This comment explains the operations performed by the script
  • Execution log: This comment is functional on strings
  • Report Summary: Allows you to add text to the summary of the generated execution report

Some of these actions can act directly on a component and can be created from an element captured and dropped into the script.

actions available from a captured element

These actions are: Check actions, Mouse actions, Enter text, Property, Javascript and Select actions.


Still require support?
Contact support

Editor presentation

To help you familiarize with the Agilitest environment, here is a presentation of the various elements that makes up the Agilitest editor.

agilitest editor interface

Project management menu

project management menu

This menu is situated at the top left of the editor. It allows you to create a new project, to open a git clone, to open a project already in use, to create a new component and to save files on which you are working on.

Create a new component

new component

When you create a new component, Agilitest provides a selection of different types of component :

Create ATS script: To create a new test or a subscript**.**

Create CSV file: To create a data file in order to test various data (Data Driven Testing).

Create a JSON file: To create a data file in order to test various data as well.

Create Java script: To call a Java code extern to Agilitest.

Create execution: To create an execution of your tests to manage the review of all your tests from a project that can be filtered with multiples parameters.

Configuration and help menu

configuration and help menu

This menu, situated at the top right of the editor, allows you to:

  • Take screenshots of your editor directly from Agilitest
  • Have access to the settings of Agilitest
  • Have access to the tools that can complete Agilitest
  • Search for a script in particular in the editor
  • Have access to the help menu

Agilitest settings

Editor's settings

Agilitest settings allows you to:

  • Generate error reporting
  • Parameter the lanugage of the Agilitest editor (french or english)
  • Configure ATS
  • Configure Jenkins
  • To connect Mobile Station or Git accounts

Tools menu

Tools menu

You can improve your experience by adding tools that communicate directly with Agilitest. Among those tools there are:

  • Jasper Report
  • Apache Maven project management
  • FlaUInspect
  • Jenkins server

Help menu

Help menu

From the help menu you have access to:

  • Agilitest archive download link
  • Mobile Station download links (Windows and MacOS)
  • Player ATSV download link
  • Various resources to support your path on Agilitest (documentation, videos, webdrivers, etc…)

Project explorer

projects explorer

The project explorer is a structure tree that lists all the projects and elements they are composed of.

From the project explorer’s menu you can modify the view of the tree.

projects explorer filter

The project explorer’s view can be filtered:

  • Project’s explorer: Projects tree
  • Script’s explorer: ATS repository
  • Show resource images: Images used for graphic recognition
  • Show ATS scripts: ATS script
  • Show visual reports: ATSV videos

When a project is open, it will be situated in the project’s explorer in which you will have access to other elements to manage your project from the drop-down menu.

projects explorer menu

Channels management

Channel management menu is a prerequisite before you start editing a test, it is a central element of Agilitest and that will facilitate the test creation and maintenance.

https://uploads-ssl.webflow.com/60799032d5e3523ef1cd727c/609102f926f8d419b987fbf6_image-23.png

In this channel management menu you have access to:

  • The Capture tool button
  • The Close button to close the current channel
  • The Play button to play the script
  • The Next button to play an action and the following one
  • The Parameters button to set up the execution management

Script’s variables

The script’s variable menu allows you to create and visualize all the variables that are used in a script.

script's variables

This is to avoid having the variables in the script’s core that is only made for actions.

https://uploads-ssl.webflow.com/60799032d5e3523ef1cd727c/609102fd03ae3864a5d425e1_image-24.png

Scripts management

Actions menu

actions menu

The Agilitest actions menu is central and allows you to manually declare all the possible actions in a test script.

In this menu you will find all the agiles actions that are used during a test. It was made to secure the most compatibility between all the devices supported by Agilitest.

This menu is also used to manage different channels used in a test.

Script editor

Agilitest script editor represents a big part of the editor. It shows the actions you can execute on your tests. The editor will propose graphical interpretations of the actions that will be performed on your script. The ATS format is a textual format that will describe all its actions.

script editor

This section of the editor is designed to allow the reuse of components: copy of the actions or elements on which they act on or with subscript creation.

The actions display only shows the principale actions, but all cases can be managed in sub-menu.

https://uploads-ssl.webflow.com/60799032d5e3523ef1cd727c/609102fad3595f83cd52dec3_image-26.png

Script header

The script header menu is used to manage a set of metadata linked to a test, like execution suite for example.

To have access to the script header, open a script and click on the “Script’s header data” button

script header button

You can visualize the ATS script corresponding to your test.

ats code

💡 Tip

This can be useful to copy the information from the script’s header and send it by email or add it to a comment in your bug tracking tool.

You can also have access to the Java code which once it is compiled will allow the execution of the tests.

java code

🔸 Warning

ATS and Java scripts cannot be edited directly in the editor.

To return to the script editor, click on the "Actions" button

actions button

Still require support?
Contact support

What is ATS

ActionTestScript, diminutive ATS is a test language that is structured and readable and understandable by a human being and easily editable by an A.I. used to create reliable and powerful automated test campaigns with a graphical interface.

ATS is open-source under the Apache 2.0 license.

Test scripts are defined by a sequence of «actions» executed on a Web application (Chrome, Edge, Internet Explorer 11, Firefox and Opera), desktop (Desktop), mobile, or Webservice.

Scripts written in ATS are converted into java classes and then executed using Selenium frameworks (for browsers), or by software layers directly implemented for desktop parts, mobile Android and iOS or Webservices.

ATS produces reports in the following formats :

ATS is compatible with the widely used TestNG execution format and is compatible with most recent continuous integration systems.

With ATS, test designers focus solely on the functional actions to be performed and do not have to worry about technical considerations.

The link between ATS and Agilitest

The link is primarily philosophical: we wanted to make available to all the software test replay technology that is ATS and thus allow possible acceleration of the developments that are linked: dev/ops-related technologies and more generally all those involved in the software production chain are multiple and still in high evolution.

Technically, Agilitest is an editor that produces ATS scripts, but we also put in this editor all the experience of several years of use of automated testing tools. It relies on ATS and benefits from the technical features it brings: readable scripting, step-by-step replay of tests, robustness...

ATS is maintained by Pierre HUBER, founder of CAIPTURE, publisher of Agilitest. More information by following the link :

www.actiontestscript.com

Still require support?
Contact support

Jenkins integration

This documentation is obsolete since Agilitest V1.2.3 version. Please refer to:

https://www.agilitest.com/blog/test-well-yes-but-what-how-or-how-agilitests-jenkins-interface-will-simplify-your-life

You can watch our tutorial or you can go through our documentation about Jenkins integration :

There are various ways to launch tests of an ATS project: just with Jenkins several solutions are possible.

We will present here a very simple solution requiring only a few minutes of installation and configuration.

Use this procedure only if you need a specific Jenkins installation : Agilitest is able to automatically download, install a Jenkins instance, and configure jobs on the computer where it runs.

Jenkins installation

  • Download a Jenkins for Windows here: https://jenkins.io/download/
  • Install it as standard
  • Launch it in command line with java (do not launch it in service for this configuration example and if necessary stop the Jenkins service)
  • Example command to launch Jenkins: java -jar -Xms768m -Xmx1024m jenkins.war
  • Connect to "http: // localhost: 8080" and follow the instructions for the password.  
    Be careful : the initial password when launching manually is changed and printed in the launching logs.
  • You can then choose to "install the suggested plugins" or install some plugins you want.
  • Then enter the administrator account information and click on "Save and continue"
  • Configure the instance (address and port) then click on finish
  • Your Jenkins instance is ready to be customized

Configure a JDK (minimum 10)

Using a browser, connect to your Jenkins instance.

(in some cases, if you have a blank screen, restart your command line instance).

  • Click on "Manage Jenkins" then choose "Global Tool Configuration": in the "JDK" section choose the JDK you want to use (minimum 10), either automatically proposed by Jenkins, or by defining a local directory containing a JDK 10 .

Plugins installation:

From "Manage Jenkins" click on "Manage Plugins". The necessary plugins for ATS are:

  • Environment Injector Plugin
  • GitHub Integration Plugin
  • Maven Invoker plugin
  • TestNG Results Plugin
  • Unleash Maven Plugin

(Note: You can add all the plugins that interest you)

  • On the “Available” section, filter with the names of the plugins above to select them:

(These plugins will normally be already installed on most existing Jenkins infra with the possible exception of TestNG)

The installation of these plugins will recover all the necessary dependencies.

Define the ATS directory

Prerequisite: Download the ATS components (More information on the GitHub Action Test Script project in the "installing" section)

From the "Manage Jenkins" menu click on "Configure System" then in the "Global Properties" section add an environment variable:

Name = ATS_HOME
Value = [chemin vers votre répertoire local ATS]

  • Back to Jenkins home page
  • Click on "New Item"
  • Name your new job
  • Click on "Maven Project" then click OK
  • In the "Source Code Management" section, click on the "git" radio button and enter the git URL of an ATS project (for example: https://github.com/pierrehub2b/ats_test.git )
  • You can also click on "none" to use a local project (the path will be defined in your project POM file).
  • In the “Build Environment” section, optionally add a variable (eg browser.name = chrome) after checking: “inject environment variables to the build process
  • To be used by ATS, this variable name must be the same as a variable used in the ATS project. (for example, in the Agilitest editor you will find these variables in the "Execution parameters" part of a project)
  • On jenkins, in the "Build" section, enter the value "test" in the "Goals and options" field:
  • Your job is configured and is ready to be launched by clicking on "Build Now":
  • Once the job is finished, you will have access to the usual reports resulting from the execution of tests (details by tests, regressions, passed, failed etc ...)

If you want to share or exchange on another example configuration, you can do it via the following github project:https://github.com/pierrehub2b/actiontestscript

Still require support?
Contact support

Special actions

In your functional tests on mobile terminals you will sometimes need to automate atypical actions particularly related to the OS.

For this we have integrated the following native functions:

  • Back : Back on the last action
  • Home : Displays the "desktop" of the mobile terminal
  • Menu : Access to the functions of the mobile terminal office
  • Search : Launches a google search on the mobile terminal
  • Delete : Delete the last character entered
  • App : Displays the list of recently launched applications on the mobile terminal

To add these actions, proceed as follows:

  • Select "Application root"
  • Select "System button"
  • Select the correct system action for your test

Details of available actions

Back

This action corresponds to the use of the physical button generally present on Android terminals.

It is particularly useful for reducing the virtual keyboard that is sometimes automatically deployed without having to click on a particular button.

Enter

This action corresponds to the use of the physical button "Enter" on terminals.

Home

This action corresponds to the use of the physical button generally present on Android terminals.

Reduces all running applications to quickly reach the "desktop" of the mobile terminal.

Menu

This action corresponds to the use of the physical button generally present on Android terminals.

It is particularly useful for accessing the configuration options of the "desktop" of the mobile terminal.

Effective action only from the OS (without effect on an application).

Search

This action corresponds to the use of the "search" function generally proposed on Android terminals.

Effective action only from the OS (without effect on an application).

Delete

This action allows you to delete the last character entered in the element being selected.

This action does not detect any element on the application.

App

Displays the list of applications recently launched on the mobile terminal.

This action can be useful to perform a quick switch on a native application of the mobile terminal and return to the tested application.

Still require support?
Contact support

Web services

In your end-to-end functional tests you can manage Web Services flows directly in your Agilitest/ATS automatic test scripts.

The objective is that you can control the exchanged data or even recover them to reuse them for functional purposes in your automatic tests.

Writing the Web Service call in Agilitest

To do this, simply enter the "Start channel" action with the full http link of your Web Service request:

Example here: http://webservices.oorsprong.org/websamples.countryinfo/CountryInfoService.wso?WSDL

Starting a Webservice channel as a Web channel

Executing this "Start channel" action will automatically open a specific viewer that will allow you to capture all the data you want to check and/or retrieve in this Web Service stream.

Agilitest will automatically detect whether it is SOAP or REST (in which all other types of services that are not SOAP will also be included).

This capture window will communicate all the actions available in the submitted Web Service:

WSDL: obtaining the list of available services

Writing the method addressed to this Web Service in Agilitest

The second specific Web Service action is found on the "Navigation" and REST or SOAP Webservice

Call a REST webservice action
GET function

The REST action is by default GET, but all the HTTP methods of the standard are available: Get, Post, Delete, Patch, and Put.

You can enrich the query either by the method (URL), or by the API parameters, or by the headers, or all in the same time.

 Select the method
And modify Headers and API data

You can manually switch to the SOAP type via the dedicated button:

For all Web Services you can according to your needs.

  • Send requests directly via the method (i.e. the html link in which you have filled in the desired information).
  • Use the "API Data" box to complete, complexify or clarify the query.
Example of a SOAP query with data
  • Use the "Request header" box to manage the headers if necessary.
Add a header

There are two additionnal parameters which you can use :

  • Change port: Allows you to indicate on which port you want to query the webservice.
  • Use the cache: When possible, Agilitest will not make a new request if the requested data is already in the cache.

If you don't know the body of available actions: the Wizdler plugin

If you don't know the body of the Web Service, here is a simple trick to help you analyze WSDL files and generate SOAP messages:

  1. Install the WIZDLER plugin on your web browser (Chrome for example: Link to the Plugin Wizdler here)
  2. Open your http Web Service link on the same browser
  3. Click on the dedicated Wizdler button:

       4. Click on one of the actions available on this Web Service (e. g. CapitalCity) to retrieve the body and paste it into the "API Settings" box.

         5. Do not forget to fill in the related action in the "method" of the Agilitest action

          6. You can even test the action by replacing the default data[string] and then clicking on the dedicated "Go" button and checking the result returned by the Web Service

Capture of data returned by the Web Service

Now that the "method" and the "API Settings" box of your action are filled in, Agilitest will be able to automatically execute the action in your functional flow.

You can capture the query result via Agilitest's capture mode.

Capturing the result of the query
Selection of attributes that identify the element

The "Property" action allows you to reuse the target data returned by the Web Service in your script:

And we get the value in a variable….
indicating which attribute of the element is of interest to us

The recovery of the attribute "value" in this case allows us to recover the Capital of the Country whose ISO code is FR, namely Paris.

The action went well

Note

The Check and Property recovery actions will very often be the most relevant actions in writing your end-to-end functional tests using Web Services.

Example of a SOAP script

Please find here an example of ats SOAP script: SOAP_flag_demo.ats
Right-click on the link above and select "Save link as…" to retrieve the ATS file.

You can add it to your Agilitest project to edit and/or run it.

Still require support?
Contact support
No results found.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.