/appium-cucumberbdd-testng

Cucumber-JVM + Appium + TestNG + Page Object Model with Parallel Execution!

Primary LanguageJava

appium-cucumberbdd-testng

Appium mobile test automation framework with Page Object Model design using Java + Cucumber + Maven + TestNG. Framework follows many of the industry best practices and supports Android and iOS in a single code base.

Step by step instructions to build this framework from scratch is in this Highest Rated Udemy course. Enroll today at the minimal rate of INR 570/ $12.99. Link with coupon code: https://www.udemy.com/course/the-complete-appium-course-for-ios-and-android/?couponCode=DEC021

One of the most comprehensive Appium course ever created

Technologies/Tools used in building the framework

  • IntelliJ - IDE
  • Appium - Mobile Automation library
  • Maven - Build automation tool
  • Java - Programming language
  • Cucumber - BDD
  • Gherkin - DSL
  • TestNG - Test Management library
  • Log4J - Logging framework
  • Extent Reports - Reporting framework
  • JSON - Test Data
  • XML - Static text
  • GitHub - Version control
  • Jenkins - CI/CD

Framework implements below best practices

  • Code reusability
  • Code readability
  • Scalable automation (demonstrated using multiple test classes)
  • Uses explicit waits
  • Abstraction layer for UI commands like click, sendkeys, etc.
  • Parameterization using TestNG XML and config.properties
  • Abstraction layer for test data
  • Abstraction layer for static text
  • Supports iOS and Android
  • Demonstrates how to define UI elements that are common across pages (e.g. menu bar, side bar, etc.)
  • How to recover from test failure/ how to write fail safe test cases
  • Scrolling for both Android and iOS (using touchaction, uiScrollable, mobile:scroll)
  • Demonstrates how to effectively capture Screenshots/Videos
  • Supports parallel execution using TestNG
  • Supports parallel execution on multiple real Android and iOS devices
  • Start Appium server propgrammatically
  • Supports Cucumber-HTML-Reporter plugin
  • Integrated with Log4J2 Logging framework