AutonomIQ

Release 5.1

Data Driven for AIQ        2

Data Driven Sample Test Case        3

Report which gives clear understanding of start and end iteration for each block        4

Nested Blocks        4

Decision Making Statement for Blocks/Flows        6

If statement        6

If-else statements        7

Nested if statements        8

Else-if (elif)        10

Data Driven Parsing when condition satisfied        11

Schedule in Different Browsers        12

Ability to add multiple emails to a suite for receiving consolidated reports        12

Hide Password in Variable and Data        13

UI Changes        15

New Dashboard        15

New Project and other Pages        16

Set Variable Value Formatting and access Variable in the list        17

Smart Retry Timeout        18

Smart Retry Timeout (Configurable)        19

Network Call Timeout        20

New Instruction Support        21

Add more synonyms for Open website        21

Switch to Alert box and save the Alert        21

Set screen size to Standard Resolution        22

Command to click at (x,y)        24

Below are the sample instructions that are supported        24

Bug Fixes        25

Basic  _py, _js instruction works now        25

Switch with title instruction        26

Take Screenshot        27

Same model size in upload        28

Dont discover when if condition don't satisfy        29

Table header out of scroll        29

Upload file with Artifact extension        30

The Compound statement works after Add/Edit the test step        30

Performance Improvement        31

Known Bugs        31

Enhancement        31

Version Details        33

Following are the version changes in the version 5.1        33

Following are the version changes in the version 5.0        33

Optional Arguments        34

Optional arguments can be provided to a test step as described below.        34

Ignore Alert        34

Dynamic Xpath        34

Dealing with disabled elements (visually grayed out)        35

Using Actions chain click        35

Provide spinner/progress bar information        35

Data Driven for AIQ

In Data-driven test, input data can be stored in data sources like xls, csv and the test case which can execute tests for all test data in the xls, csv. I.e - run through multiple data for input in a for-each loop

Earlier this feature was supported only by selenium mode now it is also supported by AIQ mode execution

Note: While generating, only the first loop is used. During execution, all the data will be used and looped through.

Data Driven Sample Test Case

Report which gives clear understanding of start and end iteration for each block

Nested Blocks

Nested blocks are blocks within blocks. You can have a single level of nesting, or you can even have multiple levels of nesting blocks

Flows inside a block is also supported

Here’s a sample test case for nested flows

The corresponding flows - loginbasic, leadbasic and logoutbasic have to be created under the flows tab as per user guide.

Sample report format for nested flows

Main Block used to repeat a given section of block/flow a certain number of times or until a particular condition is met.Iteration count of Main Block is shown in the increasing order in the report eg: Start Iteration1 of block1, Start Iteration2 of block1 where its respective sub block/flow will always start from count 1

Note: We request user to create test case in below order

Run ${block1}

Begin block block1

instructions

End block

Decision Making Statement for Blocks/Flows

Note: Decision making statement (i.e) if and the else part will work only for block and flow statement

If statement

        if statement is the most simple decision making statement. It is used to decide whether a certain statement or block of statements will be executed or not i.e if a certain condition is true then a block of statements is executed otherwise not.

Syntax

if(condition), run ${block}

Begin block blockname

   // Statements to execute if

   // condition is true

End block

The condition can be used with flow as below, we can call the flow or can create a block

if(condition), run ${flow}

   // Statements to execute if

   // condition is true

Example:

If the given xpath is visible then users will be created.

If-else statements

 If-else statement,  if a condition is true a block of statements will be executed and if the condition is false else part will be executed

Syntax

if (condition) run ${block}

Begin block block name

    // Executes this block if

    // condition is true

End Block

Else, run ${else_part}

Begin block else_part

    // Executes this block if

    // condition is false

End Block


Example:

In this example the if condition is not satisfied so else part is executed

Nested if statements

When an if else statement is present inside the body of another “if” or “else” then this is called nested if else.

Syntax:

if (condition1), run ${block1}

Begin block block1

    //Nested if else inside the body of "if"

    if(condition2), run ${block2}

    Begin block block2

       //Statements inside the body of nested "if"

    End Block

    Else, ${else_part}  

       // else_part is the flow here  

       //Statements inside the body of nested "else"   

Else, ${else_mainblock}

    //Statements inside the body of "else"

Example:


Else-if (elif)

The elif statement is useful when you need to check multiple conditions, nesting of if-else blocks can be avoided using else..if statement.

Note: instead of else if we need to mentioned as elif

Syntax:

if (condition1) run ${block1}

   //These statements would execute if the condition1 is true

elif(condition2) run ${block2}

   //These statements would execute if the condition2 is true and condition1 is false

End block

.

.

Else, run ${else_block}  

   //These statements would execute if all the conditions return false.

End block

End block

Example:                          

In this example if condition is not satisfied so the block login1 is not executed, then the control moves to elif here the condition is satisfied and the block login2  is executed , when at least one condition is passed the else part will be skipped

Data Driven Parsing when condition satisfied

Data will be parsed when condition is satisfied

DataFile

Above testcase run${block1} for all rows will iterate through all rows in the data file. When condition matches for the current row that is running now, only that if block will get executed, Subsequent elif/else wont get executed, likewise if the condition did not match for other rows that if wont get executed.


Schedule in Different Browsers

While scheduling a suite user have option to select platform and browser details so that the scheduled suite will execute in the respective platform, browser.

Ability to add multiple emails to a suite for receiving consolidated reports

User can now add multiple email to a suite for receiving consolidated report after the suite execution. Enter valid email and by press tab,comma or enter key multiple emails can be added.

Hide Password in Variable and Data

Password given in the variable and in data will be hidden. That is sensitive data are hidden, only by downloading the variable/data the password details can be seen.

Note: we now hide only value for statement that have word “password”. In the future we will apply this for other common sensitive words "pass", "pwd", "user", "userid", "login", "username", "uid" that are in common.


UI Changes

New Dashboard

Dashboard allows us to check Statistical data for Week, Month and Year with the new UI graphical user interface.


New Project and other Pages

Modal dialog are redesigned and improved over all application.


Set Variable Value Formatting and access Variable in the list

We can store variable as a list and fetch based on index starting as 1

Smart Retry Timeout

 

Enable Smart Retry from Update Project page

When the project is in the smart retry mode, and suppose test steps fails at step 4, smart retry button will be visible on step 4, and if user edited/added in between

eg: at step 3.1 now click on smart retry icon. the step start generating from 3.1

Smart Retry Timeout (Configurable)

We have a variable called "smart_retry_timeout" we can set the number of minutes for smart retry.. Default value will be 2 minutes, but if user changes variable, it can be whatever the number of minutes the user wants.

We can specify a value in seconds, here 300 secs will make smart retry button visible for 5 min so user get enough time to debug the error thrown step

Network Call Timeout

Network call timeout feature will wait for network API calls to get over. This is to ensure that page has loaded properly. By default we have Selenium waits but sometimes it does not give reliable results so using network calls feature we wait for request calls to get over and ensure that page loading has been completed. To enable network call feature, we need to set a variable named ${network_call_timeout} in the variables tab and assign some time (in seconds).

New Instruction Support

Add more synonyms for Open website

Switch to Alert box and save the Alert

Since few releases we have instructions

switch to alert box and save message as alert_set1

switch to alert and click on ok

Now we also support instruction

switch to alert box and save message as alert_set2 and click OK

Set screen size to Standard Resolution

User can set the screen to standard resolution with following instructions


Command to click at (x,y)

We can now give XY coordinate on any  HTML node and ask system to click at that position. It uses the syntax _xy{ }

Below are the sample instructions that are supported  

Click on _xy{20, 30} of _css{#some_html_node_id}

Hover on _xy{20, 30} of _xpath{//img[@id='some_html_node_id']}

Double Click on _xy{20, 30} of "Photo of Eiffel Tower”

   

Bug Fixes                              

Basic  _py, _js instruction works now

Switch with title instruction

We can now switch to a window by providing its title.                                    

switch to window with title “title1”

Take Screenshot

Statements “take screenshot” and “capture screenshots” works now

Same model size in upload

Before this model size was not even when clicking Next


Dont discover when if condition don't satisfy

When the if condition won't satisfy, it won't discover the next instruction .

ex. For instruction if “login” is on the page, enter username  if login is not there , we won't discover enterable username at all. And system will simply just move to next instruction

Table header out of scroll

Now header will stay when the list is scrolled

Upload file with Artifact extension

 Earlier below instruction i.e artifact for upload file name is allowed without giving file name extension

upload file to "upfile"

ArtifactForUploadFile

  Now the same is supported only by giving file name extension refer below

upload file to "upfile"

ArtifactForUploadFile.xls

If we allow filenames without extensions, and if multiple files of the same name but different extensions are uploaded, there’s no way for AutonomIQ’s script generation engine to identify the right file to be used.

The Compound statement works after Add/Edit the test step

The Compound statement creation during Test Step Add/Edit when separated with "." NLP break's down the test steps accordingly

Performance Improvement

We have reduced the message size to improve performance and fix message passing for huge script, Check whether content first page is updated

Known Bugs

  1. When bulk uploading test cases, the script generation for uploaded tc’s is not supposed to start automatically. However one of the test cases will display the status as In Progress, although the script is not generating.
  2. The alert box/pop-up won't be captured in the screenshot if it is present in the page/application at the current step.

Enhancement

  1. Provide support for instruction “set screen size 600* 600”. Now the same works when we give “set screen size - 600* 600”


Version Details

Following are the version changes in the version 5.1

Mozilla Firefox 62.0.3

Geckodriver 0.25.0

Google Chrome 75.0.3770.80

ChromeDriver 75.0.3770.90

Selenium 3.12.0

Following are the version changes in the version 5.0

Mozilla Firefox 62.0.3

Geckodriver 0.20.1

Google Chrome 75.0.3770.80

ChromeDriver 75.0.3770.90

Selenium 3.8.0


Optional Arguments         

Optional arguments can be provided to a test step as described below.

Ignore Alert

        

By default, AutonomIQ will check if a browser alert is present on the screen before interacting with any element on the screen. If an unhandled alert is present (alerts can be handled by – switch to alert and click on OK/Cancel), it’ll purposely fail the test step with an error message stating that the alert is unhandled. If the user doesn’t want for the test step to fail, they can use the ignoreAlert option as shown below                                

Click on “login” button --ignoreAlert

                  

Dynamic Xpath                 

By default, AutonomIQ caches xpaths for every test step so that subsequent script generations will be faster. However, if the user doesn’t want to use the cached xpath for a certain step, they can provide the dynamicXpath option as shown below

Click on ${order_id} --dynamicXpath

Note: If a certain xpath is not valid due to it being dynamic or an application change, it will be auto-healed which guarantees that the plain English step will not fail due to invalid xpaths.

                 

Dealing with disabled elements (visually grayed out)                 

By default, AutonomIQ will only interact with elements that are enabled. If the user wants to interact with a disabled element, they can use the Force option as shown below

Force click on “login”                                                                                   where login button is grayed out.

                 

Using Actions chain click                 

By default, AutonomIQ uses selenium click and if selenium click fails, it’ll switch to javascript click. However, if the user wants to specifically use action-chain click, they can provide it as shown below

Click on “login--moveAndClick

Provide spinner/progress bar information                 

If the application under test has progress bars/spinners as a part of the UI design, AutonomIQ provides the capability for users to specify the spinner information as a variable as shown below under “variables” tab. Once this information is provided, AutonomIQ will dynamically wait until the progress bar/spinner disappears before proceeding with the next step.

Variable name : spinner_xpath

Variable value : xpath_of_the_spinner