Set up Appium 2 to Run XCUITest (for iOS)

Setup and run an Appium 2 automated iOS test with XCUITestDriver

Zhimin Zhan
6 min readDec 11, 2022

--

A repost of my daughter’s article with permission. I added a few notes. This is also included in the “Courtney’s Appium Series”.

Appium is a free, open-source and dominating test automation framework for desktop and mobile applications. Appium, like Selenium, is WebDriver-based.

Image Credit: https://zhiminzhan.medium.com/recommend-a-great-ci-presentation-continuous-integration-at-facebook-6369323da084

“For all of our end-to-end tests at Facebook we use WebDriver, WebDriver is an open-source JSON wired protocol, I encourage you all check it out if you haven’t already. ” — Katie Coons, a software engineer at Product Stability, in “Continuous Integration at Facebook

As this Facebook engineer said in the presentation, by using WebDriver-based automation framework, the automation test scripts for iOS, Android and Web, the APIs are very similar. This means big time-saving! It comes as no surprise, Microsoft dumped its own Coded UI Test tool and recommended Appium and Selenium too.

Microsoft deprecated Coded UI Test and recommend Selenium and Appium in 2018

Appium version 2 is coming out soon and is already in Beta, the latest version 2.0.0.beta 46.

This tutorial will show you how to set up Appium v2 on a macOS computer to run XCUITests on a sample iOS app.

Zhimin’s notes: Many software professionals heard of Appium, a small percentage tried Appium but failed. The reasons are the similar to Web Test Automation failures. Doing a hello-world demo (like this article) is not hard, but to develop and maintain a reasonable-sized test suite as regression testing (run multiple times a day) is far more challenging. There are many other factors to consider, such as:
- Maintainable Automated Test Design
- High…

--

--

Zhimin Zhan

Test automation & CT coach, author, speaker and award-winning software developer. Help teams succeed with Agile/DevOps by implementing real Continuous Testing.