All Projects → MohabMohie → SHAFT_ENGINE

MohabMohie / SHAFT_ENGINE

Licence: MIT license
SHAFT is an MIT licensed test automation engine. Powered by best-in-class frameworks like Selenium WebDriver, Appium & RestAssured it provides a wizard-like syntax to increase productivity, and built-in wrappers to eliminate boilerplate code and to ensure your tests are extra stable and your results are extra reliable.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to SHAFT ENGINE

carina
Carina automation framework: Web, Mobile, API, DB etc testing...
Stars: ✭ 652 (+283.53%)
Mutual labels:  test-automation, testing-tools, appium, test-automation-framework, appium-java
AppiumGrid
A framework for running appium tests in parallel across devices and also on desktop browser... U like it STAR it !!
Stars: ✭ 17 (-90%)
Mutual labels:  selenium-java, selenium-webdriver, appium, selenium-grid, appium-framework
carina-demo
Carina demo project.
Stars: ✭ 40 (-76.47%)
Mutual labels:  maven, testing-tools, appium, restassured
SeleniumDemo
Selenium automation test framework
Stars: ✭ 84 (-50.59%)
Mutual labels:  maven, selenium-webdriver, selenium-grid
Selenium-Foundation
Selenium Foundation is an automation framework designed to extend and enhance the capabilities provided by Selenium (WebDriver).
Stars: ✭ 51 (-70%)
Mutual labels:  selenium-java, appium, selenium-grid
MasterAppiumFramework
Automation Testing | Mobile | Java | OOPS | Appium | TestNG | Maven | ExtentReport | Java mail API | Logging (Log4J2) | Design Patterns (Page Object Model, Singleton) | Page Factories | Jenkins | Data-Driven Testing using JSON file | Expected Data using XML file
Stars: ✭ 27 (-84.12%)
Mutual labels:  maven, test-automation, appium
headless-chrome
Implementation of the new headless chrome with chromedriver and selenium.
Stars: ✭ 34 (-80%)
Mutual labels:  maven, selenium-java, selenium-webdriver
Carina
Carina automation framework: Web, Mobile, API, DB
Stars: ✭ 549 (+222.94%)
Mutual labels:  test-automation, testing-tools, appium
python-appium-framework
Complete Python Appium framework in 360 degree
Stars: ✭ 43 (-74.71%)
Mutual labels:  selenium-webdriver, appium, appium-framework
OneFramework
Automation for iOS, Android, & Web Apps with one codebase. Like it, Star it & spread the word !!!
Stars: ✭ 46 (-72.94%)
Mutual labels:  selenium-webdriver, appium, test-automation-framework
page-modeller
⚙️ Browser DevTools extension for modelling web pages for automation.
Stars: ✭ 66 (-61.18%)
Mutual labels:  test-automation, testing-tools, selenium-webdriver
Mobileautomationframework
Single code base framework to test android and iOS app using appium (v6.1.0), maven, testng,java. Option to start appium server programmatically.
Stars: ✭ 66 (-61.18%)
Mutual labels:  maven, test-automation, appium
testcontainers
Selenide + TestContainers (Docker) sample project
Stars: ✭ 28 (-83.53%)
Mutual labels:  selenium-java, testing-tools
SeleniumCucumber
BDD framework for automation using Selenium Cucumber and TestNg
Stars: ✭ 48 (-71.76%)
Mutual labels:  selenium-java, selenium-webdriver
MasterSeleniumFramework
Automation Testing | Web | Java | OOPS | Selenium WebDriver | TestNG | Maven | ExtentReport | Allure Reports | Java mail API | Design Patterns (Page Object Model, Singleton) | Jenkins | Data-Driven Testing using JSON file
Stars: ✭ 52 (-69.41%)
Mutual labels:  maven, test-automation
Ocaramba
C# Framework to automate tests using Selenium WebDriver
Stars: ✭ 234 (+37.65%)
Mutual labels:  test-automation, selenium-webdriver
Selenium Maven Template
A maven template for Selenium that will let you check out and go.
Stars: ✭ 403 (+137.06%)
Mutual labels:  maven, selenium-webdriver
selenium-auto-wait
Utility to automatically manage all web element waits and enables to write wait-free selenium tests.
Stars: ✭ 31 (-81.76%)
Mutual labels:  selenium-java, testing-tools
kentan
A modular test data generator for TypeScript
Stars: ✭ 38 (-77.65%)
Mutual labels:  test-automation, testing-tools
Java.webdriver
Browser test automation using Selenium WebDriver in Java
Stars: ✭ 135 (-20.59%)
Mutual labels:  maven, selenium-webdriver

SHAFT_ENGINE

License Contributors) JFrog release (latest by date including pre-releases)

GitHub Workflow Status (with branch) GitHub Workflow Status (with branch) GitHub Workflow Status (with branch)

Codacy grade GitHub Workflow Status (with branch) Codecov

SHAFT: Unified Test Automation Engine

🏃 Quick Start Guide

Option 1: Template Project

Option 2: New Project

Step 1: Initial Setup

  • Create a new Java/Maven project using Eclipse, IntelliJ or your favourite IDE.
  • Copy the highlighted contents of this pom.xml file into yours inside the <project> tag.
  • Follow the steps in this footnote in case you are using IntelliJ1.

Step 2: Creating Tests

  • Create a new Package TestPackage under src/test/java and create a new Java Class TestClass under that package.
  • Copy the below imports into your newly created java class.
import com.shaft.driver.SHAFT;
import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
  • Copy the below code snippet into your newly created java class.
    SHAFT.GUI.WebDriver driver;
    SHAFT.TestData.JSON testData;

    By searchBox = By.name("q");
    By resultStats = By.id("result-stats");

    @Test
    public void test() {
        driver.browser().navigateToURL("https://www.google.com/");
        driver.verifyThat().browser().title().isEqualTo("Google").perform();
        driver.element().type(searchBox, testData.getTestData("searchQuery"))
                .keyPress(searchBox, Keys.ENTER);
        driver.assertThat().element(resultStats).text().doesNotEqual("")
                .withCustomReportMessage("Check that result stats is not empty").perform();
    }

    @BeforeClass
    public void beforeClass() {
        driver = new SHAFT.GUI.WebDriver();
        testData = new SHAFT.TestData.JSON("simpleJSON.json");
    }

    @AfterClass
    public void afterClass() {
        driver.quit();
    }

Step 3: Managing Test Data

  • Create the following file src/test/resources/testDataFiles/simpleJSON.json.
  • Copy the below code snippet into your newly created json file.
{
  "searchQuery": "SHAFT_Engine"
}

Step 4: Running Tests

  • Run your TestClass.java as a TestNG Test Class.
  • The execution report will open automatically in your default web browser after the test run is completed.
  • Join our GitHub Repo stars to get notified by email when a new release is pushed out.
  • After upgrading your Engine to a new major release it is sometimes recommended to delete the properties folder src\main\resources\properties and allow SHAFT to regenerate the defaults by running any test method.

👨‍💻 Tech Stack

Java Maven       IntelliJ IDEA

🦸 Powered by

Selenium WebDriver       Appium       REST Assured       TestNG       Allure Reports       Extent Reports       Cucumber.io       WebDriverManager       Selenium Grid       BrowserStack       SikuliX       OpenCV       Applitools       GitHub Actions       Dependabot       Codacy       CodeQL       JaCoCo       CodeCov       jFrog

🔗 Important Links

  • You can change the target browser, operating system, timeouts, and other configurations using the ⚙️ Configuration Manager.
  • And you can learn more from the 👤 User Guide and 📚 Javadocs.

🤝 Support & Contributions

  • Join us via Slack & Facebook
    automatest-workspace Automatest
  • And feel free to create PRs directly. This lovely tutorial will help.

👥 Who else is using SHAFT? 2

_VOIS (Vodafone Intelligent Solution)      GET Group Holdings      MOMRA (Saudi Arabia's Ministry of Municipal and Rural Affairs)      Vodafone (Egypt)      Solutions by STC      GIZA Systems      Euronet      Terkwaz Business Solutions      Incorta      BayanTech      Adam.ai      ACT Global Soft      elmenus      IDEMIA      iHorizons      Robusta      Paymob Solutions

🙏 Big thanks to the following organizations for their support to the project with their open source licenses

BrowserStack       Applitools

Stop Reinventing the wheel! Start using SHAFT!

Footnotes

  1. Due to a known issue with IntelliJ you need to edit your run configuration templates before running your tests by following these steps:
    - Open 'Edit Run/Debug Configurations' dialog > Edit Configurations... > Edit configuration templates...
    - Select TestNG > Listeners > and add these listeners one by one:
    io.github.shafthq.shaft.listeners.TestNGListener
    - Select Cucumber Java > Program Arguments > and add this argument:
    --plugin io.github.shafthq.shaft.listeners.CucumberFeatureListener
    - After saving the changes, remember to delete any old test runs you may have triggered by mistake before adding the needed config.

  2. Company names are collected via anonymous surveys and provided freely by engineers who claimed to be using SHAFT_Engine within these companies.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].