SlideShare a Scribd company logo
1 of 35
Gatling and Page
Object
a way to performance testing
Agenda
Prerequisites
Step 1: Idea
Step 2: Implementation
Step 3: Obstacles
Step 4: Additional tools
Step 5: Lesson learns
Prerequisites:
WebDriver experience:
5 years
API testing: 5 months
JMeter: 2 training
sessions
Step 1: Idea:
Commerce
site
UI testing
API testing
Performance?
Desert
Step 2:
Implementation
Jmeter
Gatling
Gatling
peculiarities
Scripting
Maven OOTB integration
Jenkins OOTB integration
Page Object
like structure
Another example
Journeys
Browsing
flow
Checkout
flows
Feeders and configuration
Ways of
parametrization
Array of maps
CSV
JSON
JDBC
Redis
Feeders
strategies
.queue
.random
.shuffle
.circular
Feeders and configurations
Feeders and configurations
Final set up
Different load types
At Once users
(nbUsers)
Constant users per sec
(rate) during (duration)
RampUsersPerSec(rate1) to (rate2) during (duration)
randomized
HeavisideUsers(nUsers) over (duration)
Step 3:
Obstacles
Environment
Requirements
Team learning curve
Additional
tools:
Gatling maven plugin
Gatling Gradle plugin
Graphite server
Grafana
Docker
Lesson learn
Gradle configs
Jenkins job set up
Feeders
Real-time monitoring
TEST REPORTING BY GATLING
TEST REPORTING BY GATLING
THANK YOU!
Gatling and Page Object: a way to performance testing

More Related Content

What's hot

Testing of React JS app
Testing of React JS appTesting of React JS app
Testing of React JS appAleks Zinevych
 
Introduction to react
Introduction to reactIntroduction to react
Introduction to reactkiranabburi
 
Introduction to jest
Introduction to jestIntroduction to jest
Introduction to jestpksjce
 
Cucumber presentation
Cucumber presentationCucumber presentation
Cucumber presentationAkhila B
 
Debugging Microservices - QCON 2017
Debugging Microservices - QCON 2017Debugging Microservices - QCON 2017
Debugging Microservices - QCON 2017Idit Levine
 
HTTP2 and gRPC
HTTP2 and gRPCHTTP2 and gRPC
HTTP2 and gRPCGuo Jing
 
RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...
RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...
RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...Redis Labs
 
YOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at NetflixYOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at NetflixBrendan Gregg
 
React for Dummies
React for DummiesReact for Dummies
React for DummiesMitch Chen
 
BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumLiraz Shay
 
Introduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveIntroduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveExove
 
TypeScript Best Practices
TypeScript Best PracticesTypeScript Best Practices
TypeScript Best Practicesfelixbillon
 
An intro to GraphQL
An intro to GraphQLAn intro to GraphQL
An intro to GraphQLvaluebound
 

What's hot (20)

gRPC
gRPCgRPC
gRPC
 
Testing of React JS app
Testing of React JS appTesting of React JS app
Testing of React JS app
 
Introduction to react
Introduction to reactIntroduction to react
Introduction to react
 
Introduction to jest
Introduction to jestIntroduction to jest
Introduction to jest
 
Cucumber presentation
Cucumber presentationCucumber presentation
Cucumber presentation
 
Debugging Microservices - QCON 2017
Debugging Microservices - QCON 2017Debugging Microservices - QCON 2017
Debugging Microservices - QCON 2017
 
HTTP2 and gRPC
HTTP2 and gRPCHTTP2 and gRPC
HTTP2 and gRPC
 
RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...
RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...
RedisConf17 - Roblox - How Roblox Keeps Millions of Users Up to Date with Red...
 
YOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at NetflixYOW2018 Cloud Performance Root Cause Analysis at Netflix
YOW2018 Cloud Performance Root Cause Analysis at Netflix
 
詳説WebAssembly
詳説WebAssembly詳説WebAssembly
詳説WebAssembly
 
gRPC Overview
gRPC OverviewgRPC Overview
gRPC Overview
 
React for Dummies
React for DummiesReact for Dummies
React for Dummies
 
Introduction to gradle
Introduction to gradleIntroduction to gradle
Introduction to gradle
 
BDD with SpecFlow and Selenium
BDD with SpecFlow and SeleniumBDD with SpecFlow and Selenium
BDD with SpecFlow and Selenium
 
Intro to GraphQL
 Intro to GraphQL Intro to GraphQL
Intro to GraphQL
 
Introduction to Robot Framework – Exove
Introduction to Robot Framework – ExoveIntroduction to Robot Framework – Exove
Introduction to Robot Framework – Exove
 
Load testing jmeter
Load testing jmeterLoad testing jmeter
Load testing jmeter
 
Introduction to gRPC
Introduction to gRPCIntroduction to gRPC
Introduction to gRPC
 
TypeScript Best Practices
TypeScript Best PracticesTypeScript Best Practices
TypeScript Best Practices
 
An intro to GraphQL
An intro to GraphQLAn intro to GraphQL
An intro to GraphQL
 

Similar to Gatling and Page Object: a way to performance testing

Curriculum outline
Curriculum outlineCurriculum outline
Curriculum outlineDipin Sharma
 
Writing a massive javascript app
Writing a massive javascript appWriting a massive javascript app
Writing a massive javascript appJustin Park
 
Stanislaw potoczny kra_qa_21.01.20
Stanislaw potoczny kra_qa_21.01.20Stanislaw potoczny kra_qa_21.01.20
Stanislaw potoczny kra_qa_21.01.20kraqa
 
Groovy and Grails intro
Groovy and Grails introGroovy and Grails intro
Groovy and Grails introMiguel Pastor
 
Adf coursecontent(1)
Adf coursecontent(1)Adf coursecontent(1)
Adf coursecontent(1)Amit Sharma
 
Running a Test Harness in Parallel using Jenkins
Running a Test Harness in Parallel using JenkinsRunning a Test Harness in Parallel using Jenkins
Running a Test Harness in Parallel using JenkinsJoshua Shapiro
 
Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)Fahad Golra
 
HTML Online Course HTML Course Online online html courses html online training
HTML Online Course  HTML Course Online online html courses html online trainingHTML Online Course  HTML Course Online online html courses html online training
HTML Online Course HTML Course Online online html courses html online trainingEvanta Technologies
 
Vue and Firebase Experiences
Vue and Firebase ExperiencesVue and Firebase Experiences
Vue and Firebase ExperiencesIsatu Conteh
 
Web Apollo: A Web-based Genomics Annotation Editing Platform. 13ArthGen
Web Apollo: A Web-based Genomics Annotation Editing Platform. 13ArthGenWeb Apollo: A Web-based Genomics Annotation Editing Platform. 13ArthGen
Web Apollo: A Web-based Genomics Annotation Editing Platform. 13ArthGenMonica Munoz-Torres
 
Web Apollo: A Web-based Genomic Annotation Editing Platform ISB2013
Web Apollo: A Web-based Genomic Annotation Editing Platform ISB2013Web Apollo: A Web-based Genomic Annotation Editing Platform ISB2013
Web Apollo: A Web-based Genomic Annotation Editing Platform ISB2013Monica Munoz-Torres
 
React Webnet Computer Institute.pdf
React Webnet Computer Institute.pdfReact Webnet Computer Institute.pdf
React Webnet Computer Institute.pdfwebnet
 
Build java-ee-applications-with-adf
Build java-ee-applications-with-adfBuild java-ee-applications-with-adf
Build java-ee-applications-with-adfAmit Sharma
 
PoP - “Platform of Platforms”: Framework for building Single-Page Application...
PoP - “Platform of Platforms”: Framework for building Single-Page Application...PoP - “Platform of Platforms”: Framework for building Single-Page Application...
PoP - “Platform of Platforms”: Framework for building Single-Page Application...Leonardo Losoviz
 
Intro to React - Featuring Modern JavaScript
Intro to React - Featuring Modern JavaScriptIntro to React - Featuring Modern JavaScript
Intro to React - Featuring Modern JavaScriptjasonsich
 
Real User Monitoring: Getting Real Data from Real Users in the Real World - S...
Real User Monitoring: Getting Real Data from Real Users in the Real World - S...Real User Monitoring: Getting Real Data from Real Users in the Real World - S...
Real User Monitoring: Getting Real Data from Real Users in the Real World - S...Akamai Technologies
 

Similar to Gatling and Page Object: a way to performance testing (20)

Curriculum outline
Curriculum outlineCurriculum outline
Curriculum outline
 
Writing a massive javascript app
Writing a massive javascript appWriting a massive javascript app
Writing a massive javascript app
 
sem5.pdf
sem5.pdfsem5.pdf
sem5.pdf
 
Stanislaw potoczny kra_qa_21.01.20
Stanislaw potoczny kra_qa_21.01.20Stanislaw potoczny kra_qa_21.01.20
Stanislaw potoczny kra_qa_21.01.20
 
Groovy and Grails intro
Groovy and Grails introGroovy and Grails intro
Groovy and Grails intro
 
Adf coursecontent(1)
Adf coursecontent(1)Adf coursecontent(1)
Adf coursecontent(1)
 
Running a Test Harness in Parallel using Jenkins
Running a Test Harness in Parallel using JenkinsRunning a Test Harness in Parallel using Jenkins
Running a Test Harness in Parallel using Jenkins
 
Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)Lecture 10 - Java Server Faces (JSF)
Lecture 10 - Java Server Faces (JSF)
 
HTML Online Course HTML Course Online online html courses html online training
HTML Online Course  HTML Course Online online html courses html online trainingHTML Online Course  HTML Course Online online html courses html online training
HTML Online Course HTML Course Online online html courses html online training
 
Vue and Firebase Experiences
Vue and Firebase ExperiencesVue and Firebase Experiences
Vue and Firebase Experiences
 
Web Apollo: A Web-based Genomics Annotation Editing Platform. 13ArthGen
Web Apollo: A Web-based Genomics Annotation Editing Platform. 13ArthGenWeb Apollo: A Web-based Genomics Annotation Editing Platform. 13ArthGen
Web Apollo: A Web-based Genomics Annotation Editing Platform. 13ArthGen
 
Web Apollo: A Web-based Genomic Annotation Editing Platform ISB2013
Web Apollo: A Web-based Genomic Annotation Editing Platform ISB2013Web Apollo: A Web-based Genomic Annotation Editing Platform ISB2013
Web Apollo: A Web-based Genomic Annotation Editing Platform ISB2013
 
Java UI Course Content
Java UI Course ContentJava UI Course Content
Java UI Course Content
 
Java Online Training
Java Online TrainingJava Online Training
Java Online Training
 
React Webnet Computer Institute.pdf
React Webnet Computer Institute.pdfReact Webnet Computer Institute.pdf
React Webnet Computer Institute.pdf
 
Build java-ee-applications-with-adf
Build java-ee-applications-with-adfBuild java-ee-applications-with-adf
Build java-ee-applications-with-adf
 
Oracle fusion dba online training
Oracle fusion  dba online trainingOracle fusion  dba online training
Oracle fusion dba online training
 
PoP - “Platform of Platforms”: Framework for building Single-Page Application...
PoP - “Platform of Platforms”: Framework for building Single-Page Application...PoP - “Platform of Platforms”: Framework for building Single-Page Application...
PoP - “Platform of Platforms”: Framework for building Single-Page Application...
 
Intro to React - Featuring Modern JavaScript
Intro to React - Featuring Modern JavaScriptIntro to React - Featuring Modern JavaScript
Intro to React - Featuring Modern JavaScript
 
Real User Monitoring: Getting Real Data from Real Users in the Real World - S...
Real User Monitoring: Getting Real Data from Real Users in the Real World - S...Real User Monitoring: Getting Real Data from Real Users in the Real World - S...
Real User Monitoring: Getting Real Data from Real Users in the Real World - S...
 

More from Katherine Golovinova

Contract-based Testing Approach as a Tool for Shift Lef
Contract-based Testing Approach as a Tool for Shift LefContract-based Testing Approach as a Tool for Shift Lef
Contract-based Testing Approach as a Tool for Shift LefKatherine Golovinova
 
Speed up application testing with azure container instances
Speed up application testing with azure container instancesSpeed up application testing with azure container instances
Speed up application testing with azure container instancesKatherine Golovinova
 
Analyzing application activities with KSQL and Elasticsearch
Analyzing application activities with KSQL and ElasticsearchAnalyzing application activities with KSQL and Elasticsearch
Analyzing application activities with KSQL and ElasticsearchKatherine Golovinova
 
Testing Big Data solutions fast and furiously
Testing Big Data solutions fast and furiouslyTesting Big Data solutions fast and furiously
Testing Big Data solutions fast and furiouslyKatherine Golovinova
 
"Fast & Fail in real life of DevTestSecOps"
"Fast & Fail in real life of DevTestSecOps""Fast & Fail in real life of DevTestSecOps"
"Fast & Fail in real life of DevTestSecOps"Katherine Golovinova
 
Geodistributed databases - what, how, and why?
Geodistributed databases - what, how, and why?Geodistributed databases - what, how, and why?
Geodistributed databases - what, how, and why?Katherine Golovinova
 
COSMOS DB - geodistributed database for anyone
COSMOS DB - geodistributed database for anyoneCOSMOS DB - geodistributed database for anyone
COSMOS DB - geodistributed database for anyoneKatherine Golovinova
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Katherine Golovinova
 
Azure Functions - the evolution of microservices platform or marketing gibber...
Azure Functions - the evolution of microservices platform or marketing gibber...Azure Functions - the evolution of microservices platform or marketing gibber...
Azure Functions - the evolution of microservices platform or marketing gibber...Katherine Golovinova
 
Automation of Security scanning easy or cheese
Automation of Security scanning easy or cheeseAutomation of Security scanning easy or cheese
Automation of Security scanning easy or cheeseKatherine Golovinova
 
Gradle plugins for Test Automation
Gradle plugins for Test AutomationGradle plugins for Test Automation
Gradle plugins for Test AutomationKatherine Golovinova
 
Automation world under the DevTestSecOps umbrella
Automation world under the DevTestSecOps umbrellaAutomation world under the DevTestSecOps umbrella
Automation world under the DevTestSecOps umbrellaKatherine Golovinova
 
"Disaster Recovery in Azure" by Viktor Kocherha
"Disaster Recovery in Azure" by Viktor Kocherha"Disaster Recovery in Azure" by Viktor Kocherha
"Disaster Recovery in Azure" by Viktor KocherhaKatherine Golovinova
 
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
"Certified Kubernetes Administrator Exam – how it was" by Andrii FedenishinKatherine Golovinova
 
"Modern CI/CD" by Dmytro Batiievskyi
"Modern CI/CD" by Dmytro Batiievskyi"Modern CI/CD" by Dmytro Batiievskyi
"Modern CI/CD" by Dmytro BatiievskyiKatherine Golovinova
 
EPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architectureEPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architectureKatherine Golovinova
 
EPAM DevOps community meetup: Designing bare metal Kubernetes clusters
EPAM DevOps community meetup: Designing bare metal Kubernetes clustersEPAM DevOps community meetup: Designing bare metal Kubernetes clusters
EPAM DevOps community meetup: Designing bare metal Kubernetes clustersKatherine Golovinova
 
Hosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft AzureHosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft AzureKatherine Golovinova
 
Infrastructure as Code for Azure: ARM or Terraform?
Infrastructure as Code for Azure: ARM or Terraform?Infrastructure as Code for Azure: ARM or Terraform?
Infrastructure as Code for Azure: ARM or Terraform?Katherine Golovinova
 
Azure IoT Hub: what is it and why we select other solution (production projec...
Azure IoT Hub: what is it and why we select other solution (production projec...Azure IoT Hub: what is it and why we select other solution (production projec...
Azure IoT Hub: what is it and why we select other solution (production projec...Katherine Golovinova
 

More from Katherine Golovinova (20)

Contract-based Testing Approach as a Tool for Shift Lef
Contract-based Testing Approach as a Tool for Shift LefContract-based Testing Approach as a Tool for Shift Lef
Contract-based Testing Approach as a Tool for Shift Lef
 
Speed up application testing with azure container instances
Speed up application testing with azure container instancesSpeed up application testing with azure container instances
Speed up application testing with azure container instances
 
Analyzing application activities with KSQL and Elasticsearch
Analyzing application activities with KSQL and ElasticsearchAnalyzing application activities with KSQL and Elasticsearch
Analyzing application activities with KSQL and Elasticsearch
 
Testing Big Data solutions fast and furiously
Testing Big Data solutions fast and furiouslyTesting Big Data solutions fast and furiously
Testing Big Data solutions fast and furiously
 
"Fast & Fail in real life of DevTestSecOps"
"Fast & Fail in real life of DevTestSecOps""Fast & Fail in real life of DevTestSecOps"
"Fast & Fail in real life of DevTestSecOps"
 
Geodistributed databases - what, how, and why?
Geodistributed databases - what, how, and why?Geodistributed databases - what, how, and why?
Geodistributed databases - what, how, and why?
 
COSMOS DB - geodistributed database for anyone
COSMOS DB - geodistributed database for anyoneCOSMOS DB - geodistributed database for anyone
COSMOS DB - geodistributed database for anyone
 
Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?Migrating from a monolith to microservices – is it worth it?
Migrating from a monolith to microservices – is it worth it?
 
Azure Functions - the evolution of microservices platform or marketing gibber...
Azure Functions - the evolution of microservices platform or marketing gibber...Azure Functions - the evolution of microservices platform or marketing gibber...
Azure Functions - the evolution of microservices platform or marketing gibber...
 
Automation of Security scanning easy or cheese
Automation of Security scanning easy or cheeseAutomation of Security scanning easy or cheese
Automation of Security scanning easy or cheese
 
Gradle plugins for Test Automation
Gradle plugins for Test AutomationGradle plugins for Test Automation
Gradle plugins for Test Automation
 
Automation world under the DevTestSecOps umbrella
Automation world under the DevTestSecOps umbrellaAutomation world under the DevTestSecOps umbrella
Automation world under the DevTestSecOps umbrella
 
"Disaster Recovery in Azure" by Viktor Kocherha
"Disaster Recovery in Azure" by Viktor Kocherha"Disaster Recovery in Azure" by Viktor Kocherha
"Disaster Recovery in Azure" by Viktor Kocherha
 
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
"Certified Kubernetes Administrator Exam – how it was" by Andrii Fedenishin
 
"Modern CI/CD" by Dmytro Batiievskyi
"Modern CI/CD" by Dmytro Batiievskyi"Modern CI/CD" by Dmytro Batiievskyi
"Modern CI/CD" by Dmytro Batiievskyi
 
EPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architectureEPAM DevOps community meetup: Building CI/CD for microservice architecture
EPAM DevOps community meetup: Building CI/CD for microservice architecture
 
EPAM DevOps community meetup: Designing bare metal Kubernetes clusters
EPAM DevOps community meetup: Designing bare metal Kubernetes clustersEPAM DevOps community meetup: Designing bare metal Kubernetes clusters
EPAM DevOps community meetup: Designing bare metal Kubernetes clusters
 
Hosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft AzureHosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft Azure
 
Infrastructure as Code for Azure: ARM or Terraform?
Infrastructure as Code for Azure: ARM or Terraform?Infrastructure as Code for Azure: ARM or Terraform?
Infrastructure as Code for Azure: ARM or Terraform?
 
Azure IoT Hub: what is it and why we select other solution (production projec...
Azure IoT Hub: what is it and why we select other solution (production projec...Azure IoT Hub: what is it and why we select other solution (production projec...
Azure IoT Hub: what is it and why we select other solution (production projec...
 

Recently uploaded

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 

Recently uploaded (20)

Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 

Gatling and Page Object: a way to performance testing

Editor's Notes

  1. Всем привет! Думаю, что многие из вас занимаются функциональным тестированием, будь то с использованием автоматизации и/или вручную, и для автоматизации тестирования используют в основном веб драйвер. Кто из вас работал или знаком с этим чудестным инструментом? Надеюсь, мой рассказ поможет тем, кто хотел бы получить новый опыт работы с огромной областью нефункционального тестирования. Здорово, что мы собрались в этом зале, я рад вас приветствовать и мы начнем...
  2. Итак, о чем сегодня пойдет речь? Я расскажу, с чего началось мое знакомство с перформанс тестированием: - как и, пожалуй, все в жизни, оно началось с идеи и любопытства. Затем следовала фаза имплементации, и в ней я столкнулся с задачами, решение которых потребовало некоторых усилий, бессонных ночей за гуглом и тому подобных практик, с которыми, я уверен, мы все так или иначе знакомы. На 4 шаге появились инструменты, оказавшие помощь в улучшении процессов перформанс тестирования. И завершает мою презентацию слайд об уроках, которые я для себя вынес.
  3. И вот тот слайд, который мы все знаем - Page Object. Тот самый знаменитый паттерн, к которому можно по-разному относиться, однако нельзя не отметить, что в автоматизации - это самый распространненный и широкоиспользуемый подход к постоению авто-тестов, где страница представлена в виде объекта. Более того, Page object подход поддерживается самом библиотекой Webdriver. Подход PageFactory предполагает lazy - инициализацию полей через динамические прокси.
  4. теперь, откуда появилась идея? Был коммерс сайт, продававший преимущественно головные уборы. И нами была постоена экосистема для автоматизированного тестирования и его интеграции с мануальным тестированием - от АQA там был Cucumber-JVM/Selenide/Allure (джентельменский набор), строилось все на Maven'e, был Spring для сетапа профайлов для разделения desktop и mobile тестирования. Из API тестирования мы засетапили RestAssured с Jackson парсерами.
  5. У нас была стратегия того, как выстраивать AQA и MQA взаимодействия на проекте. Мы постоили систему, где вся пирамида тестирования, начиная с Unit-ов и заканчивая UI, стартовала на ветке девелопера. У нас были проверки чек стайла, сонар, деплой кода ветки девелопера на сервер в клауде, инициализация и прогон тестов. Однако у нас не было перформанс тестирования, и мы решили восполнить этот пробел, тем более, что заказчик упоминал это в скоупе работа.
  6. Первым техническим выбором, который стоял передо мной, стал выбором инструмента. Jmeter/Gatling. С Jmeter я был на тот момент немного знаком, какие-то hello worlds писал, но меня тогда напрягало то, что Jmeter, упращая вход в конфигурацию нагрузки, накладывает свои рамки в организацию и структуру кода. Как я узнал потом, до известной степени это можно сгладить плагинами, позводяющими писать нагрузку на груви/java.
  7. Гатлинг позволяет с помощью DSL, написанной на скале, организовать нагрузочное тестирование с помощью скала классов.
  8. В Гатлинг позволяет использовать как record and play подход, который является довольно полезным для понимания, как формируются запросы. Так гатлинг является инструментом, напсанным на Скале, и содержит относительно несложный DSL, позволяющий конфигурировать нагрузку. У Гатлинга есть out of the box интеграция с Maven, что помогло нам интегрировать модуль нагрузочного тестирования в существующий сет up. Так же можно использовать SBT инструмент для скала проектов. Так же есть Jenkins OOTB плагин, позволяющий получать отчетность.
  9. Gatling не является браузером - он не ранит JS, не применяет CSS стили, реагирует на UI события и так далее.
  10. Но Гатлинг очень старается им быть - к примеру, через настройку inferHtmlResouces можно сказать инструменту распарсить HTML, найти включенные ресурсы и подгрузить их асинхронно. Можно сетапить кастомные хеадеры. Для того, чтобы мимикрировать под настоящие браузеры, Гатлинг может ранить несколько параллельных соединений, когда он подгружает ресурсы на каком-либо хосте. Гатлинг может кешировать информацию в респонсах, но когда включено кеширование респонсов, чеки не работают
  11. .queue - дефолтное поведение с использованием итератора. .random - выдергивание случайного значения .shuffle - перемешивает данные, потом используется как кью circular - идет сверху вниз, а как только низ достигнут - наверх.
  12. Конфигурации можно выносить и хранить в отдельном conf файле.
  13. Cлева - nUsers, виртуальные пользователи в количестве nUsers поднимаются сразу - по готовности.
  14. Heavyside - Виртуальные пользователи поднимаются в количестве nUsers будут подниматься ступенями. Слева - рамп ап - в течение определенного времени будут подниматься виртуальные пользователи в количестве nUsers через равные временные интервалы. Временные участки можно рандомизировать.
  15. Первая вещь, о которой нужно задуматься - энвайрмент. Вообще, перформанс тестирование - очень сложная задача, требующая отдельного скиллсета, знания подсистем и так далее. И одним из требований является адекватная и отвечающая требования среда выполнения Вторым барьером может оказаться незнание требований в том числе и кастомером. Третье - если вы не один, а с вами есть команда - команде может быть довольно сложно работать на скале.