12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- ***********
- NestedLoops
- ***********
- While working on TestCases we might need to repeat some TestSteps with a set of data and this data might be too dynamic
- or too much to use multiple fields (Quantity1, Quantity2, Quantity...).
- To provide a solution for this issue we have ``REPEAT`` & ``REPEAT-DONE`` activity tags, every activity between these
- two tags will be repeated as many times as there is data in the data source.
- And to counter big & complex data structure we have ``RLP_`` prefix which will take records written in another
- sheet, hence it will be much easier to enter and maintain data in separate sheet rather than within one single tab.
- RLP
- ===
- ``RLP_`` is a prefix which is used in the cell of a data sheet. Its structure is ``RLP_(sheetName, lineReference=Number)`` here
- sheetName will hold the name of sheet where main data is stored. LineRefernce holds the header name of the column which
- contains Reference Number in target sheet, with the help of this reference number a list of data matching the same reference
- number is made, which is then looped inside ``REPEAT`` activity. We can even use ``RLP_`` statement in a sheet previously
- targeted by an other ``RLP_`` prefix. Hence, we can create nested data and the data called by another ``RLP_`` data
- will become its child and the caller become its parent.
- .. image:: RLP_Nested_Loops.png
- .. image:: NestedLoopsSheet.png
- Here in image_1 inside ``RLP_`` LoopDataExampleTab is the sheetName of the target sheet containing main data and
- line_reference is the header which we are looking inside targetSheet, you can also see the header in image_2 which is of
- targetSheet. Then the value of header is matched.
- Like in first ``RLP_`` data value of line_reference is 0, which means
- it will create a list of data matching same in targetSheet, in this case their are 2 matching data so repeat statement
- will execute one after another.
- Repeat
- ======
- ``REPEAT`` tag is used in testrun file. It must be written inside "Activity" header and along with it, reference to the
- node referring to the data must be written inside ``Value`` tag. Format of node must be ``$(parent)`` (we have to replace
- parent with the header name where rlp data is stored).
- In *image_1* we can see "textarea2" is the header containing main
- data, so it will look like ``($textarea2)``. Now, if need to use child node we can use ``$(parent.child)`` here child is
- the name of header of the sheet which is replaced by ``RLP_`` prefix.
- In *image_2* we can see their is "input_text" header
- the sheet in image_2 replaces ``RLP_`` data of image_1 so it will look like ``$(textarea2.input_text)``. This node will
- be replaced by the value inside input_text and a loop will start on all the matching line_reference.
- And lastly we have a option to choose number of times loop is run. When we have a large number of data and we don't need
- to run loop on all we can input number in value2 tab, then the loop will be run on the same number of *randomly selected data*.
- If we want to run loop on all data we can simply leave the value2 tab empty or put 0.
- Also remember we need to use
- ``REPEAT-DONE`` at the end of the loop (i.e. from where we need to run again from the starting of the loop).
- Please see below image for further reference.
- .. image:: RepeatTag.png
|