In my experience, my top 3 the following have worked:
CodeceptJS - for those with a javascript background, codeceptJS is a great UI framework with a syntax that is easy to learn. The frame work can be adapted for customized usage or with other libraries.
KATALON - written in Groovy, this framework is hands-down my favorite in terms of reliability and ease-of-use. I came upon it while researching an automation test solution for my company.
- Can it test cross-browser? YES
- Can it test on mobile devices? YES
- Can it test web services (API)? YES
- Does it take screenshots and post reports? YES & YES
- Can it run in a CI? YES
- Can it work with GitHub ? YES
- Can others collaborate to a project? YES
Having previous experience with similar proprietary testing solutions written in Jasmine, adapting what I learned was effortless. The tutorials are intuitive and the fact that you can even employ javascript within makes this a robust platform.
Python – I have not yet found an out-of-the box solution for anything written in Python, but I’ve written custom tests that have proven super-reliable and quick to run. My learnings for Python are in their infancy, but I have found using a lot of success with http://selenium-python.readthedocs.io/index.html
For API tests, Postman and FrisbyJS have been a godsend.