If requests.Session() can handle cookies and does almost everything that app.test_client() does. Then why use the app.test_client()?
test_client is already prebuilt into flask, this makes it easier for people to quickly test their programs. Both the requests utility and test_client server the same functionality, so the usage is just based on personal preference.
Why use Flask's app.test_client() over requests.Session() for testing