Automating iOS Application tests

For automating iOS app tests, Appium uses XCTest or UI Automation (for older iOS versions):

Appium works as a Remote WebDriver and receives the commands from your test scripts over the JSON wire protocol. These commands are passed to XCTest or Apple Instruments to be executed on the app launched on a simulator or a real device. This process is shown in the following diagram:

After the command is executed against your app on the simulator or device, the target app sends the response to XCTest or UI Automation Instrument, which is transferred to Appium in the JavaScript response format. Appium translates the responses into Selenium WebDriver JSON wire protocol responses and sends them back to your test script.

The main advantages of using Appium for your iOS automation testing are as follows: