Problems by setting up Appium - ios

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.

Related

Install ios-webkit-debug-proxy on Bitbar real device

I am trying to test an iOS application using appium on a Bitbar real device.
I start my test by executing an appium test and after the login I need to switch to WEB_VIEW context to continue testing. I did some research and found that I need to have ios-webkit-debug-proxy installed on the device to switch the context from NATIVE to WEB_VIEW.
Found this doc : http://appium.io/docs/en/writing-running-appium/web/ios-webkit-debug-proxy/#building-ios-webkit-debug-proxy-from-source on the same
But how do I install ios-webkit-debug-proxy and run those commands mentioned in the doc in a Bitbar device.
It is installed in virtual machines. You just have to set startIWDP to true in desired capabilities.

Appium installation on Windows 7

I have tried to install Appium on Windows 7 for automated testing of Android mobile apps. but it failed.
Can you please let me know, if Appium could be installed on Windows 7 ?
If yes, can you please give any link or reference where I can find and follow the installation steps on Windows 7.
Yes, You can install Appium on Windows 7.
All you need is to install Appium for Windows along with android-sdk and Genymotion(for running your tests on simulators). You however wont be run your tests on ios as it requires xcode which is not present on Windows.
After you have installed Appium(via .exe or GUI) you'll have a folder created via name Appium (by default in Program Files(x86).
To start your appium server, simple type appium &.
In order to initialize Node/Grid, go to the path where the Appium folder is created and traverse to Appium\node_modules\appium\bin. Initialize your json config using node appium --nodeconfig commands.
You can download Appium for Windows directly from Appium's of cial website (http://appium.io/), or you can clone Appium from https://github.com/ appium/appium.git.
Just to ensure that we are ready to start with the Appium server, enter the following command on the Command Prompt:
node Appium-doctor
You don't need to download Node; you can get it from the Appium bundle. To run the Node commands, you need to set the path for Node (for example, C:\ AppiumForWindows). Before running the command, set the directory as C:\ AppiumForWindows\node_modules\appium\bin.

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.

How to run Inspector when appium is installed using npm?

I used npm to install appium, but I don't know how to run the inspector.
I need to use the Inspector to locate elements in iOS.
How can I run inspector while using appium from terimnal and not from graphical app?
Appium inspector is not available for command line installation. Better download and install the UI version of appium which support the appium inspector for finding the element easily.
Also Appium inspector won't work in windows machine.
So you can do this by
Install npm (which you have already done
Install the Appium application (Slavo gave the link to Appium site answer)
go to developer settings in the app
Check "Use external appium package
enter in the location of your NPM install in text area.
When you do this the version of appium you installed via npm will be connected to the GUI application.
The gui does have its own version of the appium server, but it is an older version. That said it will still work, though it will be an old version and connecting the most recent version via an npm install and a gui download is the reccommended approach in the appium docs I think
Visit official Appium website
In the middle of the page there is big blue button with label Download Appium.
Download the client app to run the inspector, but before that you should run Appium doctor to check if all dependences were installed properly.
If you have downloaded appium using npm then you will run it through terminal by running "appium" command.
After starting appium server from terminal, open older graphical appium (install it first if you don't have it already). Don't press Launch button from gui. Press apple button and add capabilities there (platform version, device name etc) and press Inspector button.

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

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.

Resources