Skip to content

Latest commit

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Estoda QA Automation 🧪

Selenium + Java + TestNG automation project for testing the Estoda search engine.

The project automates the main user flow:

Login → Search → Sort Results → Logout


🚀 Project Overview

This project was created to automate important functional scenarios of the Estoda web application.

The application includes a search engine that collects and searches content from news websites and other sources. The automation suite verifies that users can log in, perform searches, sort results, and log out successfully.

Tested search keywords

  • gaza
  • israel
  • war

These keywords were selected because they return real search results from the application's crawled news sources.


🛠️ Tech Stack

TechnologyPurpose
Java 17Programming language
Selenium WebDriverBrowser automation
TestNGTest framework
MavenBuild & dependency management
Chrome / ChromeDriverBrowser execution
Page Object Model (POM)Test architecture
Git & GitHubVersion control

📁 Project Structure

estoda-automation/
│
├── pom.xml # Maven configuration & dependencies
├── testng.xml # TestNG suite configuration
│
├── src/
│ └── test/
│ └── java/
│ └── com/
│ └── estoda/
│ │
│ ├── pages/ # Page Object Model classes
│ │ ├── LoginPage.java
│ │ └── SearchPage.java
│ │
│ ├── tests/ # TestNG test classes
│ │ ├── LoginTest.java
│ │ ├── InvalidLoginTest.java
│ │ ├── SearchTest.java
│ └── EstodaSmokeTest.java
│
└── target/ # Maven generated files

🧩 Page Object Model

The project follows the Page Object Model (POM) design pattern.

LoginPage

Responsible for:

  • Entering username
  • Entering password
  • Submitting the login form

SearchPage

Responsible for:

  • Entering search keywords
  • Performing searches
  • Sorting results
  • Reading search results
  • Logging out

This keeps page locators and page actions separate from test logic, making the framework easier to maintain.


🧪 Automated Test Scenarios

Login

  • ✅ Valid login
  • ✅ Verify successful navigation to /search/

Search

  • ✅ Search for gaza
  • ✅ Search for israel
  • ✅ Search for war

Sorting

  • ✅ Gaza results — Ascending
  • ✅ Gaza results — Descending
  • ✅ Gaza results — No Sort

Logout

  • ✅ Logout from the search page
  • ✅ Verify navigation back to /login/

📊 Current Test Result

The current SearchTest suite contains 7 automated tests.

Latest execution:

Tests run: 7
Failures: 0
Errors: 0
Skipped: 0
BUILD SUCCESS

Command used:

mvn clean test -Dtest=SearchTest

▶️ How to Run

1. Clone the repository

git clone https://github.com/Estoda/QA_Testing.git

2. Open the automation project

cd QA_Testing/estoda-automation

3. Run Login tests

mvn clean test -Dtest=LoginTest

4. Run Search tests

mvn clean test -Dtest=SearchTest

5. Run the complete TestNG suite

mvn clean test

🌐 Application Under Test

https://estoda3.pythonanywhere.com/

Login page:

https://estoda3.pythonanywhere.com/login/

Search page:

https://estoda3.pythonanywhere.com/search/

🔍 Example Search Results

The Estoda search engine can return results from multiple sources, including:

  • Ahram Online
  • The Guardian
  • CNN
  • Wikipedia
  • Al Jazeera

Example:

SEARCH: ISRAEL
Ahram Online - News, Business, Culture, Sports & Multimedia from Egypt
Rank: 0.00
Latest news, sport and opinion from the Guardian
Rank: 0.00
Breaking News, Latest News and Videos | CNN
Rank: 0.00

⚠️ Notes

During execution, Selenium may display a warning similar to:

WARNING: Unable to find CDP implementation matching 151

This is a Selenium/Chrome DevTools compatibility warning. It does not prevent the current automated tests from passing.

The test suite has been successfully executed with:

Java 17
Selenium 4.35.0
Chrome 151
TestNG
Maven

🎯 QA Automation Goals

This project focuses on demonstrating:

  • Functional UI automation
  • Selenium WebDriver usage
  • TestNG test organization
  • Page Object Model
  • Explicit waits
  • Assertions and validations
  • Positive functional testing
  • Search and sorting verification
  • End-to-end user flow testing
  • Maven test execution
  • Git/GitHub project management

📌 Future Improvements

Possible future additions:

  • Negative login scenarios
  • Registration testing
  • Search validation for empty input
  • More sorting assertions based on result ranking
  • Data-driven testing
  • Screenshots on test failure
  • Test reports
  • CI/CD integration with GitHub Actions

👨‍💻 Project

Estoda QA Automation

Built with Java, Selenium WebDriver, TestNG and Maven.

Repository:
https://github.com/Estoda/QA_Testing

About

Selenium + Java + TestNG automation framework for testing the Estoda Search Engine using Page Object Model (POM), explicit waits, assertions, search, sorting, login, and logout scenarios.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages