SlideShare a Scribd company logo
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
Gatling and Page Object: a way to performance testing
Step 1: Idea:
Commerce
site
UI testing
API testing
Performance?
Desert
Step 2:
Implementation
Jmeter
Gatling
Gatling and Page Object: a way to performance testing
Gatling
peculiarities
Scripting
Maven OOTB integration
Jenkins OOTB integration
Gatling and Page Object: a way to performance testing
Gatling and Page Object: a way to performance testing
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
Gatling and Page Object: a way to performance testing
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
Gatling and Page Object: a way to performance testing
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

PPSX
Selenium WebDriver
PPTX
Web development using javaScript, React js, Node js, HTML, CSS and SQL
PDF
Spring Framework - Core
PDF
Test Documentation Based On Ieee829 155261
PPT
Performance testing : An Overview
PPTX
Introduction To Power Shell
PPT
Unit 1 Java
PDF
개발이 테스트를 만났을 때(Shift left testing)
Selenium WebDriver
Web development using javaScript, React js, Node js, HTML, CSS and SQL
Spring Framework - Core
Test Documentation Based On Ieee829 155261
Performance testing : An Overview
Introduction To Power Shell
Unit 1 Java
개발이 테스트를 만났을 때(Shift left testing)

What's hot (20)

PDF
Clase3b especificacion qualityattributesyqaw
PPTX
Automation Test Framework
PPT
Java basic tutorial by sanjeevini india
PPTX
Data driven Automation Framework with Selenium
PDF
Vue JS Intro
PPT
Unit Test
PDF
(Declarative) Jenkins Pipelines
PPT
Java Server Faces (JSF) - Basics
PPTX
Python in Test automation
PDF
Performance testing presentation
PPTX
Framework For Automation Testing Practice Sharing
PDF
Software Engineering - chp8- deployment
PPTX
Software testing performance testing
PPTX
Java springboot framework- Spring Boot.pptx
PPT
Performance Testing With Jmeter
PPTX
Manual Vs Automation Testing
PDF
Automation - Apache JMeter
PPT
Selenium Automation Framework
PPTX
Enterprise java unit-1_chapter-2
PPTX
Automation testing
Clase3b especificacion qualityattributesyqaw
Automation Test Framework
Java basic tutorial by sanjeevini india
Data driven Automation Framework with Selenium
Vue JS Intro
Unit Test
(Declarative) Jenkins Pipelines
Java Server Faces (JSF) - Basics
Python in Test automation
Performance testing presentation
Framework For Automation Testing Practice Sharing
Software Engineering - chp8- deployment
Software testing performance testing
Java springboot framework- Spring Boot.pptx
Performance Testing With Jmeter
Manual Vs Automation Testing
Automation - Apache JMeter
Selenium Automation Framework
Enterprise java unit-1_chapter-2
Automation testing
Ad

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

ODP
Boost your App with Gatling
ODP
Gatling
ODP
Performance Test Automation With Gatling
PDF
Codemotion tech pills - Continuous performance
PDF
Amsterdam JUG - Continuous performance
PPTX
Gatling
PPTX
Интеграция решения по тестированию производительности в существующий фреймвор...
PDF
DeTesters meetup november 2018 - Continuous performance: load testing with G...
PDF
Gatling workshop lets test17
PDF
Continuous performance: Load testing for developers with gatling @ Utrecht JUG
PDF
Continuous Performance - Load testing for developers with gatling @ iSense 2016
PDF
Continuous performance: Load testing for developers with gatling @ JavaOne 2016
PDF
Load testing in Zonky with Gatling
PDF
Gatling Performance Workshop
PDF
GatlingJAX2022.pdf
PDF
Create an architecture for web test automation
PDF
Ui automation
PDF
UI Testing Pattern
PDF
Gatling - SoftShake 2013
PDF
Blast your app with Gatling! by Stephane Landelle
Boost your App with Gatling
Gatling
Performance Test Automation With Gatling
Codemotion tech pills - Continuous performance
Amsterdam JUG - Continuous performance
Gatling
Интеграция решения по тестированию производительности в существующий фреймвор...
DeTesters meetup november 2018 - Continuous performance: load testing with G...
Gatling workshop lets test17
Continuous performance: Load testing for developers with gatling @ Utrecht JUG
Continuous Performance - Load testing for developers with gatling @ iSense 2016
Continuous performance: Load testing for developers with gatling @ JavaOne 2016
Load testing in Zonky with Gatling
Gatling Performance Workshop
GatlingJAX2022.pdf
Create an architecture for web test automation
Ui automation
UI Testing Pattern
Gatling - SoftShake 2013
Blast your app with Gatling! by Stephane Landelle
Ad

More from Katherine Golovinova (20)

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

Recently uploaded (20)

PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
KodekX | Application Modernization Development
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Encapsulation theory and applications.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
cuic standard and advanced reporting.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPT
Teaching material agriculture food technology
PDF
Approach and Philosophy of On baking technology
Building Integrated photovoltaic BIPV_UPV.pdf
KodekX | Application Modernization Development
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Encapsulation theory and applications.pdf
Electronic commerce courselecture one. Pdf
cuic standard and advanced reporting.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
MYSQL Presentation for SQL database connectivity
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Review of recent advances in non-invasive hemoglobin estimation
Advanced methodologies resolving dimensionality complications for autism neur...
“AI and Expert System Decision Support & Business Intelligence Systems”
Understanding_Digital_Forensics_Presentation.pptx
Machine learning based COVID-19 study performance prediction
MIND Revenue Release Quarter 2 2025 Press Release
Teaching material agriculture food technology
Approach and Philosophy of On baking technology

Gatling and Page Object: a way to performance testing

Editor's Notes

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