All Projects → vikramvi → AppiumSerenityPOC

vikramvi / AppiumSerenityPOC

Licence: other
POC showing native android app automation with Appium & Serenity BDD framework

Programming Languages

java
68154 projects - #9 most used programming language
Gherkin
971 projects

This project shows Appium and Serenity framework integration to run sample test case on native Android app.

Before Run Settings

  1. Have a android emulator or device connected and running
  2. ANDROID_HOME environment varialbe to be set ( + For Eclipse Run As > Run Configurations .... > Environment )
  3. appium.platformVersion = set_valid_value
  4. appium.deviceName = set_valid_value
  5. appium.app = set_full_path

Note:

  1. Please run and review the code
  2. If you think something needs to be improved; please file issue or submit PR.

How To Run From Command Line

  1. mvn clean verify
  2. From Eclipse FlipkartAppCucumber , verifyInvalidLogin Run or Debug As JUnit Test



Living Documentation

  1. http://vikramvi.github.io/AppiumSerenityPOC

Native App Interrogating Methods:


Method 1:

1.1  with arc command

1.2  Run arc command which takes caps from appium.txt and launches app on mobile in this case

1.3 You can now easily play with app with commands like
page_class, page, @driver.methods,  @driver.find_element(:id,....).click



Method 2:

2.1 with irb command

2.2 run irb command

2.3 Later run below commands in sequenc

2.3.1 require 'appium_lib'

2.3.2 caps = {
caps: {
platformName: "Android",
platformVersion: "5.0.1",
deviceName: "d6e4f8d6",
app: 'FULL_PATH/Flipkart.3.0.apk',
newCommandTimeout: '9999'
},
appium_lib: {
server_url: 'http://localhost:4723/wd/hub',
wait: 300
}
}

2.3.3 Appium::Driver.new(caps).start_driver

2.3.4 Appium.promote_appium_methods Object

2.4  You can now easily play with app with commands like
page_class, page, @driver.methods,  @driver.find_element(:id,....).click



Why this is better than using Appium Client ?

I find this Ruby way of playing with app ( REPL ) much easier than Appium Client as later is slower and buggier.
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].