Pre Requisites

In the previous section, we have seen an end-end pipeline aka. CI pipeline demonstration. From here on, lets jump into more details and hands-on.

Windows vs. Mac

To develop an iApp, you would need a Mac, as the development environment, runtime and in fact the OS itself has to be OSX
To develop Android app, either Mac or Windows would do. However I would recommend using Mac over windows because of the following experiences I had

  • Device drivers were easier on Mac
  • System resources (CPU, Ram) etc. performed better on Mac
  • Emulator performs relatively better on Mac
  • Most online examples refer to Mac environment
  • In general, Android OS and iOS are *nix core underneath, hence experience of developing, debugging and testing feels better on Mac

Note: This book uses Mac for both hardware and underlying os

Mac Environment

The below Mac environment is where all the examples in this book were tried upon.

Mobile Devices

Have at least one Android real device. It would be preferable to have Android 4.4 or above, API 17 or above. With Android 4.2 and earlier, the appium server needs to be started with selendroid-port in addition to the bootstrap-port. More details you you continue reading further.

Network

It would be great if all the servers (Jenkins, Nexus, sonar, appium etcetera) and build machine are in the same network segment. At the minimum, they should be able to ping (assuming ICMP is not disabled) and are able to reach each other on the ports that the processes listen (mostly TCP). (For example, Jenkins might be running on web 8080, so we should be able to reach http://jenkins_url:8080 from all other machines)

Platform

The following domain knowledge will be required to a certain extent.

  1. Java Programming language & runtime (Android app source is in Java)
  2. Ruby Programmming language (understand the automation framework written with Cucumber & Ruby)
  3. Usage of both Windows and *nix operating systems.

Other languages

The test automation framework uses Ruby, however we are actively writing Python, Java and JavaScript equivalent code. Please write to us if you are interested in other programming languages to this email

results matching ""

    No results matching ""