SlideShare a Scribd company logo
1 of 184
Download to read offline
@mogronalol
Simulating APIs for Effective Testing:
(Micro)Service Virtualisation
1
Andrew Morgan
@mogronalol
OpenCredo & Spectolabs
@mogronalol 2
About Me
• Consultant at OpenCredo
• Background mainly with
Java and now Go
• Spectolabs
Andrew Morgan
@mogronalol
@mogronalol 3
Agenda
@mogronalol 3
Agenda
• The problems with operating and testing distributed
systems and microservices
@mogronalol 3
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
@mogronalol 3
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
@mogronalol 3
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
• Data Synchronisation
@mogronalol 3
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
• Data Synchronisation
• Summary
@mogronalol 4
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
• Data Synchronisation
• Summary
@mogronalol
-INFOX
5
Distributed Systems
@mogronalol
Microservices
6
Payment
Company
Booking
Flights
Auth
@mogronalol
Microservices
6
Payment
Company
Booking
Flights
Auth
@mogronalol
A natural evolution...
7
@mogronalol
Challenges…
8
@mogronalol 9
Airline Booking Application
@mogronalol 9
Airline Booking Application
• Microservice architecture
@mogronalol 9
Airline Booking Application
• Microservice architecture
• Integration with third party services
@mogronalol 9
Airline Booking Application
• Microservice architecture
• Integration with third party services
• Integration with legacy internal services
@mogronalol 9
Airline Booking Application
• Microservice architecture
• Integration with third party services
• Integration with legacy internal services
• Heavy resource consumption
@mogronalol 9
Airline Booking Application
• Microservice architecture
• Integration with third party services
• Integration with legacy internal services
• Heavy resource consumption
• A standard CI/CD pipeline
@mogronalol 10
Resources
@mogronalol 10
Resources
Booking
@mogronalol 10
Resources
Booking
Flights
@mogronalol 10
Resources
Booking
Flights
Rewards
@mogronalol 10
Resources
Booking
Flights
Rewards
Payments
@mogronalol 10
Resources
Booking
Flights
Rewards
Payments
Fraud
@mogronalol 10
Resources
Booking
Flights
Rewards
Payments
Fraud
@mogronalol 10
Resources
Booking
Flights
Rewards
Payments
Fraud
@mogronalol 10
Resources
Booking
Flights
Rewards
Payments
Fraud
@mogronalol 10
Resources
Booking
Flights
Rewards
Payments
Fraud
Cost
@mogronalol 11
@mogronalol 12
Licensing
@mogronalol 12
Licensing
Consumer
Producer
@mogronalol 12
Licensing
Consumer
Producer
Third party
@mogronalol 12
Licensing
Consumer
Producer
Consumer
Producer
Third party
@mogronalol 12
Licensing
Consumer
Producer
Consumer
Producer
Third party Cost
@mogronalol 13
Dependency Constraints
@mogronalol 13
Dependency Constraints
Consumer
Producer
@mogronalol 13
Dependency Constraints
Consumer
Producer
@mogronalol 13
Dependency Constraints
Consumer
Producer
Consumer
Producer
@mogronalol 14
Flakey Dependencies
@mogronalol 14
Flakey Dependencies
Consumer
Producer
@mogronalol 14
Flakey Dependencies
Consumer
Producer
Consumer
Producer
@mogronalol 15
Doesn't exist
@mogronalol 15
Doesn't exist
Consumer
?
@mogronalol 16
Non Deterministic
@mogronalol 16
Non Deterministic
Consumer
Booking
Service
@mogronalol 16
Non Deterministic
Consumer
Booking
Service {
“date” : “2013-01-08”,
…
}
@mogronalol 16
Non Deterministic
assertThat(booking.getDate())
.isEqualTo(LocalDate.of(2013,1,8));
Consumer
Booking
Service {
“date” : “2013-01-08”,
…
}
@mogronalol 16
Non Deterministic
assertThat(booking.getDate())
.isEqualTo(LocalDate.of(2013,1,8));
Consumer
Booking
Service {
“date” : “2013-01-08”,
…
}
@mogronalol 16
Non Deterministic
assertThat(booking.getDate())
.isEqualTo(LocalDate.of(2013,1,8));
Consumer
Booking
Service {
“date” : “2016-02-07”,
…
}
@mogronalol 17
Fault Injection
@mogronalol 17
Fault Injection
Consumer
Producer
@mogronalol 17
Fault Injection
Consumer
Producer
Consumer
Producer
@mogronalol 17
Fault Injection
Consumer
Producer
Consumer
Producer
4xx, 5xx, timeouts
@mogronalol 17
Fault Injection
Consumer
Producer
Consumer
Producer
4xx, 5xx, timeouts
Operationally
challenging to trigger
faults
@mogronalol 18
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
• Data Synchronisation
• Summary
@mogronalol 19
Service Virtualisation
@mogronalol 19
Service Virtualisation
• Emulation of real service
@mogronalol 19
Service Virtualisation
• Emulation of real service
• Non-intrusive
@mogronalol 19
Service Virtualisation
• Emulation of real service
• Non-intrusive
• Lightweight - or should be
@mogronalol 20
Service Virtualisation
@mogronalol 20
Service Virtualisation
Consumer
@mogronalol 20
Service Virtualisation
Consumer Producer
@mogronalol 20
Service Virtualisation
Consumer
Virtual
Producer
@mogronalol 21
Creating Data
@mogronalol 21
Creating Data
Consumer
@mogronalol 21
Creating Data
Consumer Producer
@mogronalol 21
Creating Data
Consumer Producer
Service
Virtualisation
Tool
@mogronalol 22
Creating Data
https://github.com/tomakehurst/wiremock
@mogronalol 23
Proxy Mode
@mogronalol 23
Proxy Mode
Consumer
@mogronalol 23
Proxy Mode
Consumer Producer
@mogronalol 23
Proxy Mode
Consumer Producer
Service
Virtualisation
Tool
@mogronalol 24
Webserver / Facade Mode
@mogronalol 24
Webserver / Facade Mode
Consumer
@mogronalol 24
Webserver / Facade Mode
Consumer Producer
@mogronalol 24
Webserver / Facade Mode
Consumer Producer
@mogronalol 24
Webserver / Facade Mode
Consumer Producer
Service
Virtualisation
Tool
@mogronalol 24
Webserver / Facade Mode
Consumer Producer
Service
Virtualisation
Tool
@mogronalol 25
Not Mocking
Service Under Test
Dependant Service
Http
@mogronalol 25
Not Mocking
Service Under Test
Mocking
Dependant Service
Http
@mogronalol 25
Not Mocking
Service Under Test
Mocking
@mogronalol 25
Not Mocking
Service Under Test
Virtual Service
@mogronalol 25
Not Mocking
Service Under Test
Virtual Service
Mocks bleed into the
architectural boundary of your
application
@mogronalol 26
Open Source Tooling
@mogronalol 26
Open Source Tooling
@mogronalol 26
Open Source Tooling
@mogronalol 26
Open Source Tooling
@mogronalol 27
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
• Data Synchronisation
• Summary
@mogronalol 28
Record and replay
@mogronalol 28
Record and replay
Consumer
@mogronalol 28
Record and replay
Consumer
External
Producer
@mogronalol 28
Record and replay
Consumer
External
Producer
Service
Virtualisati
on Tool
@mogronalol 28
Record and replay
Consumer
External
Producer
Service
Virtualisati
on Tool
@mogronalol 29
JUnit Example
@mogronalol 29
JUnit Example
@Test

public void shouldBeAbleToRetrieveABooking() throws URISyntaxException {

// Given

final int bookingId = 1;



// When

final Booking booking = bookingServiceGateway.getBooking(bookingId);



// Then

assertThat(booking.getCustomer()).isEqualTo(“Andrew Morgan”);
assertThat(booking.getDate()).isEqualTo(LocalDate.of(2016,3,1));

}
@mogronalol 29
JUnit Example
@Rule
public HoverflyRule hoverflyRule = HoverflyRule.inCaptureMode(“src/test/
resources/external.json").build();
@Test

public void shouldBeAbleToRetrieveABooking() throws URISyntaxException {

// Given

final int bookingId = 1;



// When

final Booking booking = bookingServiceGateway.getBooking(bookingId);



// Then

assertThat(booking.getCustomer()).isEqualTo(“Andrew Morgan”);
assertThat(booking.getDate()).isEqualTo(LocalDate.of(2016,3,1));

}
@mogronalol 30
JUnit Example
{

"data": [

{

"request": {

"path": "/api/bookings/1",

"method": "GET",

"destination": "www.my-test.com",

"query": null,

"body": ""

},

"response": {

"status": 200,

"body": “{”customer”:”Andrew Morgan", ”date”:
”2016-03-01”}}}”,

"headers": {

"Content-Type": [

"application/json"

]

}

}

}

]

}
@mogronalol 31
JUnit Example
@Test

public void shouldBeAbleToRetrieveABooking() throws URISyntaxException {

// Given

final int bookingId = 1;



// When

final Booking booking = bookingServiceGateway.getBooking(bookingId);



// Then

assertThat(booking.getCustomer()).isEqualTo(“Andrew Morgan”);
assertThat(booking.getDate()).isEqualTo(LocalDate.of(2016,3,1));

}
@Rule
public HoverflyRule hoverflyRule =
HoverflyRule.buildFromClassPathResource(“external.json").build();
@mogronalol 32
Advantages
@mogronalol 32
Advantages
• Isolation
@mogronalol 32
Advantages
• Isolation
• Flaky dependencies
@mogronalol 32
Advantages
• Isolation
• Flaky dependencies
• Rate limiting
@mogronalol 32
Advantages
• Isolation
• Flaky dependencies
• Rate limiting
• Deterministic
@mogronalol 32
Advantages
• Isolation
• Flaky dependencies
• Rate limiting
• Deterministic
• Licensing
@mogronalol 33
Deployment and Infrastructure
@mogronalol 33
Deployment and Infrastructure
Consumer
External
Producer
@mogronalol 33
Deployment and Infrastructure
Consumer
External
Producer
Internal
Producer
Internal
Producer
Internal
Producer
@mogronalol 33
Deployment and Infrastructure
Consumer
Virtual
Service
Virtual
Service
Virtual
Service
Virtual
Service
@mogronalol 34
CLI Example
@mogronalol 34
CLI Example
$ hoverctl start —proxy-port 8080
@mogronalol 34
CLI Example
$ hoverctl start —proxy-port 8080
$ hoverctl import accounts-service-simulation.json
@mogronalol 34
CLI Example
$ hoverctl start —proxy-port 8080
$ hoverctl import accounts-service-simulation.json
$ hoverctl start —proxy-port 8081
@mogronalol 34
CLI Example
$ hoverctl start —proxy-port 8080
$ hoverctl import accounts-service-simulation.json
$ hoverctl start —proxy-port 8081
$ hoverctl import payments-service-simulation.json
@mogronalol 34
CLI Example
$ hoverctl start —proxy-port 8080
$ hoverctl import accounts-service-simulation.json
$ hoverctl start —proxy-port 8081
$ hoverctl import payments-service-simulation.json
$ curl http://www.account-service.com/api/v1/accounts/1 —proxy http://
localhost:8080
[{"name":"foo"}]
@mogronalol 34
CLI Example
$ hoverctl start —proxy-port 8080
$ hoverctl import accounts-service-simulation.json
$ hoverctl start —proxy-port 8081
$ hoverctl import payments-service-simulation.json
$ curl http://www.account-service.com/api/v1/accounts/1 —proxy http://
localhost:8080
[{"name":"foo"}]
$ curl http://www.payment-service.com/api/v1/payments/1 -proxy http://
localhost:8081
[{“amount":"£23.27"}]
@mogronalol 35
@mogronalol 36
Fault Injection
@mogronalol 36
Fault Injection
Consumer
External
Producer
Service
Virtualisation
Tool
@mogronalol 36
Fault Injection
Consumer
External
Producer
Service
Virtualisation
Tool
Middleware
@mogronalol 37
Fault Injection
@mogronalol 38
Advantages
@mogronalol 38
Advantages
• Transparent
@mogronalol 38
Advantages
• Transparent
• Configurable
@mogronalol 38
Advantages
• Transparent
• Configurable
• Operationally simple
@mogronalol 39
Documentation-Driven
@mogronalol 39
Documentation-Driven
Consumer ?
@mogronalol 39
Documentation-Driven
Consumer
@mogronalol 39
Documentation-Driven
Consumer
Transform
@mogronalol
Virtual Service
39
Documentation-Driven
Consumer
Transform
@mogronalol 40
Advantages
@mogronalol 40
Advantages
• Documentation Driven Development
@mogronalol 40
Advantages
• Documentation Driven Development
• Work in Parallel
@mogronalol 41
Agenda
• The problems with operating and testing distributed
systems and microservices
• Overview of Service Virtualisation / Api Simulation
• Improving our Tests
• Data Synchronisation
• Summary
@mogronalol 42
Data Synchronisation Issues
@mogronalol 42
Data Synchronisation Issues
Consumer Virtual
Service
@mogronalol 42
Data Synchronisation Issues
ConsumerConsumer Virtual
Service
@mogronalol 42
Data Synchronisation Issues
ConsumerConsumerConsumer Real Service
@mogronalol 43
Ownership
@mogronalol 43
Ownership
Own Consumer Own Producer Strategy
@mogronalol 43
Ownership
Own Consumer Own Producer Strategy
Integration
Contract Testing
@mogronalol 44
Integration Contract Testing
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 44
Integration Contract Testing
Scheduled
Build
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 44
Integration Contract Testing
Scheduled
Build
Reproduce
Simulations
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 44
Integration Contract Testing
Scheduled
Build
Reproduce
Simulations
Diff
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 44
Integration Contract Testing
Scheduled
Build
Reproduce
Simulations
Diff
Integration Testing
or
Contract Diff
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 44
Integration Contract Testing
Scheduled
Build
Reproduce
Simulations
Diff
No diff?
Integration Testing
or
Contract Diff
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 44
Integration Contract Testing
Scheduled
Build
Reproduce
Simulations
Diff
No diff?
Diff?
Integration Testing
or
Contract Diff
http://martinfowler.com/bliki/IntegrationContractTest.html
@mogronalol 45
Ownership
Own Consumer Own Producer Strategy
Integration
Contract Testing
@mogronalol 45
Ownership
Own Consumer Own Producer Strategy
Integration
Contract Testing
Virtual Service as
First Class Citizen
@mogronalol 46
Virtual Service as First Class Citizen
@mogronalol 46
Virtual Service as First Class Citizen
Run and
Capture
Service Tests
@mogronalol 46
Virtual Service as First Class Citizen
Run and
Capture
Service Tests
Transform to
simulation
@mogronalol 46
Virtual Service as First Class Citizen
Run and
Capture
Service Tests
Transform to
simulation
Publish
Virtual
Service
@mogronalol 46
Virtual Service as First Class Citizen
Run and
Capture
Service Tests
Parse
Contract
Transform to
simulation
Publish
Virtual
Service
@mogronalol 46
Virtual Service as First Class Citizen
Run and
Capture
Service Tests
Parse
Contract
Transform to
simulation
Parse
Documentati
on
Publish
Virtual
Service
@mogronalol 47
Ownership
Own Consumer Own Producer Strategy
Integration
Contract Testing
Virtual Service as
First Class Citizen
@mogronalol 47
Ownership
Own Consumer Own Producer Strategy
Integration
Contract Testing
Consumer Driven
Contract Testing
Virtual Service as
First Class Citizen
@mogronalol 48
Consumer Driven Contract Testing
http://www.martinfowler.com/articles/consumerDrivenContracts.html
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
http://www.martinfowler.com/articles/consumerDrivenContracts.html
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
Implement
Consumer
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
Implement
Consumer
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
Generate
Producer
Contract
Tests
Implement
Consumer
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
Implement
Producer
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
Generate
Producer
Contract
Tests
Implement
Consumer
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
Implement
Producer
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
Generate
Producer
Contract
Tests
Implement
Consumer
Run
Consumer
Contract
Tests
@mogronalol 48
Consumer Driven Contract Testing
Consumer
Defines
Contract
Implement
Producer
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Generate
Producer
Stubs
Generate
Producer
Contract
Tests
Implement
Consumer
Run
Consumer
Contract
Tests
@mogronalol 49
Consumer Driven Contract Testing
http://www.martinfowler.com/articles/consumerDrivenContracts.html
@mogronalol 49
Consumer Driven Contract Testing
Change
producer
http://www.martinfowler.com/articles/consumerDrivenContracts.html
@mogronalol 49
Consumer Driven Contract Testing
Change
producer
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Run
Consumer
Contract
Tests
@mogronalol 49
Consumer Driven Contract Testing
Change
producer
http://www.martinfowler.com/articles/consumerDrivenContracts.html
Run
Consumer
Contract
Tests
@mogronalol 50
Tools
@mogronalol 50
Tools
@mogronalol 50
Tools
@mogronalol 51
Testing Pyramid
End to end
Integration / Service Testing
Unit Testing
@mogronalol 51
Testing Pyramid
End to end
Integration / Service Testing
Unit Testing
Consumer Driven
Contract Testing
@mogronalol 51
Testing Pyramid
End to end
Integration / Service Testing
Unit Testing
Consumer Driven
Contract Testing
@mogronalol 52
Summary
@mogronalol 52
Summary
• Cost reduction from simulated services
@mogronalol 52
Summary
• Cost reduction from simulated services
• Easy deployment of simulations
@mogronalol 52
Summary
• Cost reduction from simulated services
• Easy deployment of simulations
• Less dependant on end to end testing
@mogronalol 52
Summary
• Cost reduction from simulated services
• Easy deployment of simulations
• Less dependant on end to end testing
• Better feedback cycle
@mogronalol
Questions?
53
@mogronalol
https://github.com/mogronalol

More Related Content

Similar to Simulating APIs for Effective Testing: (Micro)Service Virtualisation for the 21st Century

Api Simulation Patterns for Better Testing
Api Simulation Patterns for Better TestingApi Simulation Patterns for Better Testing
Api Simulation Patterns for Better TestingAndrew Morgan
 
Natural born conversion killers - Conversion Jam
Natural born conversion killers - Conversion JamNatural born conversion killers - Conversion Jam
Natural born conversion killers - Conversion JamCraig Sullivan
 
Conversionista : Conversion manager course - Stockholm 20 march 2013
Conversionista : Conversion manager course  - Stockholm 20 march 2013Conversionista : Conversion manager course  - Stockholm 20 march 2013
Conversionista : Conversion manager course - Stockholm 20 march 2013Craig Sullivan
 
Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Anand Bagmar
 
Testing strategies in microservices
Testing strategies in microservicesTesting strategies in microservices
Testing strategies in microservicesGeekNightHyderabad
 
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3Lari Hotari
 
Project backup repository and avoiding requirements creep
Project backup repository and avoiding requirements creepProject backup repository and avoiding requirements creep
Project backup repository and avoiding requirements creepAswin Vijayakumar
 
Eradicate Flaky Tests
Eradicate Flaky TestsEradicate Flaky Tests
Eradicate Flaky TestsAnand Bagmar
 
Supercharging Optimizely Performance by Moving Decisions to the Edge
Supercharging Optimizely Performance by Moving Decisions to the EdgeSupercharging Optimizely Performance by Moving Decisions to the Edge
Supercharging Optimizely Performance by Moving Decisions to the EdgeOptimizely
 
Software Testing for SEO
Software Testing for SEOSoftware Testing for SEO
Software Testing for SEOMichael King
 
Testing RESTful Web Services
Testing RESTful Web ServicesTesting RESTful Web Services
Testing RESTful Web ServicesTechWell
 
Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineSmartBear
 
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...Mike Villiger
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service ArchitectureEduards Sizovs
 
Birmingham JUG Lightweight Microservices with Microprofile and Raspberry PIs
Birmingham JUG Lightweight Microservices with Microprofile and Raspberry PIsBirmingham JUG Lightweight Microservices with Microprofile and Raspberry PIs
Birmingham JUG Lightweight Microservices with Microprofile and Raspberry PIsJean-Louis MONTEIRO
 
Building Outside-in Planning Processes
Building Outside-in Planning ProcessesBuilding Outside-in Planning Processes
Building Outside-in Planning ProcessesLora Cecere
 
Supply Chain Insights Global Summit: Presentation on Outside-in Projects
Supply Chain Insights Global Summit: Presentation on Outside-in ProjectsSupply Chain Insights Global Summit: Presentation on Outside-in Projects
Supply Chain Insights Global Summit: Presentation on Outside-in ProjectsSupplychainInsights
 
Deep Dive into Disaster Recovery in the Cloud
Deep Dive into Disaster Recovery in the CloudDeep Dive into Disaster Recovery in the Cloud
Deep Dive into Disaster Recovery in the CloudBluelock
 
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for AllLegacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for AllMuly Gottlieb
 
EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...
EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...
EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...Isa Vilacides
 

Similar to Simulating APIs for Effective Testing: (Micro)Service Virtualisation for the 21st Century (20)

Api Simulation Patterns for Better Testing
Api Simulation Patterns for Better TestingApi Simulation Patterns for Better Testing
Api Simulation Patterns for Better Testing
 
Natural born conversion killers - Conversion Jam
Natural born conversion killers - Conversion JamNatural born conversion killers - Conversion Jam
Natural born conversion killers - Conversion Jam
 
Conversionista : Conversion manager course - Stockholm 20 march 2013
Conversionista : Conversion manager course  - Stockholm 20 march 2013Conversionista : Conversion manager course  - Stockholm 20 march 2013
Conversionista : Conversion manager course - Stockholm 20 march 2013
 
Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021
 
Testing strategies in microservices
Testing strategies in microservicesTesting strategies in microservices
Testing strategies in microservices
 
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
GGX 2014 Lari Hotari Modular Monoliths with Spring Boot and Grails 3
 
Project backup repository and avoiding requirements creep
Project backup repository and avoiding requirements creepProject backup repository and avoiding requirements creep
Project backup repository and avoiding requirements creep
 
Eradicate Flaky Tests
Eradicate Flaky TestsEradicate Flaky Tests
Eradicate Flaky Tests
 
Supercharging Optimizely Performance by Moving Decisions to the Edge
Supercharging Optimizely Performance by Moving Decisions to the EdgeSupercharging Optimizely Performance by Moving Decisions to the Edge
Supercharging Optimizely Performance by Moving Decisions to the Edge
 
Software Testing for SEO
Software Testing for SEOSoftware Testing for SEO
Software Testing for SEO
 
Testing RESTful Web Services
Testing RESTful Web ServicesTesting RESTful Web Services
Testing RESTful Web Services
 
Accelerating Your Test Execution Pipeline
Accelerating Your Test Execution PipelineAccelerating Your Test Execution Pipeline
Accelerating Your Test Execution Pipeline
 
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
 
Micro Service Architecture
Micro Service ArchitectureMicro Service Architecture
Micro Service Architecture
 
Birmingham JUG Lightweight Microservices with Microprofile and Raspberry PIs
Birmingham JUG Lightweight Microservices with Microprofile and Raspberry PIsBirmingham JUG Lightweight Microservices with Microprofile and Raspberry PIs
Birmingham JUG Lightweight Microservices with Microprofile and Raspberry PIs
 
Building Outside-in Planning Processes
Building Outside-in Planning ProcessesBuilding Outside-in Planning Processes
Building Outside-in Planning Processes
 
Supply Chain Insights Global Summit: Presentation on Outside-in Projects
Supply Chain Insights Global Summit: Presentation on Outside-in ProjectsSupply Chain Insights Global Summit: Presentation on Outside-in Projects
Supply Chain Insights Global Summit: Presentation on Outside-in Projects
 
Deep Dive into Disaster Recovery in the Cloud
Deep Dive into Disaster Recovery in the CloudDeep Dive into Disaster Recovery in the Cloud
Deep Dive into Disaster Recovery in the Cloud
 
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for AllLegacy On Premise Apps Got You Down? No Problem - DevOps for All
Legacy On Premise Apps Got You Down? No Problem - DevOps for All
 
EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...
EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...
EuroStar 2018 Testing in the hundred microservices world, when the pyramid be...
 

Recently uploaded

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Recently uploaded (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

Simulating APIs for Effective Testing: (Micro)Service Virtualisation for the 21st Century