Data Driven testing can be achieved through 'Data Driven through Test Template' or Read data from Excel or csv.
'Data Driven through Test Template'
In this we will create a user defined keyword which is nothing but the function or source code which we want to execute for multiple times.
that we declare as 'Test Template' in Settings section.
when we give the TestCase name with arguments , it will execute Test Template each time.
here the sample code
*** Settings ***
Documentation This Test Suite Deals with Data Driven Testing using Test Template Method
Test Teardown Close All Browsers
Test Template Validate Login with Differnt Valid Credentials
*** Variables ***
${URL} http://ururl
${Browser} chrome
${Title} HomePage
${delay} 5s
*** Test Cases *** USERNAME PASSWORD
Test User user1 user1
Admin User admin admin
*** Keywords ***
Validate Login with Differnt Valid Credentials
[Arguments] ${Uname} ${Pwd}
Open the Browser and enter the URL ${URL} ${Browser}
Enter the User Name ${Uname}
Enter the Password ${Pwd}
Click on Submit button
Verify HomePage displayed ${Title}
Open the Browser and enter the URL
[Arguments] ${URL} ${Browser}
Open Browser ${URL} ${Browser}
Enter the User Name
[Arguments] ${UserName}
Sleep ${delay}
Input Text id=username ${UserName}
Enter the Password
[Arguments] ${Password}
Input Text id=password ${Password}
Click on Submit button
Click Button css=.btn.btn-primary
Verify HomePage displayed
[Arguments] ${Title}
Sleep ${delay}
Title Should Be ${Title}
'Data driven by read from Excel'
Read the values from Excel sheet and run multiple times,
here the sample code
*** Settings ***
Documentation CLM Registration Test Case
Test Teardown Close All Browsers
Library Selenium2Library
Library Collections
Library ExcelLibrary
Library String
*** Variables ***
${delay} 2s
${excelName} LoginTestData.xls
${rowCount} ${EMPTY}
${cellCount} ${EMPTY}
${URL} http://Ur test Test URL
${Browser} chrome
*** Test Cases ***
ReadFromExcelSheet
Open Excel Sheet ${excelName}
@{sheetNames} Get Sheet Names
${sheetName} Set Variable @{sheetNames}[0]
${rowCount} Get Row Count ${sheetName}
${cellCount} Get Column Count ${sheetName}
#for loop to read all the rows in excel
: FOR ${rindex} IN RANGE 1 ${rowCount}
\ @{rowValues} Create List
\ @{rowValues} Get Values ${sheetName} ${rindex} ${cellCount}
\ Log to console row values are for index ${rindex} : @{rowValues}
\ Sleep ${delay}
\ Open Browser ${url} ${Browser}
\ Enter User Name @{rowValues}[0]
\ Enter Password @{rowValues}[1]
\ Click on Submit Button
*** Keywords ***
Open Excel Sheet
[Arguments] ${excelName}
Open Excel ${excelName} useTempDir=False
Get Values
[Arguments] ${sName} ${row} ${cCount}
Log to console user is in Get Values function
@{rValues} Create List
: FOR ${cindex} IN RANGE 0 ${cCount}
\ Log to console get the data from ${sName}[${cindex}][${row}]
\ ${cellValue} Read Cell Data By Coordinates ${sName} ${cindex} ${row}
\ Insert Into List ${rValues} ${cindex} ${cellValue}
[Return] @{rValues}
Open The Browser
[Arguments] ${url} ${Browser}
Open Browser ${url} ${Browser}
Enter User Name
[Arguments] username
Input Text id=username username
Enter Password
[Arguments] password
Input Password id=password password
Click on Submit Button
Click Button css=.btn.btn-primary