SlideShare a Scribd company logo
SERVERLESSI N T E S T A U T O M AT I O N
2 0 1 8 O l e k s a n d r K h o t e m s k y i h t t p : / / x o t a b u 4 . g i t h u b . i o
Independent Contractor,
Software Developer Engineer in Test
Hello!
I Am Oleksandr Khotemskyi
Contacts: xotabu4.github.io
Test automation meets serverless
What is serverless?
Serverless architecture highlights
New world order?
Evolution of software architecture principles and programming styles
What is serverless?
1
Evolution of servers: Bare Metal
Evolution of servers: Virtualization
Evolution of servers: Containers
Evolution of servers: Serverless
You will fall in love or hate forever
Serverless architecture highlights
2
In a nutshell
• Code snippets
• Deployed to cloud
• Executed in response to some event
• Scaled on demand
• Costs nothing when idle
Serverless is using servers!
Load
Balancer
Function
invocations
requests
Nodes
Controller
Your code runs
according to
your logic
You will get
execution result
in HTTP
response
Invoke. For example -
just by sending HTTP
request
Upload to your
FaaS provider
Usage flow
Wrap your code
to special
“handler”
You don’t have single point of
failure. In case errors - only one
invocation is affected
Stability
Automatically start thousands and
millions of your code copies
Instant scaling
Just zip your code and upload. No
deploying to thousands of servers
with complex update process
Low deploy complexity
You don’t need to think about
hardware. Provider will automatically
add/remove machines for you
No servers managing
You do not pay for your idle
computer
No underconsumption
No race conditions, no multithreading.
Function is small piece of code that easy
to read. Developers are focusing on
business requirements
Simple developing
Benefits
Old solutions does not work
anymore. And again - lock to
vendor
Monitoring
There might be delay in
starting fresh deployed code
Warming up
Requires new approaches in
setting up secure backend
Security
Harder to debug, since your
code runs quickly, and not
clear where exactly
Debug
All communication is done
thru network (HTTP), which
is not the fastest way
Latency
Usually migrating from one
FaaS provider to another is
hard
Vendor lock
Tricky parts
AWS Lambda PRICE
• You pay only when your code is running
• Pricing calculated for megabytes/second
• Huge memory consumption - more expensive
• Long running code - more expensive
• Services usually offer free amount (AWS - 1 million
calls)
Table 1
Memory
(MB)
Free tier
seconds per
month
Price per 100ms
($)
128 3,200,000 0.000000208
512 800,000 0.000000834
1024 400,000 0.000001667
2048 200,000 0.000003334
3008 136,170 0.000004897
Best friends forever
Test automation meets serverless
3
Tests should be independent
one from another
Serverless architecture is absolutely stateless by
its nature. As your tests also should be. Each your
test runs in separate isolated environment.
Potentially even pre/postconditions can be isolated
Tests should run as quickly
as possible
• Each your single test CPU/RAM consumption won’t affect others
because of isolation (noticeable on huge test numbers)
• You can potentially have thousands and millions of threads. Your
test execution will take time of longest running test
Tests should be stable
• Serverless allows to avoid running code locally
• Different code versions can be used
• Retrying test - is just recursive invoking function by itself
• Clean runtime environment for each test gives additional stability
• Executor issues does not affect whole test run
Tests should be executed as
often as possible
• No limits on tests execution frequency. Single execution is cheap
• With unlimited parallelization thats possible to start tests for even
smallest code changes. Or even for many changes simultaneously
• Possible to run tests for multiple environments in the same time
• Running tests while developing won’t block your execution
Bright future of test automation. But even sun has sunspots
New world order?
3
Reporting on huge scale - Report Portal
Allure
Test runners
• Existing test runners were not intended for this tricks
• Possible execution flow can be as follows
Sending link to
report as final step
Tests are running,
and reporting
results to “Report
Portal”
Multiple recursive
invoke with test
names that will be
used for GREP
Invoke function-starter
that parses all tests, and
detects tests that should
be run
API tests
Small size of project
Simple environment
Test runner should be updated
This is looks like best way to start
using serverless for tests
Quick start, fast execution
!
Should not require special config
Performance tests as a bonus
• With theoretically unlimited test
threads, we can do huge load to Site-
Under-Test
• This can be used to see application
performance issues
• Bonus - reusing UI or API tests (or
both) for performance measurements
FaaS
Test
Test
Test
Test
Test
Test
Test
Test
Test
Test
Test
Test
Test
Test
Test
Test
Test
Test
Test Test Test
Test Test Test
Test Test Test
Test Test Test
Test
Test
Test
Test
Test
Test
Test Test Test
UI tests
Size of project can be big
Complicated environment
Test runner should be updated
Notice that some cloud providers might have function execution
timeout! Your test cannot run longer than it
Slow start, slow execution
!
Requires separate test farm cluster OR
start Chrome Headless inside function itself
!
!
!
!
Unit tests
Size of project usually big
Simple environment
Test runner should be updated
Potentially HTTP requests latency might be bigger
than test execution itself. Grouping by bigger chunks
help
Fast start, fast execution
!
Does not require some special config
!
More to read
Functional programming: https://habr.com/post/142351/
Code with lambda-selenium usage (Java, Node): https://github.com/blackboard/lambda-selenium
Framework for building serverless applications: https://serverless.com/framework/
WebdriverIO lambda runner: https://github.com/webdriverio/webdriverio/tree/master/packages/wdio-lambda-
runner
Old, good, wikipedia: https://en.wikipedia.org/wiki/Serverless_computing
Martin Fowler about serverless: https://martinfowler.com/articles/serverless.html
Thanks!
You can find me at: xotabu4.github.io
Any questions?

More Related Content

What's hot

Load-testing 101 for Startups with Artillery.io
Load-testing 101 for Startups with Artillery.ioLoad-testing 101 for Startups with Artillery.io
Load-testing 101 for Startups with Artillery.io
Hassy Veldstra
 
BlazeMeter Presents at the High Performance Drupal Meetup
BlazeMeter Presents at the High Performance Drupal MeetupBlazeMeter Presents at the High Performance Drupal Meetup
BlazeMeter Presents at the High Performance Drupal Meetup
BlazeMeter
 
Zero to Test Driven Infrastructure
Zero to Test Driven Infrastructure Zero to Test Driven Infrastructure
Zero to Test Driven Infrastructure
Mike Rosado, DevOps, CSM®, CASM™
 
Continuous Integration as a Way of Life
Continuous Integration as a Way of LifeContinuous Integration as a Way of Life
Continuous Integration as a Way of Life
Melissa Benua
 
Continuous Integration on AWS
Continuous Integration on AWSContinuous Integration on AWS
Continuous Integration on AWS
Petar Petrov
 
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming -  ITProDevConnections 2012 (English)Parallel and Asynchronous Programming -  ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Panagiotis Kanavos
 
ECS19 - Ingo Gegenwarth - Running Exchange in large environment
ECS19 - Ingo Gegenwarth -  Running Exchangein large environmentECS19 - Ingo Gegenwarth -  Running Exchangein large environment
ECS19 - Ingo Gegenwarth - Running Exchange in large environment
European Collaboration Summit
 
Manage your environment with DSC
Manage your environment with DSCManage your environment with DSC
Manage your environment with DSC
Gian Maria Ricci
 
Continuous database deployment
Continuous database deploymentContinuous database deployment
Continuous database deployment
Mike (Michael) Acord
 
Serverless testing-serverless-sydney-20181018
Serverless testing-serverless-sydney-20181018Serverless testing-serverless-sydney-20181018
Serverless testing-serverless-sydney-20181018
Rowan Udell
 
Speed up your Serverless development flow
Speed up your Serverless development flowSpeed up your Serverless development flow
Speed up your Serverless development flow
Efi Merdler-Kravitz
 
Craftsmanship Workshop: Coding Kata
Craftsmanship Workshop: Coding KataCraftsmanship Workshop: Coding Kata
Craftsmanship Workshop: Coding Kata
Michael Ibarra
 
How to practice TDD without shooting yourself in the foot
How to practice TDD without shooting yourself in the footHow to practice TDD without shooting yourself in the foot
How to practice TDD without shooting yourself in the foot
Dennis Doomen
 
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce LabsHow To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
Sauce Labs
 
Serverless in java Lessons learnt
Serverless in java Lessons learntServerless in java Lessons learnt
Serverless in java Lessons learnt
Krzysztof Pawlowski
 
MongoDB World 2018: Tutorial - MongoDB Meets Chaos Monkey
MongoDB World 2018: Tutorial - MongoDB Meets Chaos MonkeyMongoDB World 2018: Tutorial - MongoDB Meets Chaos Monkey
MongoDB World 2018: Tutorial - MongoDB Meets Chaos Monkey
MongoDB
 
Elm - Could this be the Future of Web Dev?
Elm - Could this be the Future of Web Dev?Elm - Could this be the Future of Web Dev?
Elm - Could this be the Future of Web Dev?
David Hoerster
 
Acquia presented at MassTLC event on automated testing
Acquia presented at MassTLC event on automated testingAcquia presented at MassTLC event on automated testing
Acquia presented at MassTLC event on automated testing
MassTLC
 
Extending Continuous Integration
Extending Continuous IntegrationExtending Continuous Integration
Extending Continuous Integration
Johannes Brodwall
 
Sam Guckenheimer - Moving to One Engineering System
Sam Guckenheimer - Moving to One Engineering SystemSam Guckenheimer - Moving to One Engineering System
Sam Guckenheimer - Moving to One Engineering System
WinOps Conf
 

What's hot (20)

Load-testing 101 for Startups with Artillery.io
Load-testing 101 for Startups with Artillery.ioLoad-testing 101 for Startups with Artillery.io
Load-testing 101 for Startups with Artillery.io
 
BlazeMeter Presents at the High Performance Drupal Meetup
BlazeMeter Presents at the High Performance Drupal MeetupBlazeMeter Presents at the High Performance Drupal Meetup
BlazeMeter Presents at the High Performance Drupal Meetup
 
Zero to Test Driven Infrastructure
Zero to Test Driven Infrastructure Zero to Test Driven Infrastructure
Zero to Test Driven Infrastructure
 
Continuous Integration as a Way of Life
Continuous Integration as a Way of LifeContinuous Integration as a Way of Life
Continuous Integration as a Way of Life
 
Continuous Integration on AWS
Continuous Integration on AWSContinuous Integration on AWS
Continuous Integration on AWS
 
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming -  ITProDevConnections 2012 (English)Parallel and Asynchronous Programming -  ITProDevConnections 2012 (English)
Parallel and Asynchronous Programming - ITProDevConnections 2012 (English)
 
ECS19 - Ingo Gegenwarth - Running Exchange in large environment
ECS19 - Ingo Gegenwarth -  Running Exchangein large environmentECS19 - Ingo Gegenwarth -  Running Exchangein large environment
ECS19 - Ingo Gegenwarth - Running Exchange in large environment
 
Manage your environment with DSC
Manage your environment with DSCManage your environment with DSC
Manage your environment with DSC
 
Continuous database deployment
Continuous database deploymentContinuous database deployment
Continuous database deployment
 
Serverless testing-serverless-sydney-20181018
Serverless testing-serverless-sydney-20181018Serverless testing-serverless-sydney-20181018
Serverless testing-serverless-sydney-20181018
 
Speed up your Serverless development flow
Speed up your Serverless development flowSpeed up your Serverless development flow
Speed up your Serverless development flow
 
Craftsmanship Workshop: Coding Kata
Craftsmanship Workshop: Coding KataCraftsmanship Workshop: Coding Kata
Craftsmanship Workshop: Coding Kata
 
How to practice TDD without shooting yourself in the foot
How to practice TDD without shooting yourself in the footHow to practice TDD without shooting yourself in the foot
How to practice TDD without shooting yourself in the foot
 
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce LabsHow To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
How To Combine Back-End 
 & Front-End Testing with BlazeMeter & Sauce Labs
 
Serverless in java Lessons learnt
Serverless in java Lessons learntServerless in java Lessons learnt
Serverless in java Lessons learnt
 
MongoDB World 2018: Tutorial - MongoDB Meets Chaos Monkey
MongoDB World 2018: Tutorial - MongoDB Meets Chaos MonkeyMongoDB World 2018: Tutorial - MongoDB Meets Chaos Monkey
MongoDB World 2018: Tutorial - MongoDB Meets Chaos Monkey
 
Elm - Could this be the Future of Web Dev?
Elm - Could this be the Future of Web Dev?Elm - Could this be the Future of Web Dev?
Elm - Could this be the Future of Web Dev?
 
Acquia presented at MassTLC event on automated testing
Acquia presented at MassTLC event on automated testingAcquia presented at MassTLC event on automated testing
Acquia presented at MassTLC event on automated testing
 
Extending Continuous Integration
Extending Continuous IntegrationExtending Continuous Integration
Extending Continuous Integration
 
Sam Guckenheimer - Moving to One Engineering System
Sam Guckenheimer - Moving to One Engineering SystemSam Guckenheimer - Moving to One Engineering System
Sam Guckenheimer - Moving to One Engineering System
 

Similar to Oleksandr Khotemskyi - Serverless architecture and how to apply it in Automation Testing

Tools. Techniques. Trouble?
Tools. Techniques. Trouble?Tools. Techniques. Trouble?
Tools. Techniques. Trouble?
Testplant
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
Stuart (Pid) Williams
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
Amazon Web Services
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - Talk
Matthias Noback
 
Ssl Accelerator Test Bench
Ssl Accelerator Test BenchSsl Accelerator Test Bench
Ssl Accelerator Test Bench
Rijksoverheid
 
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
Amazon Web Services
 
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Startupfest
 
AWS Observability Made Simple
AWS Observability Made SimpleAWS Observability Made Simple
AWS Observability Made Simple
Luciano Mammino
 
Testing for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration MondayTesting for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration Monday
BizTalk360
 
Improving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific LanguageImproving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific Language
Dr. Spock
 
Tech Talk on Cloud Computing
Tech Talk on Cloud ComputingTech Talk on Cloud Computing
Tech Talk on Cloud Computing
ITviec
 
Tech trends 2018 2019
Tech trends 2018 2019Tech trends 2018 2019
Tech trends 2018 2019
Johan Norm
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Amazon Web Services
 
Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017
Amazon Web Services
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
Amazon Web Services
 
Testing Below the Application
Testing Below the ApplicationTesting Below the Application
Testing Below the Application
Ash Winter
 
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
Amazon Web Services Korea
 
Building Serverless Web Applications - DevDay Los Angeles 2017
Building Serverless Web Applications - DevDay Los Angeles 2017Building Serverless Web Applications - DevDay Los Angeles 2017
Building Serverless Web Applications - DevDay Los Angeles 2017
Amazon Web Services
 
What's New in .Net 4.5
What's New in .Net 4.5What's New in .Net 4.5
What's New in .Net 4.5
Malam Team
 
Aws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaAws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon Elisha
Helen Rogers
 

Similar to Oleksandr Khotemskyi - Serverless architecture and how to apply it in Automation Testing (20)

Tools. Techniques. Trouble?
Tools. Techniques. Trouble?Tools. Techniques. Trouble?
Tools. Techniques. Trouble?
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
 
Getting Started with Serverless Architectures
Getting Started with Serverless ArchitecturesGetting Started with Serverless Architectures
Getting Started with Serverless Architectures
 
Advanced web application architecture - Talk
Advanced web application architecture - TalkAdvanced web application architecture - Talk
Advanced web application architecture - Talk
 
Ssl Accelerator Test Bench
Ssl Accelerator Test BenchSsl Accelerator Test Bench
Ssl Accelerator Test Bench
 
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
AWS re:Invent 2016: Getting Started with Serverless Architectures (CMP211)
 
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
Jeremy Edberg (MinOps ) - How to build a solid infrastructure for a startup t...
 
AWS Observability Made Simple
AWS Observability Made SimpleAWS Observability Made Simple
AWS Observability Made Simple
 
Testing for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration MondayTesting for Logic App Solutions | Integration Monday
Testing for Logic App Solutions | Integration Monday
 
Improving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific LanguageImproving Batch-Process Testing Techniques with a Domain-Specific Language
Improving Batch-Process Testing Techniques with a Domain-Specific Language
 
Tech Talk on Cloud Computing
Tech Talk on Cloud ComputingTech Talk on Cloud Computing
Tech Talk on Cloud Computing
 
Tech trends 2018 2019
Tech trends 2018 2019Tech trends 2018 2019
Tech trends 2018 2019
 
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
Using AWS to Build a Scalable Big Data Management & Processing Service (BDT40...
 
Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017Building Serverless Web Applications - DevDay Austin 2017
Building Serverless Web Applications - DevDay Austin 2017
 
Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
 
Testing Below the Application
Testing Below the ApplicationTesting Below the Application
Testing Below the Application
 
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵 [AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
[AWS Dev Day] 실습워크샵 | Amazon EKS 핸즈온 워크샵
 
Building Serverless Web Applications - DevDay Los Angeles 2017
Building Serverless Web Applications - DevDay Los Angeles 2017Building Serverless Web Applications - DevDay Los Angeles 2017
Building Serverless Web Applications - DevDay Los Angeles 2017
 
What's New in .Net 4.5
What's New in .Net 4.5What's New in .Net 4.5
What's New in .Net 4.5
 
Aws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaAws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon Elisha
 

More from Web Tech Fun

Yevtushenko Alex - Microservices platform: transformation of Monolith.
Yevtushenko Alex - Microservices platform: transformation of Monolith.Yevtushenko Alex - Microservices platform: transformation of Monolith.
Yevtushenko Alex - Microservices platform: transformation of Monolith.
Web Tech Fun
 
Taras Slipets - Full-stack, Full-run, Full-test: pain reduction in practice
Taras Slipets - Full-stack, Full-run, Full-test: pain reduction in practiceTaras Slipets - Full-stack, Full-run, Full-test: pain reduction in practice
Taras Slipets - Full-stack, Full-run, Full-test: pain reduction in practice
Web Tech Fun
 
Denys iaremenko - Automation for mobile applications: WHYs and HOWs.
Denys iaremenko - Automation for mobile applications: WHYs and HOWs.Denys iaremenko - Automation for mobile applications: WHYs and HOWs.
Denys iaremenko - Automation for mobile applications: WHYs and HOWs.
Web Tech Fun
 
Богдан Отводенко - Модульные сетки без хаков CSS Grid Layout
Богдан Отводенко - Модульные сетки без хаков CSS Grid LayoutБогдан Отводенко - Модульные сетки без хаков CSS Grid Layout
Богдан Отводенко - Модульные сетки без хаков CSS Grid Layout
Web Tech Fun
 
Алексей Кулаков - Современные возможности ES-2015 (Promise, Generators, Proxy)
Алексей Кулаков - Современные возможности ES-2015 (Promise, Generators, Proxy)Алексей Кулаков - Современные возможности ES-2015 (Promise, Generators, Proxy)
Алексей Кулаков - Современные возможности ES-2015 (Promise, Generators, Proxy)
Web Tech Fun
 
Владимир Логвинов - Rest-Assured - легкий способ автоматизации тестирования REST
Владимир Логвинов - Rest-Assured - легкий способ автоматизации тестирования RESTВладимир Логвинов - Rest-Assured - легкий способ автоматизации тестирования REST
Владимир Логвинов - Rest-Assured - легкий способ автоматизации тестирования REST
Web Tech Fun
 
Евгений Самоненко - Практическая оптимизация сервер сайд современные реалии
Евгений Самоненко - Практическая оптимизация сервер сайд современные реалииЕвгений Самоненко - Практическая оптимизация сервер сайд современные реалии
Евгений Самоненко - Практическая оптимизация сервер сайд современные реалии
Web Tech Fun
 
Антон Немцев - Что нам стоит дом построить
Антон Немцев - Что нам стоит дом построитьАнтон Немцев - Что нам стоит дом построить
Антон Немцев - Что нам стоит дом построить
Web Tech Fun
 
Александр Бадзым - CSS Переменные — настало ваше время!
Александр Бадзым - CSS Переменные — настало ваше время!Александр Бадзым - CSS Переменные — настало ваше время!
Александр Бадзым - CSS Переменные — настало ваше время!
Web Tech Fun
 
Axel Nordfeldt (Beetroot Academy) - IT as a social instrument
Axel Nordfeldt (Beetroot Academy) - IT as a social instrumentAxel Nordfeldt (Beetroot Academy) - IT as a social instrument
Axel Nordfeldt (Beetroot Academy) - IT as a social instrument
Web Tech Fun
 

More from Web Tech Fun (10)

Yevtushenko Alex - Microservices platform: transformation of Monolith.
Yevtushenko Alex - Microservices platform: transformation of Monolith.Yevtushenko Alex - Microservices platform: transformation of Monolith.
Yevtushenko Alex - Microservices platform: transformation of Monolith.
 
Taras Slipets - Full-stack, Full-run, Full-test: pain reduction in practice
Taras Slipets - Full-stack, Full-run, Full-test: pain reduction in practiceTaras Slipets - Full-stack, Full-run, Full-test: pain reduction in practice
Taras Slipets - Full-stack, Full-run, Full-test: pain reduction in practice
 
Denys iaremenko - Automation for mobile applications: WHYs and HOWs.
Denys iaremenko - Automation for mobile applications: WHYs and HOWs.Denys iaremenko - Automation for mobile applications: WHYs and HOWs.
Denys iaremenko - Automation for mobile applications: WHYs and HOWs.
 
Богдан Отводенко - Модульные сетки без хаков CSS Grid Layout
Богдан Отводенко - Модульные сетки без хаков CSS Grid LayoutБогдан Отводенко - Модульные сетки без хаков CSS Grid Layout
Богдан Отводенко - Модульные сетки без хаков CSS Grid Layout
 
Алексей Кулаков - Современные возможности ES-2015 (Promise, Generators, Proxy)
Алексей Кулаков - Современные возможности ES-2015 (Promise, Generators, Proxy)Алексей Кулаков - Современные возможности ES-2015 (Promise, Generators, Proxy)
Алексей Кулаков - Современные возможности ES-2015 (Promise, Generators, Proxy)
 
Владимир Логвинов - Rest-Assured - легкий способ автоматизации тестирования REST
Владимир Логвинов - Rest-Assured - легкий способ автоматизации тестирования RESTВладимир Логвинов - Rest-Assured - легкий способ автоматизации тестирования REST
Владимир Логвинов - Rest-Assured - легкий способ автоматизации тестирования REST
 
Евгений Самоненко - Практическая оптимизация сервер сайд современные реалии
Евгений Самоненко - Практическая оптимизация сервер сайд современные реалииЕвгений Самоненко - Практическая оптимизация сервер сайд современные реалии
Евгений Самоненко - Практическая оптимизация сервер сайд современные реалии
 
Антон Немцев - Что нам стоит дом построить
Антон Немцев - Что нам стоит дом построитьАнтон Немцев - Что нам стоит дом построить
Антон Немцев - Что нам стоит дом построить
 
Александр Бадзым - CSS Переменные — настало ваше время!
Александр Бадзым - CSS Переменные — настало ваше время!Александр Бадзым - CSS Переменные — настало ваше время!
Александр Бадзым - CSS Переменные — настало ваше время!
 
Axel Nordfeldt (Beetroot Academy) - IT as a social instrument
Axel Nordfeldt (Beetroot Academy) - IT as a social instrumentAxel Nordfeldt (Beetroot Academy) - IT as a social instrument
Axel Nordfeldt (Beetroot Academy) - IT as a social instrument
 

Recently uploaded

132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
kandramariana6
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
RadiNasr
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
IJECEIAES
 
basic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdfbasic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdf
NidhalKahouli2
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
Hitesh Mohapatra
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
abbyasa1014
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
MDSABBIROJJAMANPAYEL
 
Textile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdfTextile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdf
NazakatAliKhoso2
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
nooriasukmaningtyas
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
KrishnaveniKrishnara1
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
171ticu
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
Aditya Rajan Patra
 
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMTIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
HODECEDSIET
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
Madan Karki
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
IJECEIAES
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
mahammadsalmanmech
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
Las Vegas Warehouse
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
mamamaam477
 
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball playEric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
enizeyimana36
 
Casting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdfCasting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdf
zubairahmad848137
 

Recently uploaded (20)

132/33KV substation case study Presentation
132/33KV substation case study Presentation132/33KV substation case study Presentation
132/33KV substation case study Presentation
 
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdfIron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
Iron and Steel Technology Roadmap - Towards more sustainable steelmaking.pdf
 
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
Redefining brain tumor segmentation: a cutting-edge convolutional neural netw...
 
basic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdfbasic-wireline-operations-course-mahmoud-f-radwan.pdf
basic-wireline-operations-course-mahmoud-f-radwan.pdf
 
Generative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of contentGenerative AI leverages algorithms to create various forms of content
Generative AI leverages algorithms to create various forms of content
 
Engineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdfEngineering Drawings Lecture Detail Drawings 2014.pdf
Engineering Drawings Lecture Detail Drawings 2014.pdf
 
Properties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptxProperties Railway Sleepers and Test.pptx
Properties Railway Sleepers and Test.pptx
 
Textile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdfTextile Chemical Processing and Dyeing.pdf
Textile Chemical Processing and Dyeing.pdf
 
A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...A review on techniques and modelling methodologies used for checking electrom...
A review on techniques and modelling methodologies used for checking electrom...
 
22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt22CYT12-Unit-V-E Waste and its Management.ppt
22CYT12-Unit-V-E Waste and its Management.ppt
 
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样学校原版美国波士顿大学毕业证学历学位证书原版一模一样
学校原版美国波士顿大学毕业证学历学位证书原版一模一样
 
Recycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part IIRecycled Concrete Aggregate in Construction Part II
Recycled Concrete Aggregate in Construction Part II
 
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEMTIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
TIME DIVISION MULTIPLEXING TECHNIQUE FOR COMMUNICATION SYSTEM
 
spirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptxspirit beverages ppt without graphics.pptx
spirit beverages ppt without graphics.pptx
 
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
Electric vehicle and photovoltaic advanced roles in enhancing the financial p...
 
Question paper of renewable energy sources
Question paper of renewable energy sourcesQuestion paper of renewable energy sources
Question paper of renewable energy sources
 
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have oneISPM 15 Heat Treated Wood Stamps and why your shipping must have one
ISPM 15 Heat Treated Wood Stamps and why your shipping must have one
 
Engine Lubrication performance System.pdf
Engine Lubrication performance System.pdfEngine Lubrication performance System.pdf
Engine Lubrication performance System.pdf
 
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball playEric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
Eric Nizeyimana's document 2006 from gicumbi to ttc nyamata handball play
 
Casting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdfCasting-Defect-inSlab continuous casting.pdf
Casting-Defect-inSlab continuous casting.pdf
 

Oleksandr Khotemskyi - Serverless architecture and how to apply it in Automation Testing

  • 1. SERVERLESSI N T E S T A U T O M AT I O N 2 0 1 8 O l e k s a n d r K h o t e m s k y i h t t p : / / x o t a b u 4 . g i t h u b . i o
  • 2. Independent Contractor, Software Developer Engineer in Test Hello! I Am Oleksandr Khotemskyi Contacts: xotabu4.github.io
  • 3. Test automation meets serverless What is serverless? Serverless architecture highlights New world order?
  • 4. Evolution of software architecture principles and programming styles What is serverless? 1
  • 6. Evolution of servers: Virtualization
  • 9.
  • 10. You will fall in love or hate forever Serverless architecture highlights 2
  • 11. In a nutshell • Code snippets • Deployed to cloud • Executed in response to some event • Scaled on demand • Costs nothing when idle
  • 12. Serverless is using servers! Load Balancer Function invocations requests Nodes Controller
  • 13. Your code runs according to your logic You will get execution result in HTTP response Invoke. For example - just by sending HTTP request Upload to your FaaS provider Usage flow Wrap your code to special “handler”
  • 14. You don’t have single point of failure. In case errors - only one invocation is affected Stability Automatically start thousands and millions of your code copies Instant scaling Just zip your code and upload. No deploying to thousands of servers with complex update process Low deploy complexity You don’t need to think about hardware. Provider will automatically add/remove machines for you No servers managing You do not pay for your idle computer No underconsumption No race conditions, no multithreading. Function is small piece of code that easy to read. Developers are focusing on business requirements Simple developing Benefits
  • 15. Old solutions does not work anymore. And again - lock to vendor Monitoring There might be delay in starting fresh deployed code Warming up Requires new approaches in setting up secure backend Security Harder to debug, since your code runs quickly, and not clear where exactly Debug All communication is done thru network (HTTP), which is not the fastest way Latency Usually migrating from one FaaS provider to another is hard Vendor lock Tricky parts
  • 16. AWS Lambda PRICE • You pay only when your code is running • Pricing calculated for megabytes/second • Huge memory consumption - more expensive • Long running code - more expensive • Services usually offer free amount (AWS - 1 million calls) Table 1 Memory (MB) Free tier seconds per month Price per 100ms ($) 128 3,200,000 0.000000208 512 800,000 0.000000834 1024 400,000 0.000001667 2048 200,000 0.000003334 3008 136,170 0.000004897
  • 17. Best friends forever Test automation meets serverless 3
  • 18. Tests should be independent one from another Serverless architecture is absolutely stateless by its nature. As your tests also should be. Each your test runs in separate isolated environment. Potentially even pre/postconditions can be isolated
  • 19. Tests should run as quickly as possible • Each your single test CPU/RAM consumption won’t affect others because of isolation (noticeable on huge test numbers) • You can potentially have thousands and millions of threads. Your test execution will take time of longest running test
  • 20. Tests should be stable • Serverless allows to avoid running code locally • Different code versions can be used • Retrying test - is just recursive invoking function by itself • Clean runtime environment for each test gives additional stability • Executor issues does not affect whole test run
  • 21. Tests should be executed as often as possible • No limits on tests execution frequency. Single execution is cheap • With unlimited parallelization thats possible to start tests for even smallest code changes. Or even for many changes simultaneously • Possible to run tests for multiple environments in the same time • Running tests while developing won’t block your execution
  • 22. Bright future of test automation. But even sun has sunspots New world order? 3
  • 23. Reporting on huge scale - Report Portal
  • 25. Test runners • Existing test runners were not intended for this tricks • Possible execution flow can be as follows Sending link to report as final step Tests are running, and reporting results to “Report Portal” Multiple recursive invoke with test names that will be used for GREP Invoke function-starter that parses all tests, and detects tests that should be run
  • 26. API tests Small size of project Simple environment Test runner should be updated This is looks like best way to start using serverless for tests Quick start, fast execution ! Should not require special config
  • 27. Performance tests as a bonus • With theoretically unlimited test threads, we can do huge load to Site- Under-Test • This can be used to see application performance issues • Bonus - reusing UI or API tests (or both) for performance measurements FaaS Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test Test
  • 28. UI tests Size of project can be big Complicated environment Test runner should be updated Notice that some cloud providers might have function execution timeout! Your test cannot run longer than it Slow start, slow execution ! Requires separate test farm cluster OR start Chrome Headless inside function itself ! ! ! !
  • 29. Unit tests Size of project usually big Simple environment Test runner should be updated Potentially HTTP requests latency might be bigger than test execution itself. Grouping by bigger chunks help Fast start, fast execution ! Does not require some special config !
  • 30. More to read Functional programming: https://habr.com/post/142351/ Code with lambda-selenium usage (Java, Node): https://github.com/blackboard/lambda-selenium Framework for building serverless applications: https://serverless.com/framework/ WebdriverIO lambda runner: https://github.com/webdriverio/webdriverio/tree/master/packages/wdio-lambda- runner Old, good, wikipedia: https://en.wikipedia.org/wiki/Serverless_computing Martin Fowler about serverless: https://martinfowler.com/articles/serverless.html
  • 31. Thanks! You can find me at: xotabu4.github.io Any questions?