Is it possible to run Appium iOS automated tests on Ubuntu? - ios

I know that it's impossible to code the test on ubuntu since I need apple's xCode, but I would like to know if, once coded, it is possible to run the automated tests on Ubuntu.
Thanks.

No, appium needs xCode to use UiAutomation and instruments to perform testing on iOS unfortunately.

I did follow with success the following tutorial: Appium on Raspberry-Pi
My current setup is as follows:
iOS devices connected to Raspberry-Pi 4 (Ubuntu)
Appium server on RPi + Quamotion tools
Inspect/Run automation scripts from remote computer.
I tried this on RPi but I guess this works on any Ubuntu computer/server.

Related

Automating iOS tests with Docker

There's another post about this, but it's four years old. Is there any way to run iOS Appium tests using docker, I've seen this image: quamotion/appium-docker-ios. But I think quamotion is a paid service with its own scripting language, and I'd like to run this for free (maybe just using some servers like DigitalOcean)
For running iOS tests Appium requires Xcode with the command-line build tool.
You may think of using Darwin docker image, but I doubt it is easy to install XCode there.
You can check vagrant-box-osx, but it looks outdated.

How to setup or can we setup appium on ubuntu for ios?

I want perform automation testing on IOS and Android app on ubuntu using Appium. I am new to this. Can we perform automation of IOS application on ubuntu ?
You can set up Appium on ubuntu for Android only. For iOS app testing using appium, the primary requirement is XCode which comes with only iOS Operating System which you can get only on MacBook/MacMini. However, you can set up on ubuntu for Android.
I can recommend the techstack of quamotion. They provide the necessary stubs for the required tools on ubuntu.
You can follow a tutorial on http://docs.quamotion.mobi/docs/xcuitrunner/tutorials/appium-on-raspberrypi/

Using Appium to automate Genymotion Cloud Virtual Device

I tried to get information online but could not get a proper answer to my question. I want to be able to automate Native app installed on a Emulator on GenyMotion Cloud using Appium? If yes how can this be done. I want to be able to run the scripts on my local by accessing the Emulator on the cloud.
I have seen articles about Appium + GenyMotion Desktop version only so far.
Genymotion devices behave like standard Android devices so you can connect to them through ADB and run your tests with Appium.
You can automate the creation and the start of devices using Genymotion's command line tool, GMTool.

Problems by setting up Appium

I want to set up an Appium test automtion framework on Mac OS (El Capitan).
First, I want to run test automation by iOS simulator and the Appium test app UICatalog.
Currently I ran into some problems. Also I have to mention that I'm quite new to testing stuff...
What I have installed so far:
xCode 7.2.1
Appium GUI
Node.js
Java JDK 1.8.0_51
When I run the Appium Doctor by GUI there are no problems listed!
Question so far:
Is the Appium GUI the same as the npm installation like this
npm install -g appium
npm install wd
appium &
Do I still need the selenium package? Or does it come with the Appium GUI?
When I start Appium server by GUI I receive the following state:
Why does it get locked? What is missing?
Do I have to run xCode besides Appium server when I want to test an app?
How do I grant Appium access to the iOS simulator? Is this still necessary? I haven't get an authentification like this.
I hope anyone can give me some hints :).
I see your appium port is running on 4723. When you run your appium test scripts, which has port 4723 mentioned on your script itself. Your automated test cases would automatically run on the 4723.
Appium requires backend server port to be running. This way it communicates with your device.
The appium GUI is the Server GUI which shows what all happens in the back end when u trigger your script. All you need to do is , use the same port no in ur script while running,
eg:
iosDriver driver=new iosDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
I have done automation using Appium+Cucumber+Java so I had the same questions you had. Here are some answers for you based on my experience-
Appium Gui is not the same as npm. They are 2 separate components. Appium uses node.js framework. So you need to install Appium and node.js (npm) separately. The command you mentioned
npm install -g appium
would install the Appium server. To install the Appium GUI you need to download and install it from this link - http://appium.io/downloads.html
Follow these instructions where I give step by step instructions on how to set up Appium - http://www.rajsubra.com/2016/04/03/appiumjavacucumber-set-up-step-by-step-instructions/
If you follow the above steps you should be able to run tests via the iOS Simulator.
Also the state you mentioned in the screenshot with the Appium GUI is the normal expectations. It is just saying the Appium server started via the GUI and also gives you details on what simulator configuration has been selected.

Does Appium need Xcode for run automated testing on iOS device?

I'm trying to run automated testing on iOS devices without installing Xcode, but seem like it doesn't work.
So I just want to know that Does Appium really need Xcode for run automated testing on iOS device? and why?
Xcode needs to be present for Appium to work.
Appium's command life-cycle, works as :
Selenium webdriver picks a command form the code like (Element.click) and sends it in form of JSON via http request to the Appium server. Appium server knows the automation context like the iOS and Android and sends this command to the Instruments command server which will wait for the Instruments command client (written in node.js) to pick it up and execute it in bootstrap.js with in the iOS instruments environment. Once the command is executed the command client sends back the message to the Appium server which logs everything related to the command in its console. This cycle keeps going till the time all the commands gets executed.
Appleā€™s instruments binary, which Appium uses to launch the iOS simulator, by default uses the currently-selected Xcode, and the highest iOS SDK installed with that version of Xcode.
Appium uses the appium-xcuitest-driver to test iOS devices using the Xcode UI Testing protocol. Under the hood, it will launch the WebDriverAgent on the iOS device, which does the heavy lifting.
There is 3rd party, commercial software which allow you to launch Appium tests on iOS devices without having to use Xcode. Such examples are Mobile Center from MicroFocus, Appium Studio from Experitest, or the quamotion/appion-docker-ios docker image.
Yes you need xcode to run you test on ios. And yes it supports native, hybrid as well as browsers.

Resources