TecNimbus

Let’s build better softwareβ€”and a more balanced lifeβ€”together.

KandyTest Automation Framework β€” Unified Web & Mobile Test Automation Made Simple

🧩 Overview

The KandyTest Automation Framework is a lightweight, annotation-driven framework designed to simplify Web UI and Mobile test automation.
It provides a unified architecture to manage different types of automation (browser and Android) within a single, clean structure β€” all while promoting reusability, consistency, and easy configuration.

πŸ‘‰ GitHub Repository: BathiyaL/kandytest


🎯 Purpose

The KandyTest framework was built to help QA engineers and developers streamline automation testing by providing a configuration-based approach.

Instead of maintaining separate frameworks for web and mobile testing, KandyTest allows you to define driver settings (browser, device, base URL, etc.) directly within annotations, making test setup and execution fast and efficient.

Whether you’re testing a web application, an Android app, or both β€” this project helps you get started with minimal effort.


πŸš€ Key Features

βœ… Unified Web & Mobile Testing

  • Run browser tests (Chrome, etc.) and Android app tests using one framework.
  • Switch between Web and Mobile drivers effortlessly.

βœ… Annotation-Based Configuration

  • Configure test drivers, URLs, and timeouts with @TestConfiguration annotations.
  • No need for bulky XML or JSON configurations.

βœ… Page Object Support

  • Use page object classes for clean, reusable UI interactions.
  • Keep tests simple and maintainable.

βœ… Extensible Architecture

  • Add custom drivers or extend existing test logic easily.

βœ… Integrated Reporting

  • Capture test results, screenshots, and logs.
  • Ready to integrate with external tools like Allure or ExtentReports.

🧠 Why KandyTest?

Most automation teams manage multiple frameworks β€” one for web testing and another for mobile apps. This leads to duplicate setup, inconsistent patterns, and higher maintenance.

KandyTest eliminates that complexity by offering a single entry point for both platforms.

With its driver-agnostic design, you can write once and run across devices β€” without switching frameworks.


πŸ”§ Prerequisites

Before running the framework, make sure you have the following installed:

  • β˜• Java 17 or higher
  • 🧩 Maven (or another build tool)
  • 🌐 Browser driver (e.g., ChromeDriver)
  • πŸ“± Android SDK or emulator for mobile tests

βš™οΈ Setup & Installation

# Clone the repository
git clone https://github.com/BathiyaL/kandytest.git
cd kandytest

# Build the project
mvn clean install

βš™οΈ Configuration

KandyTest uses simple annotations to define test setup. You can specify the driver type, browser, base URL, or even Android app details.

Example: Web Test Configuration

@TestConfiguration(
  testDriver = TestDriver.WEB,
  browser = Browsers.CHROME,
  implicitlyWaitTime = 15,
  baseUrl = "http://example.com"
)
public class MyWebTest {
   // test logic here
}

Example: Mobile Test Configuration

@TestConfiguration(
  testDriver = TestDriver.MOBILE,
  mobileApp = "Demo.apk",
  mobileDeviceName = "Pixel_3_API_30"
)
public class MyAndroidTest {
   // test logic here
}

▢️ Running Tests

Execute test classes directly via Maven or your IDE:

mvn test -Dtest=MyWebTest

Depending on your configuration, the framework will launch the correct driver and environment automatically.


🧱 Project Structure

kandytest/
β”‚
β”œβ”€ src/
β”‚   β”œβ”€ main/       # framework core and helpers
β”‚   └─ test/
β”‚       β”œβ”€ web/    # web test classes
β”‚       └─ mobile/ # mobile test classes
β”‚
β”œβ”€ pom.xml
β”œβ”€ README.md
└─ .gitignore

Each module is clearly separated, helping you maintain test logic efficiently.


πŸ“Š Reporting & Test Results

After each test run, KandyTest generates detailed logs and reports for both Web and Mobile executions.

Default local report


🧩 Example Use Case

Imagine you have a product accessible via both browser and Android app.
With KandyTest, you can:

  • Run Web UI tests to validate forms, buttons, and API integration.
  • Execute Mobile tests on your APK within the same test suite.
  • Collect unified reports showing all test outcomes in one place.

That’s full-stack test coverage β€” simplified.


🀝 Contributing

Contributions are always welcome!

If you’d like to:

  • Add new test drivers
  • Improve annotations
  • Enhance reporting features

Simply fork the repo, make your changes, and submit a pull request on GitHub.


πŸ“œ License

This project is distributed under the MIT License β€” making it open for personal and commercial use.

πŸ“˜ Learn more on GitHub: BathiyaL/kandytest


πŸ’» Author: Bathiya Ladduwahetty
πŸ“… Published on Tecnimbus β€” Projects & Demos