Chapter 1. Testing microservices
Figure 1.1. A monolithic application handles view, business, and persistence logic for multiple domains.
Figure 1.2. Scaling a monolith means multiple teams have to work in the same codebase.
Figure 1.3. Services use different databases for different domains.
Figure 1.4. During normal traffic, the number of lanes and speed limit define throughput and velocity.
Figure 1.5. Having fewer upstream lanes increases congestion.
Figure 1.6. Centralized QA processes recouple releases together, causing a bottleneck.
Figure 1.7. Independent testing works to avoid release congestion.
Figure 1.8. End-to-end testing introduces several problems of coordination.
Figure 1.9. Testing using service virtualization
Figure 1.10. Service virtualization supports a standard unit testing pattern.
Figure 1.11. Using persistent test data from a data store
Figure 1.12. Capturing real traffic for later replay
Figure 1.13. Configuring virtual services with a simple mountebank imposter
Figure 1.14. Matching a request to a response with mountebank
Figure 1.15. Response generation in mountebank using predicates and responses in stubs
Chapter 2. Taking mountebank for a test drive
Figure 2.1. Your reference architecture for exploring mountebank
Figure 2.2. Breaking down the HTTP request for products
Figure 2.3. The response from the product catalog
Figure 2.4. Adding a query parameter to an HTTP request
Figure 2.5. How mountebank views an HTTP request