What is our primary use case?
We use Appium to test our native applications for iOS and Android. The solution is deployed locally and integrated into our instance of GitHub Actions for CI/CD functionality, so it's a hybrid deployment.
How has it helped my organization?
Using Appium with React Native allows us to reuse our tests for both Android and iOS. If we had to use one tool for Android and another for iOS, we would need two repositories, two tests, and a lot more coding for us to do. I think React Native is the only real solution available nowadays for black box testing the way we prefer to do it.
What is most valuable?
We develop apps using the React Native framework, and Appium integrates well for testing those apps. The Appium automation framework also has good integration with GitHub Actions and plenty of other tools and frameworks, including BrowserStack.
Appium also offers plenty of testing interactions, including swipes and other actions. It provides more interactions compared to other solutions like Selenium HQ, which is another tool we work with.
Appium Inspector is another excellent feature that provides us with a lot of information when dealing with app elements. One of our uses for this is determining which selectors are faster, as we want our apps to be as fast as possible.
What needs improvement?
We previously worked with native applications, and there weren't any good mobile app testing tools. We started working with React Native, which works well with Appium, but it would be good to see better integration; the way elements are displayed can be messy. React Native is very popular nowadays, so it's essential to have that compatibility.
Appium doesn't recognize IDs placed by our developers on nested elements when we use React Native for iOS; it just sees the whole page and one element. We use coordinates to get around this, but it isn't the best system, and nobody in the community has been able to help us.
iOS is also strict in general when it comes to signatures and developer accounts, which creates additional headaches for iOS testing compared to Android. It would be great to see a more streamlined setup for iOS, but that might be more of an Apple issue than an Appium one.
For how long have I used the solution?
We have been using the solution for about four years.
What do I think about the stability of the solution?
The solution is relatively stable, but sometimes tests can become flaky. This could be because of Appium, or due to a cloud-related issue, it isn't exactly clear. It's more stable than it was four years ago, so the product has improved, but there is still room for better stability.
What do I think about the scalability of the solution?
The solution is scalable. Once it's installed on the machines or in the cloud, everyone can run it and I don't think it matters how many staff members use it. We have nine end users in our organization.
How are customer service and support?
Appium is an open-source solution so there isn't a number to call for technical support. However, there is a large user community, so it's easy to find help for issues.
How was the initial setup?
The initial setup is very straightforward; it's just a download with a desktop installation. Setup time depends on your internet, but I would say it takes minutes.
What's my experience with pricing, setup cost, and licensing?
Appium is open source; we can use it for free.
Which other solutions did I evaluate?
We looked at Espresso and XCUITest, which are native testing apps for Android and iOS, respectively, but we can't use those for both in React Native. We carried out a POC for Appium, and there were no viable alternatives. It allows us to use one tool and one repository for both mobile operating systems.
What other advice do I have?
I would rate the solution eight out of ten.
Appium is a great tool, and I recommend it. Working with iOS requires patience, and setup can be somewhat demanding, but there are no such problems with Android. Overall, the solution does what we need it to do.
Which deployment model are you using for this solution?
Hybrid Cloud
Disclosure: I am a real user, and this review is based on my own experience and opinions.