项目作者: wisnuwm

项目描述 :
Automation testing web tokopedia using cucumber selenium java
高级语言: HTML
项目地址: git://github.com/wisnuwm/automation-bdd-tokped.git
创建时间: 2020-12-26T13:10:31Z
项目社区:https://github.com/wisnuwm/automation-bdd-tokped

开源协议:

下载


automation-bdd-tokped

Automation Web Testing using Selenium Java,

BDD Testing using Cucumber Selenium Java

This project is for my portofolio
-
Hi:wave:, My name is Wisnu Munawar,
I Love outdoor activity like hiking, camping etc:sunrise_over_mountains:,
I studied informatics engineering at Indraprasta PGRI University:computer:

My LinkedIn : Click Here

My resume :
Click Here

Guidance

  1. Create Maven project Eclipse



  1. add dependencies at pom.xml
    ```

UTF-8
1.8
1.8
  1. <dependencies>
  2. <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java -->
  3. <dependency>
  4. <groupId>io.cucumber</groupId>
  5. <artifactId>cucumber-java</artifactId>
  6. <version>6.9.0</version>
  7. </dependency>
  8. <!-- https://mvnrepository.com/artifact/junit/junit -->
  9. <dependency>
  10. <groupId>junit</groupId>
  11. <artifactId>junit</artifactId>
  12. <version>4.13.1</version>
  13. <scope>test</scope>
  14. </dependency>
  15. <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
  16. <dependency>
  17. <groupId>io.cucumber</groupId>
  18. <artifactId>cucumber-junit</artifactId>
  19. <version>6.9.0</version>
  20. <scope>test</scope>
  21. </dependency>
  22. <!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
  23. <dependency>
  24. <groupId>org.seleniumhq.selenium</groupId>
  25. <artifactId>selenium-java</artifactId>
  26. <version>3.141.59</version>
  27. </dependency>
  28. <!-- https://mvnrepository.com/artifact/net.masterthought/cucumber-reporting -->
  29. <dependency>
  30. <groupId>net.masterthought</groupId>
  31. <artifactId>cucumber-reporting</artifactId>
  32. <version>5.4.0</version>
  33. </dependency>
  34. </dependencies>
  35. <build>
  36. <plugins>
  37. <plugin>
  38. <groupId>org.apache.maven.plugins</groupId>
  39. <artifactId>maven-surefire-plugin</artifactId>
  40. <version>2.22.0</version>
  41. <configuration>
  42. <testFailureIgnore>true</testFailureIgnore>
  43. </configuration>
  44. </plugin>
  45. <plugin>
  46. <groupId>net.masterthought</groupId>
  47. <artifactId>maven-cucumber-reporting</artifactId>
  48. <version>2.8.0</version>
  49. <executions>
  50. <execution>
  51. <id>execution</id>
  52. <phase>verify</phase>
  53. <goals>
  54. <goal>generate</goal>
  55. </goals>
  56. <configuration>
  57. <projectName>BDDTokped</projectName>
  58. <outputDirectory>${project.build.directory}/cucumber-report-html</outputDirectory>
  59. <cucumberOutput>${project.build.directory}/cucumber.json</cucumberOutput>
  60. </configuration>
  61. </execution>
  62. </executions>
  63. </plugin>
  64. </plugins>
  65. </build>
  1. 3. Create folder drivers at src/test/resources and Add chromedriver.exe to src/test/resources/drivers
  2. <br><img src="https://i.imgur.com/CQ3QaDA.jpg" width="500"> </br>
  3. 4. Create folder Features at src/test/resources
  4. <br><img src="https://i.imgur.com/i9lwtPN.jpg" width="500"> </br>
  5. 5. Create file login-kaskus.feature
  6. <img src="https://i.imgur.com/UTcR4rQ.jpg" width="500">
  7. <img src="https://i.imgur.com/SlvYyrm.jpg" width="500">
  8. 6. add code kaskus-login.feature

Feature: Feature test tokopedia login page
User want to login successfully

Scenario: Validate tokopedia login is working
Given User open the browser
And User on tokopedia login page
When User enter valid email or phone number
And Click Selanjutnya button
And User enter valid password
And Click Login button
Then User navigated to verify with phone number or email

  1. 7. Right click and Run as Cucumber feature
  2. <br><img src="https://i.imgur.com/oUOzQlV.jpg" width="500"></br>
  3. 8. Create folder StepDef at src/test/java and create java class BDD_Login_Tokped.java

package StepDefinition;

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

import io.cucumber.java.en.*;

public class BDD_Login_Tokped {

  1. WebDriver driver=null;
  2. @Given("User open the browser")
  3. public void user_open_the_browser() {
  4. System.out.println("Steps - User open the browser");
  5. //disable notif browser
  6. ChromeOptions opt = new ChromeOptions();
  7. opt.addArguments("--disable-notifications");
  8. //chromedriver setup
  9. System.setProperty("webdriver.chrome.driver", "C:/Users/wisnu/eclipse-workspace/BDDTokped/src/test/resources/drivers/chromedriver.exe");
  10. //open Chrome browser
  11. driver = new ChromeDriver(opt);
  12. //Maximize browser
  13. driver.manage().window().maximize();
  14. }
  15. @And("User on tokopedia login page")
  16. public void user_on_tokopedia_login_page() {
  17. System.out.println("Steps - User on tokopedia login page");
  18. //open tokped login page
  19. driver.get("https://www.tokopedia.com/login");
  20. }
  21. @When("User enter valid email or phone number")
  22. public void user_enter_valid_email_or_phone_number() {
  23. System.out.println("Steps - User enter valid email or phone number");
  24. //input email or phone number
  25. driver.findElement(By.id("email")).sendKeys("YourEmail/PhoneNumberHere");
  26. }
  27. @And("Click Selanjutnya button")
  28. public void click_selanjutnya_button() throws InterruptedException {
  29. System.out.println("Steps - Click Selanjutnya button");
  30. //click "selanjutnya"
  31. driver.findElement(By.xpath("/html/body/div[1]/div[3]/div/section[1]/form/button")).click();
  32. Thread.sleep(3000);
  33. }
  34. @And("User enter valid password")
  35. public void user_enter_valid_password() {
  36. System.out.println("Steps - User enter valid password");
  37. //input password
  38. driver.findElement(By.id("password")).click();
  39. driver.findElement(By.id("password")).clear();
  40. driver.findElement(By.id("password")).sendKeys("YourPasswordHere");
  41. }
  42. @And("Click Login button")
  43. public void click_login_button() {
  44. System.out.println("Steps - Click Login button");
  45. //click "masuk"
  46. driver.findElement(By.id("login-submit")).click();
  47. }
  48. @Then("User navigated to verify with phone number or email")
  49. public void user_navigated_to_verify_with_phone_number_or_email() throws InterruptedException {
  50. System.out.println("Steps - User navigated to verify with phone number or email");
  51. //user navigated to verify account
  52. driver.getPageSource().contains("Pilih Metode Verifikasi");
  53. Thread.sleep(3000);
  54. //close browser
  55. driver.close();
  56. driver.quit();
  57. }

}

  1. 9. Run with cucumber feature again
  2. <br><img src="https://i.imgur.com/oUOzQlV.jpg" width="500"></br>
  3. 10. Create Folder Runner at src/test/java and create java class TestRunner.java
  4. <br><img src="https://i.imgur.com/Al0PNr6.jpg" width="500"></br>

package runner;

import org.junit.runner.RunWith;

import io.cucumber.junit.Cucumber;
import io.cucumber.junit.CucumberOptions;

  1. @RunWith(Cucumber.class)
  2. @CucumberOptions(features="src/test/resources/Features",
  3. glue= {"StepDefinition"},
  4. plugin ={"json:target/cucumber.json"})
  5. public class TestRunner {

}

```

  1. Run TestRunnet.java as JUnit Test


  2. open command and enters “mvn clean” test will generate the Cucumber report file

  3. enters “mvn verify -DskipTests” will generate the cucumber-report-html based on the cucumber.json