SlideShare a Scribd company logo
Orchestrating a big automated testing pipeline in
multiple environments
© Daitan Group – Private & Confidential – v1.1 2
About me
• 9 years experience in Software
Engineering, and 2 in Electronics
• BSc in Computer Science – IC-Unicamp
• Electronics Technician – Cotuca-Unicamp
• Currently working on Data Engineering,
Performance Engineering and Test
Automation at Daitan Group
• I love developing and testing!
kelvsar@gmail.com
https://www.linkedin.com/in/kelvin-ksps/
Kelvin Ronny Marques da Silva
CHALLENGE
© Daitan Group – Private & Confidential – v1.1 4
• Mac OS 10.11
• Mac OS 10.12
• Mac OS 10.13
• 13 Environments
Problem 1: Ensure the product runs well on all
supported operating systems
• Windows 7 x64
• Windows 7 x86
• Windows 8 x64
• Windows 8 x86
• Windows 8.1 x64
• Windows 8.1 x64
• Windows 10 x64
• Windows 10 x86
© Daitan Group – Private & Confidential – v1.1 5
• Mac OS 10.11
• Mac OS 10.12
• Mac OS 10.13
• Chrome
• Firefox
• Internet Explorer
• Safari
13 * 3 = 39 setups!
Problem 2: Ensure the product runs well on all
supported operating systems and browsers
• Windows 7 x64
• Windows 7 x86
• Windows 8 x64
• Windows 8 x86
• Windows 8.1 x64
• Windows 8.1 x86
• Windows 10 x64
• Windows 10 x86
© Daitan Group – Private & Confidential – v1.1 6
Ex.:
• 1 machine is the host and 2 machines are guests of a
video conferencing meeting
• 2 or more machines are playing a Game
• 1 machine is the presenter and 2 are the participants
on a webinar
Problem 3: Product only runs one instance per
machine
Problem 4: Test Suites contain scenarios using more
than one instance of the product
© Daitan Group – Private & Confidential – v1.1 7
• Parallel Plans:
Installation Tests, Memory Tests, and Test Cases using
different sessions.
• Sequential Plans:
Account Limitations, Database restriction, and
Sessions Tested individually
Problem 5: Some complex test suites cannot run in
parallel in different clients
© Daitan Group – Private & Confidential – v1.1 8
• In order to solve all those problems, we need a
mechanism to automate and orchestrate everything
• Due to the high quantity of environment
combinations, the complexity of organizing and
executing tests increases and can lead to an
ineffective pipeline.
Problem 6: Orchestrate
© Daitan Group – Private & Confidential – v1.1 9
Challenge
• How to coordinate and schedule tests in an easy
way?
• How to continue delivering the tests in an agile way,
despite those problems?
• How creating and working with a solution for those
problems could be simple?
Constructing the Solution
© Daitan Group – Private & Confidential – v1.1 11
Jmeter
• The most famous free tool for performance testing
against API
• It could be used for regression testing against API as
well
• We could create test plan, steps from a test and
Threads to collect the result of the API Calls
• We can also integrate Jmeter with external libs, since
we can use Java or Javascript inside JMeter
• It is possible to send requests to more than one
machine or server
© Daitan Group – Private & Confidential – v1.1 12
Instead of using JUnit or TestNG…
... We just need to create a server with the libraries
used for test/task automation (Selenium, Sikuli, White,
etc)
It does not require a specific language (we use Java for
this server, but a server built with the libraries for
automation could be created using Python, C#, etc)
© Daitan Group – Private & Confidential – v1.1 13
We created our QA-Server!
• Java + Maven
• Spring Framework (dependency injection)
• Apache CXF (our base for the server, btw)
• External Libraries
© Daitan Group – Private & Confidential – v1.1 14
How QA-Server works
0. HTTP Client send a HTTP request to QA-
Server;
1. Controller receives the request HTTP to
execute some action or to check
something;
2. Controller send the data to the proper
Service, based on the request received;
3. Service chooses the proper Project to
initiate some action or verification;
4. Project does the action or verification
and returns the result to the Service;
5. Service returns the Result to the
Controller;
6. Controller returns the Result to HTTP
Client
Controllers
QA-SERVER
Services
HTTP
Client
Controller
Service
Project
A
© Daitan Group – Private & Confidential – v1.1 15
Example: JMeter Side
Jmeter Plan HTTP Requests
© Daitan Group – Private & Confidential – v1.1 16
Example: QA-Server
Controller
© Daitan Group – Private & Confidential – v1.1 17
Example: QA-Server
Service
© Daitan Group – Private & Confidential – v1.1 18
Example: Devopsdays Project
© Daitan Group – Private & Confidential – v1.1 19
QA-Server + Jmeter: Demo
© Daitan Group – Private & Confidential – v1.1 20
QA-Server + Jmeter: Another Example
© Daitan Group – Private & Confidential – v1.1 21
Remaining Problems:
Problem 5: Support Sequential Plans
Problem 6: Orchestrate to create an effective pipeline
Problem 3: Several Instances of the Client
Problem 4: One Instance per Machine
JMeter coordinates what QA-Server will do on each machine being
used by the test plan.
Problem 1: Support all OS.
Problem 2: Support all browsers.
QA-Server on each OS, pointing to the project, libraries and frameworks.
Partial Solution
© Daitan Group – Private & Confidential – v1.1 22
Solving the 2 problems left
• We have created an automated orchestration
of our complex test suites that delivers the
effectiveness needed in Devops culture
• Now, we can coordinate and schedule tests in
an easy way, implement changes in
parameters, and cover the maximum number
of machines
© Daitan Group – Private & Confidential – v1.1 23
QA-Planner
We have developed a tool called QA-Planner.
FrontEnd: AngularJS + Javascript
BackEnd: QA-Server / Java
DB: MongoDB
© Daitan Group – Private & Confidential – v1.1 24
What is QA-Planner?
• Coordinate and schedule tests in an easy
way, in different machines, respecting the
dependency of each test set (Sequential
Plans, for instance)
• Verify if the automation tasks are being
done properly on each machine
• Return an automated effective pipeline of
the Test Suite
The idea came from the following concepts:
© Daitan Group – Private & Confidential – v1.1 25
QA-Planner: Scheduler Algorithm
The Algorithm needs to deal with these restrictions:
• Sequential Test Plans must not run in parallel
• We need to be able to choose an order for each Test
Plan
• It must be accessible/runnable by external tools,
such as Jenkins
• Everyone on the Devops team must be able to create
or access the Tool in realtime
© Daitan Group – Private & Confidential – v1.1 26
QA-Planner: JMeter Plans Orchestrator
• QA-Planner controls which plans will run and when
• Once that pipeline starts to run, the orchestrator will
be processing all plans and it will keep monitoring
JMeter processes
• It also changes the variables inserted into JMeter on
execution time
© Daitan Group – Private & Confidential – v1.1 27
How QA-Planner works
0. User selects the plans and machines
1. User requests a pipeline
2. BackEnd uses the Scheduler Algorithm
to create the pipeline
3. User receives a pipeline candidate
4.
• A) User accepts the pipeline and the
tests begin.
• B) User accepts the pipeline and take the
id to put on other tool
• C) User rejects the pipeline. User can
change the plans or machines selected
before to create a new pipeline.
Node
A
Node
B
Node
C
Node
E
Node
D
Planner
Page
QA-Server
Leader
Node
© Daitan Group – Private & Confidential – v1.1 28
QA-Planner: Page
© Daitan Group – Private & Confidential – v1.1 29
QA-Planner: Page
© Daitan Group – Private & Confidential – v1.1 30
QA-Planner: Page
© Daitan Group – Private & Confidential – v1.1 31
QA-Planner: Page
© Daitan Group – Private & Confidential – v1.1 32
QA-Planner: Roles
Leader: Machine under testing
Aux: One or more machines used to make all
scenarios “testable” by automated tests
Ex.: Leader is the Game running on Windows 8,
others 3 machines (don’t care about OS) will join the
Game as well, but the focus here is testing all features
on Windows 8
© Daitan Group – Private & Confidential – v1.1 33
QA-Planner: Demo – Full Test Suite Pipeline
© Daitan Group – Private & Confidential – v1.1 34
QA-Planner: Demo
If each test plan takes 10 minutes to be done.
5 scenarios * 13 machines =
Traditional pipeline: 650 minutes!
QA-Planner: 650/5 = 130 minutes!
© Daitan Group – Private & Confidential – v1.1 35
QA-Planner: Demo – Demo Test Suite Pipeline
© Daitan Group – Private & Confidential – v1.1 36
Problem 5: Support Sequential Plans
Problem 6: Orchestrate to create an effective pipeline
QA-Planner coordinates and orchestrates everything!
Problem 3: Several Instances of the Client
Problem 4: One Instance per Machine
JMeter coordinates what QA-Server will do on each machine being
used by the test plan.
Problem 1: Support all OS.
Problem 2: Support all browsers.
QA-Server on each OS, pointing to the project, libraries and frameworks.
Solved!
© Daitan Group – Private & Confidential – v1.1 37
Conclusion
• This solution saved a lot of time
• It’s really easy to create new tests and reuse the
steps by using HTTP calls on JMeter
• It’s not just solving problems, it is a new pattern
followed here
Thank You!
kelvsar@gmail.com / ksilva@daitangroup.com

More Related Content

What's hot

The Art of Sitecore Upgrades
The Art of Sitecore UpgradesThe Art of Sitecore Upgrades
The Art of Sitecore Upgrades
Ruud van Falier
 
Case Coriant Tellabs - Agile Testing Implementation 22.5.2014
Case Coriant Tellabs - Agile Testing Implementation 22.5.2014Case Coriant Tellabs - Agile Testing Implementation 22.5.2014
Case Coriant Tellabs - Agile Testing Implementation 22.5.2014
Knowit Oy
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
Eklove Mohan
 
Stresstimulus Load Testing Tool Getting Started
Stresstimulus Load Testing Tool Getting StartedStresstimulus Load Testing Tool Getting Started
Stresstimulus Load Testing Tool Getting Started
stresstimulus
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
Tomas Riha
 
Deployability
DeployabilityDeployability
Deployability
Len Bass
 
Warsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime FabricWarsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime Fabric
Patryk Bandurski
 
Prod-Like Integration Testing for Distributed Containerized Applications
Prod-Like Integration Testing for Distributed Containerized ApplicationsProd-Like Integration Testing for Distributed Containerized Applications
Prod-Like Integration Testing for Distributed Containerized Applications
VMware Tanzu
 
Testing with JUnit 5 and Spring
Testing with JUnit 5 and SpringTesting with JUnit 5 and Spring
Testing with JUnit 5 and Spring
VMware Tanzu
 
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Bartosz Chrabski
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Slawa Giterman
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
Simplilearn
 
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
ThoughtWorks Studios
 
Jmeter Walkthrough
Jmeter WalkthroughJmeter Walkthrough
Jmeter Walkthrough
Bhuvaneswari Subramani
 
How To Be a Java Automated Testing Superstar
How To Be a Java Automated Testing SuperstarHow To Be a Java Automated Testing Superstar
How To Be a Java Automated Testing Superstar
VMware Tanzu
 
LoadRunner walkthrough
LoadRunner walkthroughLoadRunner walkthrough
LoadRunner walkthrough
Bhuvaneswari Subramani
 
Continuous Testing in the Agile Age
Continuous Testing in the Agile AgeContinuous Testing in the Agile Age
Continuous Testing in the Agile Age
BlazeMeter
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systems
Len Bass
 
Packaging tool options
Packaging tool optionsPackaging tool options
Packaging tool options
Len Bass
 
Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13
Akshata Sawant
 

What's hot (20)

The Art of Sitecore Upgrades
The Art of Sitecore UpgradesThe Art of Sitecore Upgrades
The Art of Sitecore Upgrades
 
Case Coriant Tellabs - Agile Testing Implementation 22.5.2014
Case Coriant Tellabs - Agile Testing Implementation 22.5.2014Case Coriant Tellabs - Agile Testing Implementation 22.5.2014
Case Coriant Tellabs - Agile Testing Implementation 22.5.2014
 
Preparing for DevOps
Preparing for DevOpsPreparing for DevOps
Preparing for DevOps
 
Stresstimulus Load Testing Tool Getting Started
Stresstimulus Load Testing Tool Getting StartedStresstimulus Load Testing Tool Getting Started
Stresstimulus Load Testing Tool Getting Started
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
 
Deployability
DeployabilityDeployability
Deployability
 
Warsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime FabricWarsaw MuleSoft Meetup - Runtime Fabric
Warsaw MuleSoft Meetup - Runtime Fabric
 
Prod-Like Integration Testing for Distributed Containerized Applications
Prod-Like Integration Testing for Distributed Containerized ApplicationsProd-Like Integration Testing for Distributed Containerized Applications
Prod-Like Integration Testing for Distributed Containerized Applications
 
Testing with JUnit 5 and Spring
Testing with JUnit 5 and SpringTesting with JUnit 5 and Spring
Testing with JUnit 5 and Spring
 
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
Using Git with Rational Team Concert and Rational ClearCase in enterprise env...
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
 
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
DevOps Interview Questions Part - 1 | Devops Interview Questions And Answers ...
 
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
How do you implement Continuous Delivery?: Part 5 - Deployment Patterns
 
Jmeter Walkthrough
Jmeter WalkthroughJmeter Walkthrough
Jmeter Walkthrough
 
How To Be a Java Automated Testing Superstar
How To Be a Java Automated Testing SuperstarHow To Be a Java Automated Testing Superstar
How To Be a Java Automated Testing Superstar
 
LoadRunner walkthrough
LoadRunner walkthroughLoadRunner walkthrough
LoadRunner walkthrough
 
Continuous Testing in the Agile Age
Continuous Testing in the Agile AgeContinuous Testing in the Agile Age
Continuous Testing in the Agile Age
 
Dev ops and safety critical systems
Dev ops and safety critical systemsDev ops and safety critical systems
Dev ops and safety critical systems
 
Packaging tool options
Packaging tool optionsPackaging tool options
Packaging tool options
 
Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13Mumbai MuleSoft Meetup 13
Mumbai MuleSoft Meetup 13
 

Similar to Orchestrating Automated Tests in Different Systems - Please Download to watch the embedded videos ;)

Testlink Test Management with Teamforge
Testlink Test Management with TeamforgeTestlink Test Management with Teamforge
Testlink Test Management with Teamforge
CollabNet
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 Medellin
Diego Garber
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
Stephen Ritchie
 
Mobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest TeamsMobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest Teams
Perfecto by Perforce
 
Creative Automation with Galen Framework
Creative Automation with Galen FrameworkCreative Automation with Galen Framework
Creative Automation with Galen Framework
'Ashmeet Sehgal'
 
The QA/Testing Process
The QA/Testing ProcessThe QA/Testing Process
The QA/Testing Process
Synerzip
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
ciberkleid
 
MyHeritage - QA Automations in a Continuous Deployment environment
MyHeritage -  QA Automations in a Continuous Deployment environmentMyHeritage -  QA Automations in a Continuous Deployment environment
MyHeritage - QA Automations in a Continuous Deployment environment
MatanGoren
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
VMware Tanzu
 
Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...
Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...
Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...
Marc Fasel
 
Team forge Test Management with TestLink
Team forge Test Management with TestLinkTeam forge Test Management with TestLink
Team forge Test Management with TestLink
Venkat Janardhanam, MS, MBA
 
Health monitoring and alerting for xen app, xendesktop and netscaler
Health monitoring and alerting for xen app, xendesktop and netscalerHealth monitoring and alerting for xen app, xendesktop and netscaler
Health monitoring and alerting for xen app, xendesktop and netscaler
solarisyougood
 
DevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 ConferenceDevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 Conference
Grid Dynamics
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017
Marcin Grzejszczak
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfest
Marcin Grzejszczak
 
Case Study – Regression Testing (Online Exam Software)
Case Study – Regression Testing (Online Exam Software)Case Study – Regression Testing (Online Exam Software)
Case Study – Regression Testing (Online Exam Software)
360logica Software Testing Services (A Saksoft Company)
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
Rogue Wave Software
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
Richard Cheng
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weaveworks
 
Flintstones or Jetsons? Jump Start Your Virtual Test Lab
Flintstones or Jetsons? Jump Start Your Virtual Test LabFlintstones or Jetsons? Jump Start Your Virtual Test Lab
Flintstones or Jetsons? Jump Start Your Virtual Test Lab
TechWell
 

Similar to Orchestrating Automated Tests in Different Systems - Please Download to watch the embedded videos ;) (20)

Testlink Test Management with Teamforge
Testlink Test Management with TeamforgeTestlink Test Management with Teamforge
Testlink Test Management with Teamforge
 
Continuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 MedellinContinuous Delivery Agiles 2014 Medellin
Continuous Delivery Agiles 2014 Medellin
 
Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015Agile Engineering Sparker GLASScon 2015
Agile Engineering Sparker GLASScon 2015
 
Mobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest TeamsMobile App Quality Roadmap for DevTest Teams
Mobile App Quality Roadmap for DevTest Teams
 
Creative Automation with Galen Framework
Creative Automation with Galen FrameworkCreative Automation with Galen Framework
Creative Automation with Galen Framework
 
The QA/Testing Process
The QA/Testing ProcessThe QA/Testing Process
The QA/Testing Process
 
Continuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOneContinuous Deployment of your Application @SpringOne
Continuous Deployment of your Application @SpringOne
 
MyHeritage - QA Automations in a Continuous Deployment environment
MyHeritage -  QA Automations in a Continuous Deployment environmentMyHeritage -  QA Automations in a Continuous Deployment environment
MyHeritage - QA Automations in a Continuous Deployment environment
 
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
Automated Virtualized Testing (AVT) with Docker, Kubernetes, WireMock and Gat...
 
Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...
Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...
Crowd Sourced Testing - Real-World Experience Using Rainforest QA Crowd-Sourc...
 
Team forge Test Management with TestLink
Team forge Test Management with TestLinkTeam forge Test Management with TestLink
Team forge Test Management with TestLink
 
Health monitoring and alerting for xen app, xendesktop and netscaler
Health monitoring and alerting for xen app, xendesktop and netscalerHealth monitoring and alerting for xen app, xendesktop and netscaler
Health monitoring and alerting for xen app, xendesktop and netscaler
 
DevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 ConferenceDevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 Conference
 
Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017 Continuous Deployment To The Cloud @DevoxxPL 2017
Continuous Deployment To The Cloud @DevoxxPL 2017
 
Continuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfestContinuous Deployment of your Application @JUGtoberfest
Continuous Deployment of your Application @JUGtoberfest
 
Case Study – Regression Testing (Online Exam Software)
Case Study – Regression Testing (Online Exam Software)Case Study – Regression Testing (Online Exam Software)
Case Study – Regression Testing (Online Exam Software)
 
Test parallelization using Jenkins
Test parallelization using JenkinsTest parallelization using Jenkins
Test parallelization using Jenkins
 
(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know(Agile) engineering best practices - What every project manager should know
(Agile) engineering best practices - What every project manager should know
 
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
Weave GitOps 2022.09 Release: A Fast & Reliable Path to Production with Progr...
 
Flintstones or Jetsons? Jump Start Your Virtual Test Lab
Flintstones or Jetsons? Jump Start Your Virtual Test LabFlintstones or Jetsons? Jump Start Your Virtual Test Lab
Flintstones or Jetsons? Jump Start Your Virtual Test Lab
 

Recently uploaded

HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Jeffrey Haguewood
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
Wouter Lemaire
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
flufftailshop
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 

Recently uploaded (20)

HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
Letter and Document Automation for Bonterra Impact Management (fka Social Sol...
 
UI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentationUI5 Controls simplified - UI5con2024 presentation
UI5 Controls simplified - UI5con2024 presentation
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdfNunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
Nunit vs XUnit vs MSTest Differences Between These Unit Testing Frameworks.pdf
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 

Orchestrating Automated Tests in Different Systems - Please Download to watch the embedded videos ;)

  • 1. Orchestrating a big automated testing pipeline in multiple environments
  • 2. © Daitan Group – Private & Confidential – v1.1 2 About me • 9 years experience in Software Engineering, and 2 in Electronics • BSc in Computer Science – IC-Unicamp • Electronics Technician – Cotuca-Unicamp • Currently working on Data Engineering, Performance Engineering and Test Automation at Daitan Group • I love developing and testing! kelvsar@gmail.com https://www.linkedin.com/in/kelvin-ksps/ Kelvin Ronny Marques da Silva
  • 4. © Daitan Group – Private & Confidential – v1.1 4 • Mac OS 10.11 • Mac OS 10.12 • Mac OS 10.13 • 13 Environments Problem 1: Ensure the product runs well on all supported operating systems • Windows 7 x64 • Windows 7 x86 • Windows 8 x64 • Windows 8 x86 • Windows 8.1 x64 • Windows 8.1 x64 • Windows 10 x64 • Windows 10 x86
  • 5. © Daitan Group – Private & Confidential – v1.1 5 • Mac OS 10.11 • Mac OS 10.12 • Mac OS 10.13 • Chrome • Firefox • Internet Explorer • Safari 13 * 3 = 39 setups! Problem 2: Ensure the product runs well on all supported operating systems and browsers • Windows 7 x64 • Windows 7 x86 • Windows 8 x64 • Windows 8 x86 • Windows 8.1 x64 • Windows 8.1 x86 • Windows 10 x64 • Windows 10 x86
  • 6. © Daitan Group – Private & Confidential – v1.1 6 Ex.: • 1 machine is the host and 2 machines are guests of a video conferencing meeting • 2 or more machines are playing a Game • 1 machine is the presenter and 2 are the participants on a webinar Problem 3: Product only runs one instance per machine Problem 4: Test Suites contain scenarios using more than one instance of the product
  • 7. © Daitan Group – Private & Confidential – v1.1 7 • Parallel Plans: Installation Tests, Memory Tests, and Test Cases using different sessions. • Sequential Plans: Account Limitations, Database restriction, and Sessions Tested individually Problem 5: Some complex test suites cannot run in parallel in different clients
  • 8. © Daitan Group – Private & Confidential – v1.1 8 • In order to solve all those problems, we need a mechanism to automate and orchestrate everything • Due to the high quantity of environment combinations, the complexity of organizing and executing tests increases and can lead to an ineffective pipeline. Problem 6: Orchestrate
  • 9. © Daitan Group – Private & Confidential – v1.1 9 Challenge • How to coordinate and schedule tests in an easy way? • How to continue delivering the tests in an agile way, despite those problems? • How creating and working with a solution for those problems could be simple?
  • 11. © Daitan Group – Private & Confidential – v1.1 11 Jmeter • The most famous free tool for performance testing against API • It could be used for regression testing against API as well • We could create test plan, steps from a test and Threads to collect the result of the API Calls • We can also integrate Jmeter with external libs, since we can use Java or Javascript inside JMeter • It is possible to send requests to more than one machine or server
  • 12. © Daitan Group – Private & Confidential – v1.1 12 Instead of using JUnit or TestNG… ... We just need to create a server with the libraries used for test/task automation (Selenium, Sikuli, White, etc) It does not require a specific language (we use Java for this server, but a server built with the libraries for automation could be created using Python, C#, etc)
  • 13. © Daitan Group – Private & Confidential – v1.1 13 We created our QA-Server! • Java + Maven • Spring Framework (dependency injection) • Apache CXF (our base for the server, btw) • External Libraries
  • 14. © Daitan Group – Private & Confidential – v1.1 14 How QA-Server works 0. HTTP Client send a HTTP request to QA- Server; 1. Controller receives the request HTTP to execute some action or to check something; 2. Controller send the data to the proper Service, based on the request received; 3. Service chooses the proper Project to initiate some action or verification; 4. Project does the action or verification and returns the result to the Service; 5. Service returns the Result to the Controller; 6. Controller returns the Result to HTTP Client Controllers QA-SERVER Services HTTP Client Controller Service Project A
  • 15. © Daitan Group – Private & Confidential – v1.1 15 Example: JMeter Side Jmeter Plan HTTP Requests
  • 16. © Daitan Group – Private & Confidential – v1.1 16 Example: QA-Server Controller
  • 17. © Daitan Group – Private & Confidential – v1.1 17 Example: QA-Server Service
  • 18. © Daitan Group – Private & Confidential – v1.1 18 Example: Devopsdays Project
  • 19. © Daitan Group – Private & Confidential – v1.1 19 QA-Server + Jmeter: Demo
  • 20. © Daitan Group – Private & Confidential – v1.1 20 QA-Server + Jmeter: Another Example
  • 21. © Daitan Group – Private & Confidential – v1.1 21 Remaining Problems: Problem 5: Support Sequential Plans Problem 6: Orchestrate to create an effective pipeline Problem 3: Several Instances of the Client Problem 4: One Instance per Machine JMeter coordinates what QA-Server will do on each machine being used by the test plan. Problem 1: Support all OS. Problem 2: Support all browsers. QA-Server on each OS, pointing to the project, libraries and frameworks. Partial Solution
  • 22. © Daitan Group – Private & Confidential – v1.1 22 Solving the 2 problems left • We have created an automated orchestration of our complex test suites that delivers the effectiveness needed in Devops culture • Now, we can coordinate and schedule tests in an easy way, implement changes in parameters, and cover the maximum number of machines
  • 23. © Daitan Group – Private & Confidential – v1.1 23 QA-Planner We have developed a tool called QA-Planner. FrontEnd: AngularJS + Javascript BackEnd: QA-Server / Java DB: MongoDB
  • 24. © Daitan Group – Private & Confidential – v1.1 24 What is QA-Planner? • Coordinate and schedule tests in an easy way, in different machines, respecting the dependency of each test set (Sequential Plans, for instance) • Verify if the automation tasks are being done properly on each machine • Return an automated effective pipeline of the Test Suite The idea came from the following concepts:
  • 25. © Daitan Group – Private & Confidential – v1.1 25 QA-Planner: Scheduler Algorithm The Algorithm needs to deal with these restrictions: • Sequential Test Plans must not run in parallel • We need to be able to choose an order for each Test Plan • It must be accessible/runnable by external tools, such as Jenkins • Everyone on the Devops team must be able to create or access the Tool in realtime
  • 26. © Daitan Group – Private & Confidential – v1.1 26 QA-Planner: JMeter Plans Orchestrator • QA-Planner controls which plans will run and when • Once that pipeline starts to run, the orchestrator will be processing all plans and it will keep monitoring JMeter processes • It also changes the variables inserted into JMeter on execution time
  • 27. © Daitan Group – Private & Confidential – v1.1 27 How QA-Planner works 0. User selects the plans and machines 1. User requests a pipeline 2. BackEnd uses the Scheduler Algorithm to create the pipeline 3. User receives a pipeline candidate 4. • A) User accepts the pipeline and the tests begin. • B) User accepts the pipeline and take the id to put on other tool • C) User rejects the pipeline. User can change the plans or machines selected before to create a new pipeline. Node A Node B Node C Node E Node D Planner Page QA-Server Leader Node
  • 28. © Daitan Group – Private & Confidential – v1.1 28 QA-Planner: Page
  • 29. © Daitan Group – Private & Confidential – v1.1 29 QA-Planner: Page
  • 30. © Daitan Group – Private & Confidential – v1.1 30 QA-Planner: Page
  • 31. © Daitan Group – Private & Confidential – v1.1 31 QA-Planner: Page
  • 32. © Daitan Group – Private & Confidential – v1.1 32 QA-Planner: Roles Leader: Machine under testing Aux: One or more machines used to make all scenarios “testable” by automated tests Ex.: Leader is the Game running on Windows 8, others 3 machines (don’t care about OS) will join the Game as well, but the focus here is testing all features on Windows 8
  • 33. © Daitan Group – Private & Confidential – v1.1 33 QA-Planner: Demo – Full Test Suite Pipeline
  • 34. © Daitan Group – Private & Confidential – v1.1 34 QA-Planner: Demo If each test plan takes 10 minutes to be done. 5 scenarios * 13 machines = Traditional pipeline: 650 minutes! QA-Planner: 650/5 = 130 minutes!
  • 35. © Daitan Group – Private & Confidential – v1.1 35 QA-Planner: Demo – Demo Test Suite Pipeline
  • 36. © Daitan Group – Private & Confidential – v1.1 36 Problem 5: Support Sequential Plans Problem 6: Orchestrate to create an effective pipeline QA-Planner coordinates and orchestrates everything! Problem 3: Several Instances of the Client Problem 4: One Instance per Machine JMeter coordinates what QA-Server will do on each machine being used by the test plan. Problem 1: Support all OS. Problem 2: Support all browsers. QA-Server on each OS, pointing to the project, libraries and frameworks. Solved!
  • 37. © Daitan Group – Private & Confidential – v1.1 37 Conclusion • This solution saved a lot of time • It’s really easy to create new tests and reuse the steps by using HTTP calls on JMeter • It’s not just solving problems, it is a new pattern followed here
  • 38. Thank You! kelvsar@gmail.com / ksilva@daitangroup.com