17. Bootstrap
Parallel dev and test
Test Design
Virtual API
Generate
from spec or
with tools
Client Development
Integration Development
18. Isolate
Test execution and
development
Test Execution
(automated or manual)
Development
Component in
dev or test
3rd party APIs
(virtualized)
Other APIs
(virtualized)
Legacy Systems
(virtualized)
• Simulate (un)expected behavior
• Minimize impact on and usage of external systems
• Assert usage of external components
19. Performance
Test
Solution
under test
Load Test Execution
(automated or manual)
3rd party APIs
(virtualized)
Other APIs
(virtualized)
Legacy Systems
(virtualized)
• Simulate (un)expected performance in external systems
• Minimize impact on and usage of external systems
• Triage Performance bottlenecks
21. Enable API evolution… Corp
Corp
Web
app
Corp
App +
API
API
API
API
Device
APP
API
Device
IoT
Device
IoT
Device
API
API
API
22. Three Levels
of API
Virtualization
Static Mocks
Static responses
• Semantically
correct
• No logic
• Payloads
generated from
schemas or
examples
Code or generated
from metadata
Dynamic Mocks
Dynamic responses
• Based on input
• Re-use input in
output
• Scripting
• Data-driven /
Data-generation
• Simulate state
Assertions on
incoming content
Virtual APIs
Runtime behavior simulation
Runtime management
• Redirect traffic to Virtual
APIs dynamically
• Access control
• Deployment
• Test execution
integration
23. API
Virtualization
- do you need
it?
• Local development & basic component
testing
• Requirement for sandbox environment(s)
• Collaborative evolution & testing of APIs with
low number of controlled dependencies
Maybe
• Collaborative evolution & testing of APIs with
high number of complex dependencies
Probably
• Need for simulating functional & non-
functional behavior in complex distributed
solutions
Definitely