automating microservices: what, where and when...automating microservices: what, where and when...

39
AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018

Upload: others

Post on 03-Jun-2020

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture

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

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

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

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

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

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
Page 8: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture
Page 9: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture

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

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
Page 12: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture
Page 13: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture

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

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

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

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

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

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

— 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
Page 21: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture

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

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

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

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

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

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

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

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

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
Page 31: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture

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

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

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

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

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
Page 37: AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN...AUTOMATING MICROSERVICES: WHAT, WHERE AND WHEN Oleksandr Romanov IT Weekend Dnipro 2018. ... • Microservices –backend architecture

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

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

Twitter: @al8xrSkype: alex_roma_nov

THANK YOU!