Skip to content

QA Test Automation Apple's Site with Cucumber JVM, Selenium, JUnit and Maven

Notifications You must be signed in to change notification settings

byuksektepe/QATestCucumberSeleniumApple

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QA Apple Automated Tests With Cucumber JVM and Maven Build

Java JUnit Maven Selenium TeamCity TEST-003-A tc-ff tc-bb tc-a

Software All-Encompassing QA Test Automation Project For Apple. Using Cucumber JVM BDD with Selenium and JUnit 5 Test Framework. TeamCity was used as CI/CD. Maven used as Runner and Builder. Automated tests are Designed for be Easy-To-Read, Easy-To-Maintain, Easy-To-Understand and Long-Use. OOP and Clean File Architecture used. Includes only smoke tests, regression, integration and ad-hoc tests will be added later. The tests will be perform 100% automation 0% manually. The tests are optimized for Chrome, Edge, Firefox and Safari browsers.

The entire project is designed to be run and built with Maven. If you want to run and build with JUnit 5, you need to make some changes to the project.

All Feature files located in /resources/features

All Page Objects located in /abstractions/pageObjects

All Step Definitions located in /abstractions/stepDefinitions

All Utils located in /abstractions/utils

All Helpers located in /abstractions/helpers

Test Environment Requirements

  • TeamCity Pro 2022
  • Java JDK 18
  • IntelliJ IDE

Test Runtime Requirements

  • Cucumber Extension
  • Cucumber+ Extension
  • Gherkin Extension
  • JUnit Extension
  • Maven Builder

Clone for TeamCity CI/CD

If you don't want to be Authentication, you can fork the project.

[Requires Authentication]

https://github.com/Berkantyuks/QATestCucumberSeleniumApple.git

[No Need Authentication] but you need generate own token key.

https://github.com/<your_username>/QATestCucumberSeleniumApple.git

Test Automation WorkFlow

Execute Tests Using Maven

Command Prompt/Power Shell (Windows OS) or Open terminal (for MAC OSX) or and navigate to the project directory type mvn clean test command to run features. With this command it will invoke the default Chrome and will execute the tests.

  • To run features on specific browser use, mvn test "-Dbrowser=<browser_name>" browser_name can be one of following but make sure that browser’s driver file are present and specified in system variable. Like "chrome", "firefox", "edge" and "safari".

Note that the web drivers in this project are adjusted according to my agent browser version. For example, if you are using chrome, you should download a driver version compatible with your browser.

  • To run specific feature if you want only search.feature, Run mvn test -Dcucumber.options="classpath:features/Search.feature"

Execute Tests Using TeamCity

image

Clean File Architecture [Last Updated: 8/12/2022]

Main
├─ .gitignore
├─ .idea
│  ├─ .gitignore
│  ├─ compiler.xml
│  ├─ jarRepositories.xml
│  ├─ misc.xml
│  ├─ uiDesigner.xml
│  └─ vcs.xml
├─ README.md
├─ pom.xml
└─ src
   └─ test
      ├─ java
      │  └─ abstractions
      │     ├─ RuntimeTest.java
      │     ├─ helpers
      │     │  ├─ AbstractHelper.java
      │     │  ├─ HelperInterface.java
      │     │  ├─ NavigateHelper.java
      │     │  └─ ProductHelper.java
      │     ├─ pageObjects
      │     │  ├─ Bag.java
      │     │  ├─ Footer.java
      │     │  ├─ Mac
      │     │  │  ├─ BuyMac
      │     │  │  │  ├─ BuyMac.java
      │     │  │  │  └─ CustomizeMac.java
      │     │  │  ├─ IMac
      │     │  │  │  ├─ IMac.java
      │     │  │  │  └─ Models
      │     │  │  │     └─ IMAC_24.java
      │     │  │  ├─ Mac.java
      │     │  │  ├─ MacInterface.java
      │     │  │  ├─ MacMini
      │     │  │  │  ├─ MacMini.java
      │     │  │  │  └─ Models
      │     │  │  │     └─ MacMini_M1.java
      │     │  │  ├─ MacPro
      │     │  │  │  └─ MacPro.java
      │     │  │  ├─ MacStudio
      │     │  │  │  ├─ MacStudio.java
      │     │  │  │  └─ Models
      │     │  │  │     └─ MacStudio_M1.java
      │     │  │  ├─ MacbookAir
      │     │  │  │  ├─ MBA.java
      │     │  │  │  └─ Models
      │     │  │  │     ├─ MBA_M1.java
      │     │  │  │     └─ MBA_M2.java
      │     │  │  └─ MacbookPro
      │     │  │     ├─ MBP.java
      │     │  │     └─ Models
      │     │  │        ├─ MBP_13.java
      │     │  │        ├─ MBP_14.java
      │     │  │        └─ MBP_16.java
      │     │  ├─ Navbar.java
      │     │  └─ SearchResults.java
      │     ├─ stepDefinitions
      │     │  ├─ Hook.java
      │     │  ├─ ProductStepDefinitions.java
      │     │  ├─ SearchStepDefinitions.java
      │     │  └─ StepDefinitionsInterface.java
      │     └─ utils
      │        ├─ AssertionMethods.java
      │        ├─ ClickElementMethods.java
      │        ├─ Constants
      │        │  ├─ Global.java
      │        │  ├─ ModelConfigurations.java
      │        │  └─ ProductFamily.java
      │        ├─ DriverManager.java
      │        ├─ DriverWaits.java
      │        ├─ Exceptions
      │        │  ├─ ConfigurationNotMatchByDefinedException.java
      │        │  ├─ MacFamilyNotMatchByGivenException.java
      │        │  ├─ ModelNotMatchByGivenException.java
      │        │  ├─ NavbarItemNotMatchByGivenException.java
      │        │  ├─ StringNotContainsByGivenException.java
      │        │  └─ StringNotMatchByGivenException.java
      │        ├─ InputMethods.java
      │        ├─ Locators.java
      │        ├─ NavigateMethods.java
      │        ├─ SelectElementByType.java
      │        ├─ Transformer.java
      │        ├─ UtilsInterface.java
      │        └─ expectedConditions
      │           ├─ ClickabilityOfElement.java
      │           ├─ ClickabilityOfElementByLocator.java
      │           ├─ InvisibilityOfElement.java
      │           ├─ InvisibilityOfElementByLocator.java
      │           ├─ VisibilityOfElement.java
      │           └─ VisibilityOfElementByLocator.java
      └─ resources
         ├─ drivers
         │  ├─ chromedriver.exe
         │  ├─ geckodriver.exe
         │  └─ msedgedriver.exe
         └─ features
            ├─ Product.feature
            └─ Search.feature

About

QA Test Automation Apple's Site with Cucumber JVM, Selenium, JUnit and Maven

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published