Sunday, 7 October 2012

L3 - Run multiple cases using Datatable

Test case to run multiple cases on Calculator using DATA TABLE

Step 1. Go to Menu View -> Data Table
Step 2. Create data table in Local data table Action1 as shown below :

Start the test as written below:
' Start the test    
Window("Calculator").Activate
icurrentrow=1
' Set datasheet as LOCAL datasheet    
DataTable.GetSheet dtlocalsheet   
' Set row as first row    
DataTable.SetCurrentRow icurrentrow  
Window("Calculator").WinButton("C").Click

Step 3. Now we have to use for loop to cover all the 5 rows.

(TIP: Make sure that in Keyword view -> Actions (Right Click) -> Actions Call Properties -> Datatable Iterations is set to : One iteration only.)
To cover each column we have to use this code

DataTable.value("input1",dtlocalsheet)

Here input1 is field name and same way we have to use different field.
We have to write below code:

For i=1 to 5
Window("Calculator").Activate
' Reading the values from datatable    
Window("Calculator").WinButton(DataTable.value("input1",dtlocalsheet)).Click
Window("Calculator").WinButton(DataTable.value("operator",dtlocalsheet)).Click
Window("Calculator").WinButton(DataTable.value("input2",dtlocalsheet)).Click
Window("Calculator").WinButton("=").Click
' Read the results    
strActualResult = Window("Calculator").WinEdit("Edit").GetROProperty("text")
strExpectedResult=DataTable.value("result",dtlocalsheet)
strExpectedResult=strExpectedResult & ". "
' Compare the result    
If  strActualResult  = strExpectedResult Then
' Post the result   
reporter.ReportEvent micPass,"Expetected result is " & strExpectedResult & " and my actual result is " & strActualResult, "Pass"
else
reporter.ReportEvent micFail,"displaying data","Expected is ="& DataTable.value("result",dtlocalsheet)& "and my actual result is " & strActualResult
End If
Window("Calculator").WinButton("C").Click
' Set next row as current row    
icurrentrow = icurrentrow +1
DataTable.SetCurrentRow icurrentrow
' Moving for loop to next    
Next


****************Complete Code of test as below****************

Window("Calculator").Activate
icurrentrow=1
DataTable.GetSheet dtlocalsheet   
DataTable.SetCurrentRow icurrentrow  
Window("Calculator").WinButton("C").Click
DataTable.value("input1",dtlocalsheet)
For i=1 to 5
Window("Calculator").Activate
Window("Calculator").WinButton(DataTable.value("input1",dtlocalsheet)).Click
Window("Calculator").WinButton(DataTable.value("operator",dtlocalsheet)).Click
Window("Calculator").WinButton(DataTable.value("input2",dtlocalsheet)).Click
Window("Calculator").WinButton("=").Click
strActualResult = Window("Calculator").WinEdit("Edit").GetROProperty("text")
strExpectedResult=DataTable.value("result",dtlocalsheet)
strExpectedResult=strExpectedResult & ". "
If  strActualResult  = strExpectedResult Then
reporter.ReportEvent micPass,"Expetected result is " & strExpectedResult & " and my actual result is " & strActualResult, "Pass"
else
reporter.ReportEvent micFail,"displaying data","Expected is ="& DataTable.value("result",dtlocalsheet)& "and my actual result is " & strActualResult
End If
Window("Calculator").WinButton("C").Click
icurrentrow = icurrentrow +1
DataTable.SetCurrentRow icurrentrow
Next