automating microservices: what, where and when...automating microservices: what, where and when...
TRANSCRIPT
![Page 1: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/1.jpg)
AUTOMATING MICROSERVICES:
WHAT, WHERE AND WHEN
Oleksandr RomanovIT Weekend Dnipro 2018
![Page 2: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/2.jpg)
WHO AM I?
• 6+ years in test automation
• QA Automation Lead at Playtika
![Page 3: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/3.jpg)
DICLAIMER
• All opinions are completely my own
• Microservices – backend architecture
• For hardcore code, check =>
![Page 4: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/4.jpg)
The story so far
![Page 5: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/5.jpg)
REGRESSION. RELEASE. REPEAT.
![Page 6: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/6.jpg)
First automated tests…
![Page 7: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/7.jpg)
![Page 8: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/8.jpg)
![Page 9: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/9.jpg)
CROSS BROWSER AUTOMATION
![Page 10: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/10.jpg)
TESTS ON IE
![Page 11: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/11.jpg)
![Page 12: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/12.jpg)
![Page 13: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/13.jpg)
Good old flakiness
![Page 14: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/14.jpg)
MAYBE, API LEVEL TESTING?
![Page 15: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/15.jpg)
CHILL OUT, HERO
![Page 16: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/16.jpg)
HERE COMES
MICROSERVICES!
WINTER IS COMING?
![Page 17: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/17.jpg)
MICROSERVICES?
WHAT THE HELL ARE
![Page 18: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/18.jpg)
API LEVEL TESTING, AGAIN?
![Page 19: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/19.jpg)
— YOUR ARCHITECT
«We need to release each microservice separately and fast».
![Page 20: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/20.jpg)
![Page 21: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/21.jpg)
THE PYRAMIDhttps://martinfowler.com/ar
ticles/microservice-testing/
![Page 22: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/22.jpg)
MICROSERVICES TEST AUTOMATION APPROACH
![Page 23: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/23.jpg)
GUIDE THROUGH THE LEVELS
![Page 24: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/24.jpg)
Unit tests
• Implemented by developers
• Concentrated on positive and corner cases
• Mocking and stubbing are heavily used
![Page 25: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/25.jpg)
Integration tests: what to test
• Persistence: SQL and NoSQL storages
• Gateway: HTTP REST, Messaging, RPC,
etc.
![Page 26: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/26.jpg)
Integration tests: how to test
• In – memory solutions for testing
• Dependencies in docker containers
• Using SQLUnit / NoSQLUnit / scripts for test data
![Page 27: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/27.jpg)
Component tests: what
• Testing main functionality of the microservice
• Testing corner cases if external services are unavailable
![Page 28: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/28.jpg)
Component tests: how to test
• Testing through public / internal API
• Running service locally and / or dependencies in docker containers
Test Containers: https://bit.ly/2KYhc4N
Spring Boot Test Containers: https://bit.ly/2GTc13S
• Mocking out external services: e.g. via WireMock https://bit.ly/2pSFLZb
![Page 29: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/29.jpg)
Contracttests: what
• Testing semantics
• Do not test functionality
![Page 30: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/30.jpg)
![Page 31: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/31.jpg)
Contract tests: example
![Page 32: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/32.jpg)
Contract tests: how
PACT - https://bit.ly/2GUBIAX
Spring Cloud Contract - https://bit.ly/2GYi0Jy
![Page 33: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/33.jpg)
End – to – End tests:
• Cover business flows
• Cover platform dependent cases
• Can be done on API or UI levels
![Page 34: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/34.jpg)
So, what?
![Page 35: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/35.jpg)
One badmicroservice?
![Page 36: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/36.jpg)
![Page 37: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/37.jpg)
Recommendations
• Sam Newman – Building Microservices https://oreil.ly/1pp6qmx
• Martin Fowler – Testing Strategies in Microservices https://bit.ly/2pWi0AA
![Page 38: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/38.jpg)
To sum up:
• Automate each microservice separately
• Run locally as much tests as you can
• End - to - end tests are important too
![Page 39: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture](https://reader035.vdocuments.net/reader035/viewer/2022062919/5ee11a3dad6a402d666c1b39/html5/thumbnails/39.jpg)
Twitter: @al8xrSkype: alex_roma_nov
THANK YOU!