What is our primary use case?
Our use case for Appium is writing end-to-end tests for mobile applications. We also use it for some data extraction for an end-to-end user desk.
How has it helped my organization?
For the particular use case we used Appium for, we felt that it served our purpose completely, and we haven't had any issues with the Python Client for Appium. Appium has been a good solution for us.
What is most valuable?
I haven't explored other solutions in this particular area, but what I like best about Appium is the fact that it shares functions with Selenium. The extension of Selenium functions allows me to use all of the methods that exist in that domain, and it just makes it simpler for me. I've been using Selenium for some time as well, so using Appium just seems like a natural fit for me.
What needs improvement?
What needs improvement in Appium is its documentation. It needs to give more context on the libraries that Appium is using under the hood. For example, my team is using Appium for Android automation, and a lot of times, I feel that there's functionality that's available through the Appium interface, that exists within the UIAutomator, but there aren't a lot of useful or helpful resources on the internet to find that information, so it would be good to have some linkage with the underlying platform itself.
Another room for improvement in Appium is that it's buggy sometimes. For example, at times, there's a bug in the inspector application that doesn't allow me to save my desired capability set, so it would be nice to get that bug fixed, but overall, Appium is a good tool.
The Touch Actions functionality in Appium also needs improvement. For example, if I want to initiate a scroll on the device that I'm running Appium on, sometimes Swipe works, but in other situations, I have to explicitly use action chains, so I'm not too sure what's the better approach.
What I'd like to see in the next version of Appium is a more intelligent and more intuitive AppiumLibrary, in terms of identifying menus and scroll bars, etc., because right now, I'm unsure if I have to do a lot of export reversals to get to the elements I'm looking for. It would be nice to have some functionality built in, which would allow me to easily get those exports.
For how long have I used the solution?
I've been using Appium for almost two and a half years now.
What do I think about the stability of the solution?
Appium is stable so far, performance-wise. I never had any performance issues with Appium scripts, and I could potentially do as many Appium programs as I want, and I'd only be limited by the compute capacity of the particular machine that I'm running it on, so no issues there.
What do I think about the scalability of the solution?
Appium has decent scalability, and I've primarily used the Appium-Python-Client. What the Appium team could look into would be the possibility of running Appium in a cluster because currently, there's not a lot of in-depth documentation on how to do it.
For example, the way Selenium Hub works with Kubernetes, if Appium can have that functionality of working with Kubernetes, then that would ensure the greatest scalability for Appium.
How are customer service and support?
I've never had to reach out to the Appium technical support team. I'm not even aware of the support channels for Appium, but I haven't had to reach out ever.
Which solution did I use previously and why did I switch?
I wasn't sure of what other solutions existed out there. I just came across Appium, and I thought that Appium suits my use case, and it's open source, so that helps.
How was the initial setup?
The initial setup for Appium wasn't as straightforward. I was an individual contributor that pitched this idea to my organization about using Appium, and I was solely responsible for researching it, writing code, then deploying it. It wasn't too straightforward, but in the end, I was able to get it done.
What about the implementation team?
I did the deployment of Appium all by myself.
What was our ROI?
There were implicit monetary benefits that have come from our use of Appium, so ROI wasn't explicit. We got cost savings, reductions in downtime, stability, etc., from using Appium, which translates to ROI.
What's my experience with pricing, setup cost, and licensing?
I'm unsure if there's any cost associated with Appium. I got the free package which includes the server GUI application and the inspector application, and it was free to download, and that's all I need to get my work done.
I'm not aware of any additional costs associated with the tool. Essentially, if you want to run Appium in a production environment, you'll need to hook it up with an emulation service, and though that's outside the scope, that has to tie and deliver the entire solution.
What other advice do I have?
I'm using the Appium-Python-Client version 2.1.2.
In my company, between four to five people use Appium.
The number of people required to maintain Appium depends on the number of tests you've written. In my company, a single person can maintain it.
Right now, Appium is being used pretty extensively within the company. My team runs and tests four to five different applications, and that list will be extended, so usage of Appium will go up in the future. It's not going to go down.
The advice I would give to anyone on Appium for the first time is to look into the underlying automation, for example, the UIAutomator for testing. I would urge you to also look into the different functionalities offered by the base automation and essentially use those features provided by the base automation within that context because that's going to give you the biggest branch of data.
My rating for Appium is seven out of ten, based on the work I'm doing on it.
My company is a customer of Appium.
Which deployment model are you using for this solution?
Public Cloud
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Amazon Web Services (AWS)