Automating and Testing a REST API Paperback Edition
TLDR; My new book Automating and Testing a REST API is out in paperback on Amazon.
It has been out as an ebook since January but I wanted it to:
- Settle down
- Receive some comments
- Proof read it gradually over time
And I’m glad I did.
Based on comments I added three or four new chapters to go beyond the set of topics that a Case Study could provide and the book now has generic information on:
- Serialising and Deserialising to/from JSON and XML with REST Assured
- Overview of HTTP and REST Technology
This makes it more suitable for beginners and has more information to allow you to apply the lessons learned in your own projects.
Why A Case Study?
I wanted to write a Case Study because it shows the actual code and techniques in action on a real system.
I use Tracks in the book as the application under test - this is an open source application for time management and productivity. This makes it richer in functionality than the book needs which provides plenty of opportunities for follow up learning as you apply the techniques in the book to the application on your own.
A Case Study is also time-bound, which means that it represents a valid set of information and topics against a particular version - if you download that particular version of Tracks then the code and examples work out of the box.
A Case Study allows me to show workaround for real world issues e.g.:
- bypassing system bugs to allow creating users when the API doesn’t work
- simple ways of generating test data
Also, it shows the flow of the testing process so I move from:
- Manually interacting with the application to learn it
- Inspecting the Web Traffic to identify if the API is used
- Scoping out functionality to build a test coverage list
- Using the documentation examples in cURL
- Using “App as API” (bypassing both GUI and API) to create users
- Using the API via GUI Client Tools
- Creating simple code to create Test Data to support manual interaction
- Automating with REST Assured
- Building abstraction layers to make the automating code easier to work with
Just as I was about to go to press with the book. Bitnami, whom I was recommending as the main source for a VM for Tracks, discontinued the VM. So I was forced to rewrite one of the chapters.
This was actually a good thing as it means that the book can remain stable, and I will use the book’s support page as a place for adding updates on how to install the software, and will add more videos there over time showing little nuances and asking questions.
This makes the book ‘slightly more alive’ as the text actively encourages the reader to use the support page and that is now an official extension to the book, rather than just an errata page.
This has resulted in a slim, but still 260+ page book which is pretty dense with examples and tool coverage. A book which I have next to me as I automate REST APIs because it is currently my reference guide for cURL and REST Assured.
- all code examples and Postman collections are on GitHub at github.com/eviltester/tracksrestcasestudy
- a support page with bonus videos showing examples from the book. I also add links to other useful sites, and instructions on how to install Tracks.
- because the book was originally published on leanpub there is an easily accessible preview of the book which has almost a quarter of the book in it. A 70 page pdf sample is also available.
Should you buy it?
I have found it a useful book to both write, read and refer to as I test and automate REST APis.
I’ve priced the book low because I want it to be affordable to as many people as possible.
If you are not sure yet then I recommend that you:
- Read the blurb page, which also has links to positive reviews (and these reviews were written before the extra content was added)
- Have a look at the Table of Contents to see what the book covers
- Read the Sample
- Watch some of the YouTube videos on the support page
- Read the supplied source code and see if we cover enough material.
This is not the end of my writing, teaching and experimenting with REST APIs so if you have anything you’d like me to cover in the future then do let me know.