Serenity BDD is a library that makes it easier to write high-quality automated acceptance tests, with powerful reporting and living documentation features. It has strong support for both web testing with Selenium, and API testing using RestAssured.
Serenity strongly encourages good test automation design, and supports several design patterns, including classic Page Objects, the newer Lean Page Objects/Action Classes approach, and the more sophisticated and flexible Screenplay pattern.