What is our primary use case?
We use this solution for mobile UI automation, and particularly for regression test automation.
We develop complete, end to end test cases, then we automate them and run those test cases in a DevOps process. It's a complete CICD (continuous integration, continuous development) using DevOps methodology.
Our automation job triggers immediately after a successful development build. Upon completion of automated test cases, results are emailed to all stakeholders. This is a completely automated process without any manual intervention.
How has it helped my organization?
This solution has improved our organization in terms of efficiency. We use this tool for one of our mobile applications that supports iOS and Android devices. The application should support all Android devices with OS version 6 and above, whereas the iOS application should be compatible with iOS 9.3 and up. Therefore, it supports multiple OS versions with all of the devices and handsets that are coming to the market.
It becomes very difficult for our regulation team to test the solution, or run their test cases, on all of these platforms and mobile devices. But, with the help of automation, we can create a single script that does so. Not only that, but we can run our tests in a 24/7 model that includes weekends. Our team members cannot work overnight or on the weekend.
This solution continuously generates reports, and the report is the only thing that needs to be analyzed by the testing team. It runs completely flawlessly and seamlessly every day. This makes it very cost effective and productive. That is one of the major benefits for us.
What is most valuable?
Appium is a very good tool because with its help we can automate all of the platforms, Android, iOS, or Windows, and there is a single solution. We can create a single framework for all platforms that can satisfy all of the needs. Being an open source solution it is free of cost.
Otherwise, there are other open source tools for particular platforms, but with the Appium library, we can automate all major platforms.
What needs improvement?
This product is still maturing, so at times there are issues with its stability if your scripts run continuously for more than fifteen to twenty hours. At times, we have witnessed the Appium server stop responding for forty to forty-five minutes. As a result, scripts do not move in this time period. Sometimes the connection resets due to USB or Network issues, which is not an Appium issue.
There is no user interface because it is a complete development solution, and you have to code in Java. I do not see any room to include an interface in the near future, as is the case with other commercial automation tools.
For iOS automation, it is very tedious to install or configure this particular library in your system, and it becomes very difficult to troubleshoot if you are not Mac and Xcode savvy. You require an understanding of the configuration of Xcode projects and you have to troubleshoot a lot of things at times.
Configuration/Installation-wise, there is a lot of room for improvement in this solution, especially for the iOS platform.
For how long have I used the solution?
Two and a half years.
What do I think about the stability of the solution?
Stability-wise, this tool is still maturing. I have seen improvement over the past two years, with every release. I expect that in another year it will be even more stable.
In our experience, if you are running smaller scripts that execute for two or three hours, then this tool is good enough. If, however, your scripts run continuously for twenty or twenty-four hours then the tool give you issues at times. The connection gets reset or the server hangs in between. These things are normally seen after ten or eleven hours.
What do I think about the scalability of the solution?
In terms of scalability, this tool is doing well. We have automated more than five hundred test cases, which run for twenty to twenty-two hours in one go. In that way, it is doing well, although, sometimes there are cases where the Appium server hangs, and the script does not proceed forward. This has to be ironed out.
We do plan to increase the usage of this solution. Right now, our company has a lot of experience and a lot of people are learning this tool, as well as other open source solutions. We do not use any commercial products. In fact, we have a policy of using open source solutions, as they are in demand. There is nothing challenging the capability of this tool right now.
How are customer service and technical support?
Being an open source project, there is no company that specifically supports this tool.
That said, the open source community is quite strong. If you are having any kind of issues, with your solution or your implementation, there are multiple points that are available and you can ask questions. Most of the time you get your resolution in a very quick time, maybe in a day or sometimes a couple of days. In fact, most of the time, with my experience I can say 95% to 98% of the time, I found a solution which helped us.
The open source community includes a large user base who are actively using it and sharing their experience, as well as their implementation solutions, over the net.
Which solution did I use previously and why did I switch?
Before this solution, I only had experience with HPE UFT (Unified functional testing). I, later on, moved to Selenium because we are able to achieve the same results with this open source solution as with any other commercial product, without any one-time or recurring cost for the tool.
Selenium has matured with time and become a stable solution for Web Application automation. More and more clients are preferring Selenium because of the no-cost factor, and as a result, there are good job opportunities available for people who can work on Selenium.
These were the major driving forces for me to move towards the Selenium automation solution.
How was the initial setup?
Installation of this particular tool is tedious, and it gives you a good number of challenges at times. You have to resolve them, troubleshoot them every now and then, and you need the right people. You need a good expert with experience who can help you. It is not possible for a novice user, or any user who is new to the team, to do all of these things. There is a steep learning curve.
In order to use this tool for iOS applications, you have to use Xcode and have to install and create profiling for your development solution. For a user who is new to the system, and perhaps not aware of Xcode or profile creation on a Mac machine, it becomes difficult. The majority of developers use Windows-based development systems. In order to automate iOS applications, we have to use Mac-based machines to provide the operating system.
This means that you need to have some kind of experience with Xcode, or at least some experience with iOS application configuration. These are the skills required in order to set Appium up on your Mac machine and use iOS automation.
A Windows-based system can be used for Android applications, but a Mac machine can be used for both iOS and Android. I rely on Windows for Android, but you are certainly free to work on a Mac machine.
There are six people in our team using this solution on all platforms. I have the role of Automation Architect, and the others are Automation Engineers. We have set up a local cloud environment in our office, and we do everything ourselves.
What about the implementation team?
We deployed this solution ourselves and created our own script for Appium installation on an iOS machine. Instead of individual commands, we have created a BASH script which installs & configures the automation development environment. With this, it is easy to install and configure a system for a new developer who is coming to our team. If you do not have such a script then it is a full-day task to complete the setup and configuration on your iOS machine.
What's my experience with pricing, setup cost, and licensing?
This is an open source solution so it does not cost anything for licensing or otherwise.
Which other solutions did I evaluate?
I had evaluated SeeTest before Appium for mobile solution development, but the customer was not willing to invest in a commercial tool. SeeTest is more stable, mature, and easy to install as compared to Appium, but it comes with a significant cost of almost $80,000 per year (number of licenses that we required). This is the reason we decided to move on with Appium.
What other advice do I have?
This solution is one that you need a little bit of time and patience to learn, but once you learn it, it opens the gate to work on many other similar types of tools or wrappers that are created, keeping Selenium at the core.
Overall, the product is good. On a scale of one to ten, I am only deducting two points because you cannot automate & run the iOS application on the Windows OS. You require Mac machines for iOS automation. Also, installation and configuration are also tedious for new users.
I would rate this solution eight out of ten.