π§© 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
@TestConfigurationannotations. - 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

