It was an honor to finally meet face-to-face with one of my open source heroes Dan Cuellar and talk about the future of Appium.
To Install Appium for Mac: 1. Download a release and unzip the application into your /Applications folder 2. Follow the brief supplemental installation instructions to enable Appium to have access to OS X's Accessibility APIs (For more information on using AppiumForMac, check out the docs). Sep 12, 2019 In this blog we will understand how to setup Appium on a Mac machine. Pre-requisite. Mac Book. Xcode. Simulator or real device. Appium. Eclipse. Java The first step is to install Xcode in the Mac Book. To do that, open app store and search for Xcode and click on the Get button to download Xcode.
Dan Cuellar is the original creator of Appium. Jonathan Lipps is the leading developer on the Appium project now, but Dan is still proving leadership in the vision and direction of Appium automation.
Before we get into the future of Appium lets, cover some intro info first.
What is Appium?
Originally Appium was developed as an automated tool used to create test scripts that can run against native mobile applications and mobile-web apps on iOS or Android leveraging WebDriver.
Appium vs Selenium
You might be confused about what the difference is between Selenium and Appium. They are different technologies for different testing needs. Appium is for mobile test automation, and Selenium is for browser-based automated testing.
Evolution of Appium
At the Selenium Conference 2017 in Austin, Texas Dan gave a presentation on Automation for Apps. In it he laid out the evolution of open source automation as starting off with Selenium WebDriver which automated website, and then with Appium that generalize WebDriver to automate mobile apps. The next step is to bring in the ability to automate other kinds of apps on Windows and Mac.
This ultimate evolution is called the StarDriver vision — one protocol to automate all the things, and this is one of the first steps towards it.
Windows Application Driver developed by Yousef Durr at Microsoft is the Windows implementation of Appium to automate Windows applications.
Appium For Mac
Stuart Rusell of Intuit has stated a proof of concept called AppiumForMac to help you automate mac apps using the same Appium Selenium WebDriver.
For those of you that don't like video here is the full transcript of my interview with Dan at this year's Selenium Conference in Austin.
Dan's Session at Selenium Conference 2017 in Austin, Texas
Joe: … Excited to be here with us. Here we have the creator of Appium, Dan. He's doing a session on Appium, so Dan can you tell us a bit more what your session is going to be on?
Dan: Cool. Yeah, so Stuart Russell into it and and Yousef Durr of Microsoft and I are going to present on automating desktops on Appium. So it's the next step in the StarDriver vision. We started with Web Driver which automated websites, and then with Appium we sort of generalized it to do mobile applications.
The next step is we're bringing in other kinds of apps. We're going to talk about Windows Support and Mac Support. Windows Support which has almost been fully released but it's in Beta now, and Mac Support which is also in Beta. And then about the StarDriver vision of one protocol to automate all the things, and how we're achieving that.
Joe: Oh, cool.
What is Appium's view of the Automation
Dan: Appium takes a more broad view on it and says: “Well, why have a protocol just to automate one thing?” We feel that automation is similar enough that we might be able to develop one protocol to automate everything, which we refer to currently as the StarDriver Vision.
At Appium, we're working on continuing to generalize the web driver's specifications, so that perhaps one day we might have one protocol to automate all the things. Much further down the line, eventually people will just bring their own implementations to the table, and we won't be doing anything. We'll just be standing around taking credit for it or something.
What is WinAppDriver
Joe: I heard of a WinAppDriver. Is this something to do with Appium?
Dan: Yes, that's the Window implementation for Appium.
Joe: Okay. So I could literally automate a web-based application using Appium. If I had a calculator or a Windows VB6 application …
Dan: A Windows-based application?
Dan: Yes. And it does support some web content. We'll go into specifics in the talk.
Joe: Okay, cool.
Dan: Yes, a full web content hopefully soon on Windows. But it does have some support for it.
Joe: So if someone's familiar with Appium already, how would they be able to leverage this, is it the same technology?
Dan: Yes, it's the same technology. You really need to learn very little other than a different set of capabilities. It's just the same protocol like differently. So less of a learning [inaudible 00:02:06] … and then the Selenium people when they came to Appium.
Automate Windows and Mac apps
Joe: Right, okay. You mentioned it would also work on Mac or Linux based on …
Dan: Mac right now. There exists no implementation for Linux but it's certainly possible to write one.
Joe: All right, cool.
Dan: I just haven't had anyone chip in with that yet.
Joe: Okay, so you'll actually be actively involved in the development of this. I know you've been a little hands-up with Appium.
Dan: Yeah, I wrote the prototype for the Mac implementation and I tried to write a prototype for the Windows one, but some people in Russia wrote a better one, then Microsoft came and wrote their own so when you have the vendor writing it themselves, I think it'll be hard for someone on the outside to do any better than that. That's the approach we're looking for anyway – to eventually have the vendors come in and do all of the implementations and have the protocols be its own thing that we work on together and the tooling around that …
Growth of Appium
Joe: Yup, so when you created Appium did you ever think it would develop to this point where you're actually branching off into …
Dan: Yes and no. I never expected Appium to ever work. Once Appium worked, I thought Windows apps and Mac apps were kind of inevitable. We always sort of had this [inaudible 00:03:07] automation for apps. Jonathan and I joked about like … one day Windows and Mac. We weren't really joking, we really thought that one day this would happen. Why not use this for everything. I never thought Appium would ever become anything, but once that Leaf happened, I assumed … more and more responsible than I used to.
Appium Vs Espresso
Joe: Good. Now I just want to get your opinion on this. You hear more and more about Espresso, and I've been getting to ask a question on what's the difference between Espresso and Appium. I don't know if you're familiar with Espresso …
Dan: Yes, yes
Joe: What would you have used on that?
Dan: For some people, you might want to read about the correct choice, there's a lot of advantages having Appium, and there's also a lot of advantages to going with the Google supply to protocol Espresso, which is shipped with the later versions of Android. If you don't need some of the benefits of Appium, such as compatibility with the Legacy Android devices, one protocol for both iOS and Android and some of the other tooling that comes around that we have … And you have a team that writes Java code, I know the developers, Espresso might be a good choice because you'll have a more tightly coupled set of automation.
But that being said, there are still many benefits that Appium brings to the table. For most people, Appium is still the correct choice. There does exist that new niche developer market who does do their own automation and who wants to use it. Where to Espresso could work well for them and could provide things Appium wouldn't.
Appium has been one of the most solid open-source test automation frameworks during the few past years. And despite significant changes in Appium iOS, it seems that this framework is going (again) full steam ahead. The latest addition is the Appium Desktop tool that enables users to work with Appium on their desktops and use Inspector for yet better analysis of their app. Let’s take a look at how to get Appium Desktop installed and how to work with it.
Appium Desktop is a great new tool for Appium users that actually makes the use of Appium test automation framework yet easier. However, Appium Desktop doesn’t replace any Appium components itself – but it adds great capabilities to work with Appium Server and Appium Inspector to explore your application. Furthermore, it also enhances the way how test scripts can be built and we’re pretty sure this will help many of you with the script creation. Download our Appium ebook to learn best practices, tips & tricks, and more
Appium Desktop for Mac, Windows and Linux
How To Download Appium For Mac Windows 7
Appium Desktop is an open-source application running on Mac OS X, Windows, and Linux operating systems. It combines two essential components of Appium:
- Appium Server: Server instance for enabling testing (and test automation) of apps.
- Appium Inspector: For inspecting UI elements of your app and getting all the details.
It provides a graphical user interface for these two components that make test script creation easy, setting up an Appium test server quickly, and even setting up the whole Appium environment with Appium Desktop installation.
One significant benefit introduced with Appium Desktop is that you don’t need Mac anymore to efficiently develop Appium test scripts. With the help of Appium Desktop, you can use Windows or Linux as well.
How to Get Started
First, download the right package for your platform (Mac, Win, Linux) from Appium Desktop release page. After the download has completed install the package as you install any application on your OS.
Run the application and the following options will be available in the main menu:
Advanced options, such as server address, ports for Android and iOS agents, etc. can be configured here but it’s highly recommended to read product documentation before doing so.
If you want to use local devices, start the Appium Server with preferred configurations and the server console will be launched on the host and port you specified. NOTE! If you use cloud services (such as Bitbar Public Cloud) you don’t need to start Appium Server.
With Appium Desktop you don’t need to work with the command line, but in case you have to or you have integrated your Appium environment with some tools, you can also work with the command line to get things done.
Now, you can click ‘Start New Session’ on console view and this will enable Appium Inspector possibly on the recently launched server. Furthermore, the new window opened enables you to build desired capabilities for an Appium test run/session, as follows:
How To Download Appium For Mac Os
TIP! When drafting desired capabilities for your test, Appium Desktop is capable to return specific desired capabilities that are missing. For example, “testdroid_target”, “testdroid_project”, “testdroid_testrun” etc.
TIP 2! When you have entered your desired capabilities do remember to save those (by clicking Save As…). This is very handy as those desired capabilities will be in use in next sessions with the Appium Desktop (e.g. if you close it your desired capabilities will be removed if not saved).
The Appium Desired Capabilities for your Appium tests, devices and additional configuration is fairly simple, but if you look for more information about how to master desired capabilities take a look at the Appium ebook that provides you plenty of tips and tricks on how to use Appium efficiently.
Appium Inspector provides a graphical user interface tool to inspect your application with the ability to exercise certain interactions for it. Appium Inspector, using XCUITest now as Appium foundation, looks like this with Bitbar Sample App:
When the user clicks any element on screenshot Appium Desktop automatically updates “Selected element” view to reflect with the user’s interactions. After this, users can implement different functions, like a tap, write (send keys), etc.
Are you looking for a comprehensive list of tips and tricks for Appium? Take a look at our best practices, tips and tricks provided with those blogs!