Chapter 12. Testing
A QA engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 99999999999 beers. Orders a lizard. Orders –1 beers. Orders a ueicbksjdhd.
First real customer walks in and asks where the bathroom is. The bar bursts into flames, killing everyone.
Brenan Keller, Twitter
Preview
This chapter discusses the kinds of testing that you would perform on a FastAPI site: unit, integration, and full. It features pytest and automated test development.
Web API Testing
You’ve already seen several manual API testing tools as endpoints have been added:
-
HTTPie
-
Requests
-
HTTPX
-
The web browser
And many more testing tools are available:
-
Curl is very well known, although in this book I’ve used HTTPie instead for its simpler syntax.
-
Httpbin, written by the author of Requests, is a free test server that provides many views into your HTTP request.
-
Postman is a full API test platform.
-
Chrome DevTools is a rich toolset, part of the Chrome browser.
These can all be used for full (end-to-end) tests, such as those you’ve seen in the previous chapters. Those manual tests have been useful for quickly verifying code just after it’s typed.
But what if a change that you make later breaks one of those earlier manual tests (a regression)? You don’t want to rerun dozens of tests after every code change. That’s when automated tests become important. The rest of this chapter focuses on these, and how to build them with pytest.
Where to Test
I’ve mentioned the varieties ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access