QARepo core framework(QCF...pronounced cough) is Java-based framework that aims to simplify automated functional, UI and regression testing. QCF takes an opinionated approach to test automation and is designed to provide developers and testers the ability to easily tests web applications. QCF acts a wrapper on top of Selenium WebDriver and uses TestNG testing framework. QCF is OS neutral and runs on Mac, Windows, and Linux. It manages local WebDriver binaries via WebDriverManager and remote WebDrivers via SeleniumHQ's docker images. QARepo core is containerize using Docker and will run on any operating system or browser.
The framework is developer-centric and features the ability to run tests in the cloud, via Docker containers or locally. QCF has various tools and utilities for managing common test actions (e.g. window handling, alerts, Data Provider, file readers etc.). QCF currently manages reporting using Lo4j2 but we are currently working on rich HTML reports. QCF is work in progress but its a labor-of-love. Drop us a line if you have questions or suggestions. Happy testing!
Managing WebDrivers, parallel test execution and threading can be difficult. QCF features a DriverFactory, threadsafe WebDriver instances and parallel test execution. The quickest way to get started with QARepo QCF is with the maven dependency. Right now the project is available as SNAPSHOT only. A stable build will be available in the coming weeks.
If you're just curious about how to run tests, the project includes a few sample tests, see the running testng suite section for details. Review the [Running TestNG Suite](#Running TestNG Suite) for details.
<dependency>
<groupId>com.qarepo</groupId>
<artifactId>core-framework</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
Below are details on how to run this test suite and the sample tests. You can run the tests using Docker, shaded executable Jar or locally from an IDE or command line.
- TestNG config files are located in directory /src/main/resources/test-configs/
- Docker conf: docker-testng.xml
- TestNG conf: testng.xml
- Build docker-compose and start services: (Dockerized TestNG suite service use stand-alone chrome from Selenium)
This will start the test service and selenium stand-alone chrome browser. The test suite will begin running immediately so make sure you only 'include' the groups you want to run to optimize feedback.
$ docker-compose up --build
- Clone directory:
$ git clone https://github.com/kdyck/qaframework-core.git
- Clean project and build and package shaded executable jar:
$ mvn clean package
- Run *-SHADED.jar with
String
testng.xml file:$ java -jar ./target/core-framework-1.0.0-SHADED.jar "./src/main/resources/test-configs/testng.xml"
- Clone directory:
$ git clone https://github.com/kdyck/qaframework-core.git
- Navigate to ./src/resources/test-config directory
- Open testng.xml conf file for url under test
- Run the testng.xml conf-file