Cross-Platform BDD with Kotlin
This is an implementation of test automation for Android and iOS apps in behavior-driven development (BDD) style, using Cucumber, Appium, Gradle, and Kotlin.
The sample scenario provided by the project is written to test the mobile apps built from the list-android and list-ios projects.
Page Object pattern is used in the implementation to make the test code more readable, maintainable, and reusable. In addition, dependency injection is used to to share state between steps.
Building Blocks
- Kotlin/JVM
- Cucumber (Kotlin step definitions)
- Appium
- Gradle (Kotlin DSL)
- PicoContainer
Setup
- Place the app packages (e.g. list.apk and List.app built from list-android and list-ios) to a directory.
- Specify your paths to the app packages and set your desired capabilities in
DriverFactory.kt
.
Running Android tests
- Launch Android emulator.
- Start Appium server.
- Navigate to your project directory and run:
./gradlew testAndroid
Running iOS tests
- Launch iOS simulator.
- Start Appium server.
- Navigate to your project directory and run:
./gradlew testIOS