Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

A test case execution on a run-time can include or skip execution of specific step or tasks as per the specified condition is satisfied.

Key Points

  • You can add If-Else block to a task and test case much like conditional structures used in programming languages, with a limitation that nested IF blocks are not supported.
  • If block has the following structure:
    • IF – ELSE IF –ELSE – ENDIF
    • You can add zero or more occurrences of ELSE-IF and zero or exactly one occurrence of ELSE. Zero or multiple occurrences of IF blocks can be added to a task.
  • It is mandatory to add expression to evaluate for IF and ELSE IF steps. You cannot save these tasks with blank expressions.
  • Expressions are much like the ones used in programming languages.
  • You can form conditions based on the status of previous step, values of environment variables/stored variables and arithmetic, logical and bitwise operators.
  • You can avoid adding a task for adding a single step to test case. A step can be directly added to a test case. It is possible to specify object, action, and parameters to a TC step just like a task step.

Adding Conditional Structures

Inserting Conditional Blocks

Qualitia users can add conditional blocks using the ELSE-IF button.  

Task Level Conditional Blocks

On the task editor screen, click the Add Conditional Block button () to select any of the following conditions:

  • IF
  • Else IF
  • Else

Adding Expression for IF Step

  • Click the Add Conditional Block button, select IF.
  • You can add Else block within an IF block. 

Forming Expression for IF /ELSE IF:

Expressions can be entered for IF and ELSE IF conditional step. User can use stored variables, environment variables as expressions.

...

Data type

Example

Valid/Invalid

Any

  1. var1=2
  2. var1=var2
  3. var1*=1
  4. var1+=2
  5. var1++
  6. var1=var2+2==10

All are invalid as assignment operator is not allowed in expression

String

  1. ""India"=="India""
  2. ""{var1}"=="{var2}""
  3. India==India
  4. {var1}=={var2}
    (var1 and Var2 are stored variables containing string values)

  1. Valid
  2. Valid
  3. Invalid
    (The string data passed not specified in quotes "" also the whole expression is not inside "")
  4. Invalid
    (Variables containing string data are not specified in quotes "" also the whole expression is not inside "")

Integer

  1. 1==1
  2. {var1}=={var2}
  3. ""1"=="1""
  4. ""{var1}"=="{var2}""
    (var1 and Var2 are stored variables containing integer values or numbers)
  1. Valid
  2. Valid
  3. Valid
  4. Valid

Float

  1. 1.254==1.345
  2. {var1}=={var2}
    (var1 and Var2 are stored variables containing Float values)
  1. Valid
  2. Valid

Boolean

  1. true==true
  2. false==false
  3. TRUE==TRUE
  4. FALSE==FALSE
  5. {var1}=={var2}
    (where var1 and var2 can have value either true or false)
  1. Valid
  2. Valid
  3. Invalid
    (Boolean values are case sensitive. Boolean values should be passed in small case).
  4. Invalid
  5. Valid

Logical operators

(var1=true , var2=false)

  1. {var1}&&{var2}==false
  2. {var1}||{var2==true
  3. !({var1}&&{var2})==true
  1. Valid
  2. Valid
  3. Valid

Arithmetic
Operators

  1. 1+1==2
  2. 1-1==0
  3. 2*2==4
  4. 8/2==4
  5. 9%2==1
  1. Valid
  2. Valid
  3. Valid
  4. Valid
  5. Valid

Relational Operators

  1. 1==1
  2. 1!=2
  3. {Var1}<{var2}
  4. {var1}>{var2}
  5. {Var1}<={var2}
  6. {var1}>={var2}
  1. Valid
  2. Valid
  3. Valid
  4. Valid
  5. Valid
  6. Valid

Bitwise Operators

(var1=60 , var2=13)

  1. ({var1}&{var2})==12
  2. ({var1}|{var2})==61
  3. {var1}&{var2}==12
  4. {var1}|{var2}==61
  5. ({var1}^{var2})==49
  6. {var1}^{var2}==49
  7. ~{var1}==-61
  8. ~~{var1}==-61
  9. ~~({var1})==-61
  10. {var1}<<2==240
  11. {var1}>>2==15
  12. {var1}>>>2==15
  1. Valid
  2. Valid
  3. Invalid
    (Outer () are required,otherwise interpretation goes wrong and it may return false)
  4. Invalid
    (Outer () are required,otherwise interpretation goes wrong and it may return false)
  5. Valid
  6. Valid
  7. Invalid
    (~ itself is a qualitia special character)
  8. Valid
    (escape character ~ is followed by complement operator ~)
  9. Valid
  10. Valid
  11. Valid
  12. Valid

Special Characters

Using Qualitia Special characters:

  1. ""a~xyz"== "a~xyz""
  2. ""a~^xyz"== "a~^xyz""
  3. ""a~{xyz"== "a~{xyz""
  4. ""a~{xyz"== "a~{xyz""

Always use escape character ~ before qualitia special characters ~,^,{,}
For any other character no escape character is required.
e.g ""as#gh%ff"==" as#gh%ff""




All are valid

Adding the Task Step on the TC Screen

You can add the task step using the Add button. After adding the task step, you can add conditional blocks with or without expressions to that step. 

Test Case Level Step (TC step) on the Test Cases Screen

In case you want to avoid adding a task for a single step, you can add TC step. You can then add object, action, and parameters to a TC step just like a task step. 

...

  • Focus on task and click the TC Step button. You can then use Up and Down buttons to move the step up or down. 

Adding A TC Step and Task Step

  • To add an independent TC step, click  the Test Case Step button ().
  • To add a step into a task, click the Task Step button ().

Storing Execution Status of TC Step

The execution status of TC step can be stored the same as the task step.

ELSE IF Blocks on the Test Cases Screen

On the Test Cases screen you can add conditional blocks to task and Test Case. The Test Case level ELSE-IF blocks can contain tasks and the contained tasks in turn can have task level ELSE-IF blocks.

Adding the ELSE-IF Blocks to Test Case

You can add the TC or Task condition using the ELSE-IF button from the Test cases screen.

...

  1. Select TC Step/Task after which you wish to add TC level conditional block.
  2. Click Add Conditional Block >TC Condition > IF.
  3. .Select IF step of block, click the TC Step button to add TC step.
  4. Select recently added TC Step:
    1. Click Add Condition Block >TC Condition >ELSE IF to add TC level ELSE IF block.
    2. Click Add Condition Block >TC Condition > ELSE to add ELSE block.
      Note: If you want to add an Else-If or Else condition, it must be added after the If condition. 

Adding Tasks in Test Case Level ELSE-IF Blocks

You can add new tasks or import tasks from the existing library of tasks inside the conditional blocks. 

...

  1. Select TC Step/Task after which you want to add TC level conditional block.
  2. Click Condition >TC Condition > IF.
  3. Select IF step of block and then click New to add new task or Import to add the existing task to the conditional block.
  4. To add Tasks to ELSE-IF or ELSE blocks, select the ELSE-IF or ELSE step of the conditional block.
  5. Do one of the following to include  a task:
    • To add a new task, click the New Task button (). 
    • To add an existing task, click the Import Task button ().

      Note: If you want to add an Else-If or Else condition, it must be added after If condition. 

Adding ELSE-IF Blocks to Task in TC

You can add the conditional blocks particularly for task. 

...

If the OpenUrl has execution status other than 0 or 1, Qualitia executes Task 4.

Qualitia's Behavior in case of Invalid Expression:

  • If the expression is invalid, for example, expression has stored variables referred but not declared, or the syntax of expression is invalid then the test case is considered to have an error and Qualitia will stop execution of test case.
  • When execution is triggered using the Dry Run button from the Develop tab and if the expression is invalid, Qualitia stops execution of test case.
  • When execution is triggered using the Run Now button from the Execute tab and if the expression is invalid, Qualitia executes next test case. If there is only one test case, execution will be stoppped. 

In all such cases, Error log in reports will explain the reason of execution failure so that users can take corrective actions.

Test Case Iteration Report for Conditional Structure

The test case iteration report that contains the IF_Else conditional statements displays associated results in a hierarchy. The condition "IF" is the parent node for Else If, Else, and End If statements. No status is shown for the conditional statements (IF-ELSE IF –ELSE and END IF) as they are constructs and not actions.

The steps in conditional block are mentioned in the report only if expression evaluates to "true". Steps of blocks whose expression evaluates to "false" are omitted from report as these steps are not executed.

Handling Special Characters In Conditional Expression

In Qualitia Automation Studio, while adding data for validating conditional expression, you can add the string values. Sometimes, these string values can contain JavaScript special characters, such as double quotes, single quotes, and backslash (",',\).

...

Info
titleImportant Note

In case you have any special characters into the variable value, Qualitia automatically handles them while using it as a conditional expression data.

For example, if you are using StoreVariable action to store some value and that value contains JavaScript special characters. Later, if you use that variable in the conditional expression, you no need to handle special characters from the value. Qualitia automatically handles them while using it as conditional expression data.

Limitations

  • Nested IF blocks are not allowed
  • Task level IF, ELSE IF or ELSE blocks can be moved up or down within the task whereas test case level IF, ELSE IF or ELSE blocks cannot be moved up or down.
  • $$_Status can be used only for step's execution status. There is no provision to store or refer Task's execution status.
  • A test case level step cannot be moved to task, or multiple test case level steps cannot be moved to new or existing tasks.

Frequently Asked Questions for Conditional Steps

Expand
titleRemove IF block in a task
  1. Select IF.
  2. Click on remove step.
  3. User is provided with the following three options:
    1. RemoveBlock: On selecting this option, all steps (including intermediate ELSE IF / ELSE) will be removed from Task.
    2. RemoveCondition: On selecting this option, only conditional structure of block is removed, all steps are retained.
    3. Cancel: Exits the popup or return.

...

Expand
titleRemove conditional structure unsafe-only and retain steps
  1. Select the condition you want to remove (IF/ELSE IF/ELSE).
  2. Select option “RemoveCondition”.

...