Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Automation Frame works Instruction Sheet
1. XtremeTesting ThoughtWorks
src
src test
main
java
java
search
login
orders
testresources
pageobjects
steps
util
Instructions
# Create a project
Create a maven project with below dependencies
<dependencies>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.9.13.6</version>
</dependency>
<dependency>
<groupId>com.beust</groupId>
<artifactId>jcommander</artifactId>
<version>1.48</version>
</dependency>
</dependencies>
# Create Below Folder
structure
# Write TestNG Tests
Login Tests
@Test
public void
verifyValidLogintoSpree()
2. XtremeTesting ThoughtWorks
{
// add code
}
@Test
public void verifyInvalidLogintoSpree()
{
//add code
}
# Create testng xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Regression">
<test name="regression">
<classes>
<class name="login.LoginTest"/>
<class name="search.SearchProductsTest" />
</classes>
</test>
</suite>
# ExecuteTests
java -cp <tests classes path>:<test ng jar path>:<jcommander jar path>
org.testng.TestNG testng.xml
#Tag tests and Set Priority
Add it to xml
<groups>
<run>
<include name="regression" />
<exclude name="sanity" />
</run>
</groups>
3. XtremeTesting ThoughtWorks
Add it to tests
@Test(groups = {"smoke"}, priority = 2)
# Set Before suite and After Suite
@BeforeSuite
public void verifyBeforeSuite()
{
DriverManager manager = new DriverManager();
}
# Create Page Objects
public class HomePage {
@FindBy(how= How.LINK_TEXT, using = "MY ACCOUNT")
WebElement my_account;
@FindBy(how= How.ID, using = "link-to-login")
WebElement login_link;
@FindBy(how= How.LINK_TEXT, using = "LOGOUT")
WebElement logout;
public void clickOnLoginLink()
{
login_link.click();}
public String getMyAccountText()
{
return my_account.getText();}
public void clickLogOut() {
logout.click(); }
}
# Separate out Tests , Objects , and Implementation Flows
Steps
public String InvalidLogin(String userName, String password) {
HomePage homePage = PageFactory.initElements(DriverManager.driver,
HomePage.class);
homePage.clickOnLoginLink();
LoginPage loginPage = PageFactory.initElements(DriverManager.driver,
LoginPage.class);
loginPage.enterUsername(userName);
loginPage.enterPassword(password);
4. XtremeTesting ThoughtWorks
loginPage.clickSubmit();
return loginPage.getInvalidLoginText();}
Test
@Test
public void verifyValidLogintoSpree()
{
LoginSteps loginSteps = new LoginSteps();
String expected_message = loginSteps.Login("xt@xt.xom", "xtxtxt");
Assert.assertEquals(expected_message, "MY ACCOUNT");
}
# Parameterize Tests
Add it to xml
<parameter name="userName" value="xt@xt.xom"/>
<parameter name="password" value="xtxtxt" />
Add it to tests
@Test
@Parameters({"userName", "password"})
public void verifyValidLogintoSpree(String userName, String password)
# Data Providers
@DataProvider(name = "login")
public static Object[][] loginData() {
return new Object[][] {{"xt@xt.xom", "xtxtxt"}, {"xt@xt.xom", "xtxtxt"}};}
@Test (dataProvider = "login")
public void verifyValidLogintoSpreeWithDataProvider(String userName, String password)