This project is a comprehensive BDD (Behavior Driven Development) test automation framework built for Automation Exercise, implementing best practices in both Web UI and API testing.
src
├── main
│ └── java
│ └── com
│ └── automation
│ ├── api
│ │ └── client
│ │ └── ApiClient.java
│ ├── config
│ │ ├── ConfigReader.java
│ │ └── DriverConfig.java
│ ├── context
│ │ └── TestContext.java
│ └── pages
│ ├── BasePage.java
│ ├── HomePage.java
│ └── ...
├── test
│ ├── java
│ │ └── com
│ │ └── automation
│ │ ├── runners
│ │ │ └── TestRunner.java
│ │ └── steps
│ │ ├── api
│ │ │ └── ApiSteps.java
│ │ ├── CommonSteps.java
│ │ └── ...
│ └── resources
│ ├── config
│ │ └── config.properties
│ └── features
│ ├── UI Tests
│ │ ├── TC01_register.feature
│ │ └── ...
│ └── API Tests
│ ├── TC06_api_product_list.feature
│ └── ...
└── test-output
├── cucumber-reports
├── extent-reports
└── testng-reports
Test Case ID | Description | Category | Priority |
---|---|---|---|
TC01 | User Registration | Regression, Smoke | High |
TC02 | Login with Valid Credentials | Regression, Smoke | High |
TC03 | Login with Invalid Credentials | Regression | Medium |
TC04 | Contact Us Form | Regression | Medium |
TC05 | Test Cases Page Verification | Regression | Low |
Test Case ID | Description | Endpoint | Methods |
---|---|---|---|
TC06 | Product List Operations | /productsList | GET, POST |
TC07 | Brands List Operations | /brandsList | GET, POST |
TC08 | Search Product | /searchProduct | POST |
TC09 | Verify Login | /verifyLogin | POST |
TC10 | Create Account | /createAccount | POST |
- Java JDK 21
- Maven 3.8+
- Chrome/Firefox Browser
- IDE (IntelliJ IDEA recommended)
- Clone the repository:
git clone https://github.com/fatihmcicek/bdd-framework-with-full-stack-testing.git
- Install dependencies:
mvn clean install -DskipTests
mvn clean test
# Run UI Tests
mvn test -Dcucumber.filter.tags="@ui"
# Run API Tests
mvn test -Dcucumber.filter.tags="@api"
# Run Smoke Tests
mvn test -Dcucumber.filter.tags="@smoke"
# Run Regression Tests
mvn test -Dcucumber.filter.tags="@regression"
mvn test -DsuiteXmlFile=testng.xml
Reports are generated in the test-output
directory:
test-output/
├── cucumber-reports/
│ └── cucumber-pretty.html # Detailed test execution report
├── extent-reports/
│ └── ExtentReport.html # Rich HTML report with graphs
└── testng-reports/
└── index.html # TestNG execution report
- Page Object Model Design Pattern
- BDD Framework with Cucumber
- REST Assured for API Testing
- Data Driven Testing
- Parallel Test Execution
- Detailed HTML Reports
- Screenshot Capture on Failure
- Cross Browser Testing Support
- Configuration Management
- API Response Validation
- Selenium WebDriver for browser automation
- Page Object Model for maintainability
- TestNG for test execution
- Cucumber for BDD scenarios
- REST Assured for API automation
- JSON response validation
- Status code verification
- Schema validation
- Data driven tests
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Fatih Mehmet ÇİÇEK
Give a star if this project helped you!