Building the test framework:
TestNG annotations
Test automation basics with Selenium & Java
By:
Evgeny Novikov
Email:
xevgnov@[Link]
Mostly usable TestNG annotations
● @Test
● Before: @BeforeSuite, @BeforeTest, @BeforeClass,
@BeforeMethod
● After: @AfterSuite, @AfterTest, @AfterClass,
@AfterMethod
● @DataProvider
By:
Evgeny Novikov
Email:
xevgnov@[Link]
Move repetitive code to @Before and @After
public class SearchTest {
private WebDriver driver;
@BeforeClass
public void setUp() {
File file = new File("src/main/resources/[Link]");
System. setProperty("[Link]",
[Link]());
driver = new ChromeDriver();
[Link]().to( "[Link]
}
@AfterClass
public void tearDown() { By:
[Link](); Evgeny Novikov
} Email:
xevgnov@[Link]
Now test is short and clear
@Test
public void openGoogleOrgContainsFeelingLuckyButtonTest() {
WebElement feelingLuckyButton =
[Link](By. name("btnI"));
assertEquals([Link]( "value"), "I'm
Feeling Lucky", "Wrong text has been displayed!");
}
By:
Evgeny Novikov
Email:
xevgnov@[Link]
Let’s improve our tests even more
1) Move @Before and @After annotations to abstract class
BaseTest
2) Extend SearchTest with BaseTest class
By:
Evgeny Novikov
Email:
xevgnov@[Link]
BaseTest - includes pre and post actions
public abstract class BaseTest {
protected WebDriver driver;
@BeforeClass
public void setUp() {
File file = new File("src/main/resources/[Link]");
[Link]("[Link]", [Link]());
driver = new ChromeDriver();
[Link]().to("[Link]
}
@AfterClass
public void tearDown() {
[Link](); By:
} Evgeny Novikov
} Email:
xevgnov@[Link]
SearchTest (steps, results) inherits BaseTest
public class SearchTest extends BaseTest{
@Test
public void openGoogleOrgContainsFeelingLuckyButtonTest() {
WebElement feelingLuckyButton = [Link]([Link]("btnI"));
assertEquals([Link]("value"), "I'm Feeling
Lucky", "Wrong text has been displayed!");
}
By:
Evgeny Novikov
Email:
xevgnov@[Link]
Update your tests with
following changes:
1) maximize browser window
Exercise when new driver instance is
created
2) modify setUp() method to be
Modifying tests framework
able to do quick switch between
Internet Explorer Driver and
Chrome Driver
By:
Evgeny Novikov
Email:
xevgnov@[Link]