Hello, I am currently looking for a tool for automation tests in order to implement it into our CI/CD pipeline for both web development but also for Android and iOS. I considered Cypress but I need compatibility with Safari. I have knowledge of Java, C#, and JavaScript so the language isn't an issue. Also looked into Nightwatchjs and Puppeteer but found these 3 above more interesting.
My main concern is:
- Browser support - Desktop - needs to support Google Chrome, Safari, Firefox and Microsoft Edge (minimum)
- Browser support - Mobile - Safari and Chrome (minimum)
- App - Android and iOS
If possible i would like to avoid using another tool for mobile (like Appium)
What do you use? What is the one you recommend (even another from the ones mentioned)
Thank you very much for your help!
Hello João Pires,
From my experience using API and Framework tests tools like Selenium Webdriver, CodeCeptJS, and Cypress I never ever see a unique test repository that can work over Web system and Native Mobile app. Many times, it is tried to use the same test suite to two kinds of app, a web, and native mobile app, and then the test flow is mapped using different selectors to both apps and conditional code are add growing the complexity of tests. Definitely, it is not a good practice.
I see great potential in using Cypress to modern web apps running on browsers to desktop or mobile. However, how your second point is to run on mobile browsers like Safari and Chrome may be a good approach will be using a service of Cross Browser as BrowserStack or SourceLabs.
It is important to have clear if is relevant run while tests to many browsers in the same platform. If the goal is to guarantee the e2e flow from an integrated environment, use the most popular browser to users can be enough. (ps: 80% of users use Chromer and just only 30% of users use Safari.)
From a Mobile perspective, I believe that today there are more efficient test approaches to guarantee the behaviors of the components of isolated way than using some technology base on Selenium. As per example an instrumentation-based API using Espresso. Just only using Appium for E2E critical scenarios.