Another feature file with more test data
Feature: Free CRM Create Contacts Scenario Outline: Free CRM Login Test Scenario Given user is already on Login Page When title of login page is Free CRM Then user enters "<username>" and "<password>" Then user clicks on login button Then user is on home page Then user moves to new contact page Then user enters contact details "<firstname>" and "<lastname>" and "<position>" Then close the browser Examples: | username | password | firstname | lastname | position | | naveenk | test@123 | ucFirst1 | ucLast1 | manager | | naveenk | test@123 | ucFirst2 | ucLast2 | qa |
Definitions implementation
// adding for the contacts.feature sample @Then("^user moves to new contact page$") public void user_moves_to_new_contact_page(){ //move to frame ( view frame source ) // wasn't working // driver.switchTo().frame("manpanel"); el = driver.findElement(By.xpath("//frame[@name='mainpanel']")); driver.switchTo().frame(el); //mouse over the menu item Actions action = new Actions(driver); //new action // findElement.... build action to MOVE to element.... action.moveToElement(driver.findElement(By.xpath("//a[contains(.,'Contacts')]"))).build().perform(); // wasn't working // driver.findElement(By.xpath("//a[contains(.,'New Contact']")).click(); // THEN click action.moveToElement(driver.findElement(By.xpath("//a[contains(.,'New Contact')]"))).build().perform(); el = driver.findElement(By.xpath("//a[contains(.,'New Contact')]")); el.click(); } @Then("^user enters contact details \"([^\"]*)\" and \"([^\"]*)\" and \"([^\"]*)\"$") public void user_enters_contacts_details(String firstname, String lastname, String position){ driver.findElement(By.id("first_name")).sendKeys(firstname); driver.findElement(By.id("surname")).sendKeys(lastname); driver.findElement(By.id("company_position")).sendKeys(position); driver.findElement(By.xpath("//input[@type='submit' and @value='Save']")).click(); }
TestRunner simply updated to the contacts.feature file(for demo)
@RunWith(Cucumber.class) //add Junit4+ @CucumberOptions( features = "src/main/java/Features/contacts.feature" ,glue= {"stepDefinitions"} ,format= {"pretty","html:test-output", "json:json-output/cucumber.json","junit:junit-xml-output/cucumber.xml"} ,monochrome = true ,strict = true //true = fail test suite if ANY test step not defined ,dryRun = false //true = check feature-definition-runner setup is valid... NO test logic executed )
Output
Console
Feature: Free CRM Create Contacts Scenario Outline: Free CRM Login Test Scenario # src/main/java/Features/contacts.feature:3 Given user is already on Login Page When title of login page is Free CRM Then user enters "<username>" and "<password>" Then user clicks on login button Then user is on home page Then user moves to new contact page Then user enters contact details "<firstname>" and "<lastname>" and "<position>" Then close the browser Examples: Starting ChromeDriver 2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9) on port 10646 Only local connections are allowed. Jun 12, 2018 5:44:18 AM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: OSS Free CRM software in the cloud powers sales and customer service HomePage title is :CRMPRO Scenario Outline: Free CRM Login Test Scenario # src/main/java/Features/contacts.feature:17 Given user is already on Login Page # LoginStepDefinition.user_is_already_on_Login_Page() When title of login page is Free CRM # LoginStepDefinition.title_of_login_page_is_Free_CRM() Then user enters "naveenk" and "test@123" # LoginStepDefinition.user_enters_username_and_password(String,String) Then user clicks on login button # LoginStepDefinition.user_clicks_on_login_button() Then user is on home page # LoginStepDefinition.user_is_on_home_page() Then user moves to new contact page # LoginStepDefinition.user_moves_to_new_contact_page() Then user enters contact details "ucFirst1" and "ucLast1" and "manager" # LoginStepDefinition.user_enters_contacts_details(String,String,String) Then close the browser # LoginStepDefinition.close_the_browser() Starting ChromeDriver 2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9) on port 34648 Only local connections are allowed. Jun 12, 2018 5:44:28 AM org.openqa.selenium.remote.ProtocolHandshake createSession INFO: Detected dialect: OSS Free CRM software in the cloud powers sales and customer service HomePage title is :CRMPRO Scenario Outline: Free CRM Login Test Scenario # src/main/java/Features/contacts.feature:18 Given user is already on Login Page # LoginStepDefinition.user_is_already_on_Login_Page() When title of login page is Free CRM # LoginStepDefinition.title_of_login_page_is_Free_CRM() Then user enters "naveenk" and "test@123" # LoginStepDefinition.user_enters_username_and_password(String,String) Then user clicks on login button # LoginStepDefinition.user_clicks_on_login_button() Then user is on home page # LoginStepDefinition.user_is_on_home_page() Then user moves to new contact page # LoginStepDefinition.user_moves_to_new_contact_page() Then user enters contact details "ucFirst2" and "ucLast2" and "qa" # LoginStepDefinition.user_enters_contacts_details(String,String,String) Then close the browser # LoginStepDefinition.close_the_browser() 2 Scenarios (2 passed) 16 Steps (16 passed) 0m20.910s
Junit
Feature: Free CRM Create Contacts
Scenario Outline: Free CRM Login Test Scenario
- Given user is already on Login Page
- When title of login page is Free CRM
- Then user enters "<username>" and "<password>"
- Then user clicks on login button
- Then user is on home page
- Then user moves to new contact page
- Then user enters contact details "<firstname>" and "<lastname>" and "<position>"
- Then close the browser
Examples:
username | password | firstname | lastname | position |
naveenk | test@123 | ucFirst1 | ucLast1 | manager |
naveenk | test@123 | ucFirst2 | ucLast2 | qa |
Scenario Outline: Free CRM Login Test Scenario
- Given user is already on Login Page
- When title of login page is Free CRM
- Then user enters "naveenk" and "test@123"
- Then user clicks on login button
- Then user is on home page
- Then user moves to new contact page
- Then user enters contact details "ucFirst1" and "ucLast1" and "manager"
- Then close the browser
Scenario Outline: Free CRM Login Test Scenario
- Given user is already on Login Page
- When title of login page is Free CRM
- Then user enters "naveenk" and "test@123"
- Then user clicks on login button
- Then user is on home page
- Then user moves to new contact page
- Then user enters contact details "ucFirst2" and "ucLast2" and "qa"
- Then close the browser
- Log in to post comments
Tags