SlideShare a Scribd company logo
1 of 40
Download to read offline
Jmeter Scripting Essentials
Common best practices & approaches to
keep your jmeter script in shape
Anton Serputko
Staff Performance Engineer at ServiceNow
Performance testing:
- community: t.me/perforator_club
- events: youtube.com/@serputko
- trainings, outsourcing, consulting: perforator.me/
Linkedin: linkedin.com/in/serputkoa/
Performance testing and
Jmeter in 40 mins?
No, it’s tips for you to
start using in your work
with Jmeter
New to Jmeter?
Join Jmeter Bootcamp
Source of knowledge
1. Jmeter documentation
2. Blazemeter knowledgebase
3. Stackoverflow
4. Past experience
5. Performance community
What is good Jmeter scenario
1. realistic production-like user flow and load profiles
2. correlation and parameterization
3. handling static data
4. maintainability
5. performance
6. test metrics results gathering
Test results gathering
Instead of
Get this
Test results in influxdb and grafana
1. Get real-time data
2. Extensive monitoring and analysis
3. Test results comparison
4. Configure backend listener props to get
valid results!
5. Contact me to get dashboards
Backend Listener configuration
1. application: ${__TestPlanName}@${__time(yyyy-MM-dd'T'hh:mm:ss,)}
2. test title: ${__P(CUSTOM_INFO,default value)} in application and
3. eventTags: users=1,rampup=,...
4. percentiles: 90;95;99;50
5. summaryOnly: false
Get valid results
quick fix without going too deep in details
edit jmeter.properties file
1. backend_metrics_window_mode=fixed -> timed
2. increase window sizes to 100000
Scenario structure
1. keep scripting style
a. variable naming convention
b. elements location
c. elements naming convention
2. be careful while recording
3. keep scenario logical using Logic
controllers
4. control load profile(% of actions
execution and think times)
5. debug and validate
6. re-use elements if needed
Elements naming
1. name all elements(pre/post processors)
2. do not parameterize name of sampler with ${}
3. replace parameterized value with static value in name
4. add method/details to recorded request url if they have similar
naming
5. name requests for API testing like GET /v1/auth/login
Elements scope
Be sure element is located where you expect
Scenario recording
Static data
Be default:
1. exclude “All suggested excludes” in Http test script
recorder
2. remove all hardcoded static data from the scenario
3. enable retrieve all embedded resources and parallel
downloads
a. use cache manager if retrieving static data
b. use 6 parallel downloads to
c. disable when you understand possible affect
3-d party resources
1. remove from scenario
2. when 3-d party could be left
a. not sure about their performance and it’s not async
b. use sandboxes or contact service providers
3. mock them if 3d party response is required for the flow
3d party examples: Google analytics, Google AdSense, Paypal, UPS shipping,
Browser internal tracking
Using recorder
1. filtering
a. better to leave extra then leave less
b. ask devs/check api docs if not sure
2. requests grouping with transaction
controllers
3. remove toggled redirect requests
4. always think if what you see is logical:
request duplication, extra requests, etc
5. keep recording action as realistic as
possible, pay attention to actions which
triggers ajax requests
Auto replace while recording
a. auto replace variables while recording if User defined variables is in scope of recorder
i. use with caution as more data could be replaced then you expect
b. auto replace with http request defaults to change to blank
Before scripting
Before scripting:
1. analyze logs, analytics, APM statistics from prod
2. define load profile
a. think times between actions
b. requests, actions percent distribution
c. scenario logic: loops, ifs, etc
While scripting
1. keep scenario logic realistic with logic controllers
a. use built-in jmeter components if possible
b. avoid overcomplicating scenario
c. avoid using custom JSR223 scripting when possible
2. add think time to the scenario:
a. Timers in Flow control action between transaction
controllers
3. control % of action execution
a. Throughput controller
b. Weighted switch controller
c. ALWAYS validate percentage distribution when using
throughput/weighted switch controllers on dummy samples
d. Do not use multiple thread groups
4. cover client logic. Extra requests for logged in user, etc
5. use assertions only in key places to reduce overhead
After scripting
1. validate your scenario
2. compare you test result profile with production profile, and adjust if
needed
Non-linear/Custom logic
1. If/While controller:
a. use groovy functions for best performance
b. do NOT use JS in any case
c. do not forget about .toInteger() for numbers
d. check positive and negative flow
2. Parallel controller
a. new connection and internal thread is created
in for each request
3. Weighted switch controller
a. save values by switching focus to another field
JSR223 Elements
1. Use groovy as a must!
a. a lot of solutions on stackoverflow using beanshell
beanshell is compatible with groovy
b. avoid using JS in any case!
2. Use .setIgnore() for JSR223 sampler
3. Use log.info(“{}”,var), out.println to debug groovy scripts
4. Do not use ${} in groovy, use vars.get()
5. Do not use ${VAR}, ${__JmeterFunction()} as they will be
cached
6. do not forget about .toInteger() in comparison
7. choose “cache compiled script if available” option
Scenario parameterization
1. what if scenario is not parameterized
a. will not work on different env
b. data is hardcoded so hitting cache
c. auth will expire after some time
2. types of parameterization
a. static values parameterization- variables
b. requests correlation- post processors
c. user input parameterization- jmeter functions
3. prefer dynamic data over reading from csv files
Variables
1. naming conventions
a. a, var, ProductID, productid - bad
b. PRODUCT_ID, productId - good
2. use User Defined Variables for variables creation
a. use Jmeter properties in variable value
b. variable could be created in Test Plan, but don’t do that
3. use jmeter properties to pass parameters from command line
4. CSV file to get data
a. use csv only for static data like user credentials
b. avoid using dynamic data which frequently changes, use
post processors to get data from server responses
c. use relative path using get base directory + separator
groovy function
d. use just file name if csv is located near jmx
Post processors/extractors
1. Correlating transactions
a. usually requests are dependent from each other, data sent by the client was previously
received from server
b. get data from responses using regex, jsonpath, css selector, boundary and xpath
c. usually no need to parameterize 100% of parameters
i. for example no need to parameterize amount of products on add to cart request
2. use multiple variables using regular expression groups from single extractor
3. use regex, jsonpath tester in view results tree to debug queries
4. set NOT_FOUND default value in extractors
5. do not place regex extractor on transaction controller level as it applies to multiple requests
Jmeter functions
● install Jmeter custom plugins
● use function helper
● re-use jmeter function result as a variable
● if function is used in user defined variables it will be initialized
only 1 time and then not changed when you call the variable
Debugging
1. add 1 debug post-processor on test plan level
a. avoid adding many debug samplers/post-processors
2. validate jmeter errors in jmeter.log
3. common issues with scope: wrong placement, not in element
4. if you put function call in user defined variables it will be initialized
inly 1 time and then not changed when you call the variable
5. validate positive and negative cases for if controllers
6. use log.info(“{}”,var), out.println to debug groovy scripts
7. debug issues/validate logic with dummy sampler
8. common issues working with variables:
a. misspelled ${} with $(), $[], {} without $, etc.
b. misspelled variable name on create or use
c. [ ] space before/after VARIABLE_NAME
Re-using elements
1. module controllers. re-use ONLY really
frequently used actions
2. do not move everything to module
controllers thoughtlessly
a. harder to navigate through scenario
3. if re-usable element is moved the link in
module controller will be broken
Non gui mode
● startup command and parameters
● generate html report
● write results to csv
● set jmeter properties to parameterize scenario
● write to log
● console status logger
● validate jmeter errors in jmeter.log
● run tests in non-gui mode
● parameterize non-gui run with jmeter properties
Jmeter plugins
● plugins in plugin manager might be outdated
● webdriver support plugin was not supporting
headless but github master had this changes
● check for bugs and read documentation(sometimes
several times)
● weighted switch
● parallel controller
Undo/Redo
Modify undo.history.size=0 in jmeter.properties
Use backups
Thank You
Let’s keep in touch: linkedin.com/in/serputkoa/
Join our performance testing:
- community: t.me/perforator_club
- events: youtube.com/@serputko
- trainings, outsourcing, consulting: perforator.me/

More Related Content

What's hot

Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testesElias Nogueira
 
Documenting your REST API with Swagger - JOIN 2014
Documenting your REST API with Swagger - JOIN 2014Documenting your REST API with Swagger - JOIN 2014
Documenting your REST API with Swagger - JOIN 2014JWORKS powered by Ordina
 
Three Lessons about Gatling and Microservices
Three Lessons about Gatling and MicroservicesThree Lessons about Gatling and Microservices
Three Lessons about Gatling and MicroservicesDragos Manolescu
 
Appium, Test-Driven Development, and Continuous Integration
Appium, Test-Driven Development, and Continuous IntegrationAppium, Test-Driven Development, and Continuous Integration
Appium, Test-Driven Development, and Continuous IntegrationTechWell
 
ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2Yogindernath Gupta
 
Top 20 best automation testing tools
Top 20 best automation testing toolsTop 20 best automation testing tools
Top 20 best automation testing toolsQACraft
 
Arquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaArquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaElias Nogueira
 
Selenium with Cucumber
Selenium  with Cucumber Selenium  with Cucumber
Selenium with Cucumber Knoldus Inc.
 
Tu primer script en Katalon - Paso a Paso
Tu primer script en Katalon - Paso a PasoTu primer script en Katalon - Paso a Paso
Tu primer script en Katalon - Paso a PasoArgentesting
 
Using JMeter for Performance Testing Live Streaming Applications
Using JMeter for Performance Testing Live Streaming ApplicationsUsing JMeter for Performance Testing Live Streaming Applications
Using JMeter for Performance Testing Live Streaming ApplicationsBlazeMeter
 
Ppt of soap ui
Ppt of soap uiPpt of soap ui
Ppt of soap uipkslide28
 
Cross browser testing using BrowserStack
Cross browser testing using BrowserStack Cross browser testing using BrowserStack
Cross browser testing using BrowserStack RapidValue
 
SpiraTest Overview Presentation (2022)
SpiraTest Overview Presentation (2022)SpiraTest Overview Presentation (2022)
SpiraTest Overview Presentation (2022)Inflectra
 
Model-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next LevelModel-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next LevelBob Binder
 

What's hot (20)

Usando containers com auto-escala de testes
Usando containers com auto-escala de testesUsando containers com auto-escala de testes
Usando containers com auto-escala de testes
 
Documenting your REST API with Swagger - JOIN 2014
Documenting your REST API with Swagger - JOIN 2014Documenting your REST API with Swagger - JOIN 2014
Documenting your REST API with Swagger - JOIN 2014
 
Three Lessons about Gatling and Microservices
Three Lessons about Gatling and MicroservicesThree Lessons about Gatling and Microservices
Three Lessons about Gatling and Microservices
 
Rest assured
Rest assuredRest assured
Rest assured
 
Appium, Test-Driven Development, and Continuous Integration
Appium, Test-Driven Development, and Continuous IntegrationAppium, Test-Driven Development, and Continuous Integration
Appium, Test-Driven Development, and Continuous Integration
 
Bdd and spec flow
Bdd and spec flowBdd and spec flow
Bdd and spec flow
 
ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2ISTQB / ISEB Foundation Exam Practice - 2
ISTQB / ISEB Foundation Exam Practice - 2
 
Testing Tools
Testing ToolsTesting Tools
Testing Tools
 
Top 20 best automation testing tools
Top 20 best automation testing toolsTop 20 best automation testing tools
Top 20 best automation testing tools
 
Arquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto JavaArquitetura básica de testes para seu projeto Java
Arquitetura básica de testes para seu projeto Java
 
Swagger UI
Swagger UISwagger UI
Swagger UI
 
Selenium with Cucumber
Selenium  with Cucumber Selenium  with Cucumber
Selenium with Cucumber
 
Tu primer script en Katalon - Paso a Paso
Tu primer script en Katalon - Paso a PasoTu primer script en Katalon - Paso a Paso
Tu primer script en Katalon - Paso a Paso
 
Using JMeter for Performance Testing Live Streaming Applications
Using JMeter for Performance Testing Live Streaming ApplicationsUsing JMeter for Performance Testing Live Streaming Applications
Using JMeter for Performance Testing Live Streaming Applications
 
Test NG Framework Complete Walk Through
Test NG Framework Complete Walk ThroughTest NG Framework Complete Walk Through
Test NG Framework Complete Walk Through
 
What is Swagger?
What is Swagger?What is Swagger?
What is Swagger?
 
Ppt of soap ui
Ppt of soap uiPpt of soap ui
Ppt of soap ui
 
Cross browser testing using BrowserStack
Cross browser testing using BrowserStack Cross browser testing using BrowserStack
Cross browser testing using BrowserStack
 
SpiraTest Overview Presentation (2022)
SpiraTest Overview Presentation (2022)SpiraTest Overview Presentation (2022)
SpiraTest Overview Presentation (2022)
 
Model-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next LevelModel-based Testing: Taking BDD/ATDD to the Next Level
Model-based Testing: Taking BDD/ATDD to the Next Level
 

Similar to Jmeter Scripting Essentials: Best Practices

Perf test Eng interview preparation
Perf test Eng interview preparationPerf test Eng interview preparation
Perf test Eng interview preparationpratik mohite
 
ScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency InjectionScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency Injection7mind
 
Dive into Angular, part 5: Experience
Dive into Angular, part 5: ExperienceDive into Angular, part 5: Experience
Dive into Angular, part 5: ExperienceOleksii Prohonnyi
 
Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Anand Bagmar
 
Software Testing
Software TestingSoftware Testing
Software TestingAdroitLogic
 
Introduction to Integration Tests in Magento / Adobe Commerce
Introduction to Integration Tests in Magento / Adobe CommerceIntroduction to Integration Tests in Magento / Adobe Commerce
Introduction to Integration Tests in Magento / Adobe CommerceBartosz Górski
 
Introduction to Integration Tests in Magento / Adobe Commerce
Introduction to Integration Tests in Magento / Adobe CommerceIntroduction to Integration Tests in Magento / Adobe Commerce
Introduction to Integration Tests in Magento / Adobe CommerceBartosz Górski
 
Perfromane Test Tool jmeter
Perfromane Test Tool jmeterPerfromane Test Tool jmeter
Perfromane Test Tool jmeterNaga Mallala
 
Loadrunner Onloine Training
Loadrunner Onloine TrainingLoadrunner Onloine Training
Loadrunner Onloine TrainingNagendra Kumar
 
Guidelines and Best Practices for Sencha Projects
Guidelines and Best Practices for Sencha ProjectsGuidelines and Best Practices for Sencha Projects
Guidelines and Best Practices for Sencha ProjectsAmitaSuri
 
Performance testing checklist.pdf
Performance testing checklist.pdfPerformance testing checklist.pdf
Performance testing checklist.pdfAnuSelvaraj2
 
The complete guide to BDD + Cucumber Best Practices and Anti-Patterns.
The complete guide to BDD + Cucumber Best Practices and Anti-Patterns.The complete guide to BDD + Cucumber Best Practices and Anti-Patterns.
The complete guide to BDD + Cucumber Best Practices and Anti-Patterns.Test Evolve
 
Droidcon Spain 2016 - The Pragmatic Android Programmer: from hype to reality
 Droidcon Spain 2016 - The Pragmatic Android Programmer: from hype to reality Droidcon Spain 2016 - The Pragmatic Android Programmer: from hype to reality
Droidcon Spain 2016 - The Pragmatic Android Programmer: from hype to realityDaniel Gallego Vico
 
How to kill test flake in appium
How to kill test flake in appiumHow to kill test flake in appium
How to kill test flake in appiumGaurav Singh
 
Automation frameworks
Automation frameworksAutomation frameworks
Automation frameworksVishwanath KC
 
Mykola Kovsh - Functional API automation with Jmeter
Mykola Kovsh - Functional API automation with JmeterMykola Kovsh - Functional API automation with Jmeter
Mykola Kovsh - Functional API automation with JmeterIevgenii Katsan
 

Similar to Jmeter Scripting Essentials: Best Practices (20)

Perf test Eng interview preparation
Perf test Eng interview preparationPerf test Eng interview preparation
Perf test Eng interview preparation
 
ScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency InjectionScalaUA - distage: Staged Dependency Injection
ScalaUA - distage: Staged Dependency Injection
 
Dive into Angular, part 5: Experience
Dive into Angular, part 5: ExperienceDive into Angular, part 5: Experience
Dive into Angular, part 5: Experience
 
Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021Eradicate Flaky Tests - AppiumConf 2021
Eradicate Flaky Tests - AppiumConf 2021
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Test AI/ML Applications
Test AI/ML ApplicationsTest AI/ML Applications
Test AI/ML Applications
 
Load testing jmeter
Load testing jmeterLoad testing jmeter
Load testing jmeter
 
Introduction to Integration Tests in Magento / Adobe Commerce
Introduction to Integration Tests in Magento / Adobe CommerceIntroduction to Integration Tests in Magento / Adobe Commerce
Introduction to Integration Tests in Magento / Adobe Commerce
 
Introduction to Integration Tests in Magento / Adobe Commerce
Introduction to Integration Tests in Magento / Adobe CommerceIntroduction to Integration Tests in Magento / Adobe Commerce
Introduction to Integration Tests in Magento / Adobe Commerce
 
Test Automation
Test AutomationTest Automation
Test Automation
 
Perfromane Test Tool jmeter
Perfromane Test Tool jmeterPerfromane Test Tool jmeter
Perfromane Test Tool jmeter
 
Loadrunner Onloine Training
Loadrunner Onloine TrainingLoadrunner Onloine Training
Loadrunner Onloine Training
 
Guidelines and Best Practices for Sencha Projects
Guidelines and Best Practices for Sencha ProjectsGuidelines and Best Practices for Sencha Projects
Guidelines and Best Practices for Sencha Projects
 
MSSQL Queries.pdf
MSSQL Queries.pdfMSSQL Queries.pdf
MSSQL Queries.pdf
 
Performance testing checklist.pdf
Performance testing checklist.pdfPerformance testing checklist.pdf
Performance testing checklist.pdf
 
The complete guide to BDD + Cucumber Best Practices and Anti-Patterns.
The complete guide to BDD + Cucumber Best Practices and Anti-Patterns.The complete guide to BDD + Cucumber Best Practices and Anti-Patterns.
The complete guide to BDD + Cucumber Best Practices and Anti-Patterns.
 
Droidcon Spain 2016 - The Pragmatic Android Programmer: from hype to reality
 Droidcon Spain 2016 - The Pragmatic Android Programmer: from hype to reality Droidcon Spain 2016 - The Pragmatic Android Programmer: from hype to reality
Droidcon Spain 2016 - The Pragmatic Android Programmer: from hype to reality
 
How to kill test flake in appium
How to kill test flake in appiumHow to kill test flake in appium
How to kill test flake in appium
 
Automation frameworks
Automation frameworksAutomation frameworks
Automation frameworks
 
Mykola Kovsh - Functional API automation with Jmeter
Mykola Kovsh - Functional API automation with JmeterMykola Kovsh - Functional API automation with Jmeter
Mykola Kovsh - Functional API automation with Jmeter
 

More from GoQA

Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...GoQA
 
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»GoQA
 
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»GoQA
 
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...GoQA
 
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»GoQA
 
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»GoQA
 
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»GoQA
 
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...GoQA
 
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»GoQA
 
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»GoQA
 
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»GoQA
 
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...GoQA
 
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...GoQA
 
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»GoQA
 
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»GoQA
 
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...GoQA
 
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...GoQA
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»GoQA
 
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»GoQA
 
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»GoQA
 

More from GoQA (20)

Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
Досвід здачі іспиту ISTQB Expert level: подробиці, перепідготовка, актуальніс...
 
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
АРТЕМ ГРИГОРЕНКО «Покращення процесів найму»
 
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
КАТЕРИНА ЖУПАН «Mobile Testing based on “ISTQB Mobile Application – Syllabus»
 
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
МОРРІС-ВСЕСЛАВ ШОСТАК «Роль QA в індустрії програмного та апаратного забезпеч...
 
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
ОКСАНА ГОРОЩУК «Improving Quality Through Root Cause Analysis»
 
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
ПАВЛО САФОНОВ «Як оцінити ефективність автоматизації»
 
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
ГАННА КІЛІМОВА & СВІТЛАНА ЯКОВЛЄВА «ADA testing – те, що дуже на часі»
 
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
СЕРГІЙ БРИТ «Як запускати тести з Playwright Java написані на Selenide. Не пе...
 
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
БОГДАН САВЧУК «IoT testing: Manual, Automation and Cyber Security techniques»
 
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
ЕЛЬМІР ІСКАНДЕРОВ «Bulletproof Your Software: The Magic of Security Autotests»
 
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
ІННА ДВОЙНІКОВА «Як вийти на Upwork та розширити горизонти QA»
 
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
КАТЕРИНА АБЗЯТОВА «Point of Growth: Transforming Challenges into Skill-Buildi...
 
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
НАТАЛІЯ ТРОЙНІЧ «Редизайн всього продукту, коли на проекті залишилось два ман...
 
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
РІНА УЖЕВКО «Вплив архітектури на стратегію тестування»
 
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
СЕРГІЙ РУСІНЧУК «Розкриття майстерності QA команд через KPI»
 
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
КАТЕРИНА АБЗЯТОВА - Certify with confidence: ISTQB Foundation 4.0. Common err...
 
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
Слуцька Вікторія - Виступити і не наступити на граблі: Як виступати QA спеціа...
 
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
ОЛЕКСАНДР ХОТЕМСЬКИЙ «Планування стратегії розвитку тестування на проекті»
 
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
ОЛЕКСІЙ ОСТАПОВ «Створення плагінів для pytest»
 
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
РОМАН ДУМАНСЬКИЙ «Testing the application in the Amazon Cloud»
 

Recently uploaded

Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxAnaBeatriceAblay2
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting DataJhengPantaleon
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfMahmoud M. Sallam
 
Science lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lessonScience lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lessonJericReyAuditor
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfakmcokerachita
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 

Recently uploaded (20)

Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptxENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
ENGLISH5 QUARTER4 MODULE1 WEEK1-3 How Visual and Multimedia Elements.pptx
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data_Math 4-Q4 Week 5.pptx Steps in Collecting Data
_Math 4-Q4 Week 5.pptx Steps in Collecting Data
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
 
Pharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdfPharmacognosy Flower 3. Compositae 2023.pdf
Pharmacognosy Flower 3. Compositae 2023.pdf
 
Science lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lessonScience lesson Moon for 4th quarter lesson
Science lesson Moon for 4th quarter lesson
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdf
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 

Jmeter Scripting Essentials: Best Practices

  • 1. Jmeter Scripting Essentials Common best practices & approaches to keep your jmeter script in shape
  • 2. Anton Serputko Staff Performance Engineer at ServiceNow Performance testing: - community: t.me/perforator_club - events: youtube.com/@serputko - trainings, outsourcing, consulting: perforator.me/ Linkedin: linkedin.com/in/serputkoa/
  • 4. No, it’s tips for you to start using in your work with Jmeter
  • 5. New to Jmeter? Join Jmeter Bootcamp
  • 6. Source of knowledge 1. Jmeter documentation 2. Blazemeter knowledgebase 3. Stackoverflow 4. Past experience 5. Performance community
  • 7. What is good Jmeter scenario 1. realistic production-like user flow and load profiles 2. correlation and parameterization 3. handling static data 4. maintainability 5. performance 6. test metrics results gathering
  • 11.
  • 12. Test results in influxdb and grafana 1. Get real-time data 2. Extensive monitoring and analysis 3. Test results comparison 4. Configure backend listener props to get valid results! 5. Contact me to get dashboards
  • 13. Backend Listener configuration 1. application: ${__TestPlanName}@${__time(yyyy-MM-dd'T'hh:mm:ss,)} 2. test title: ${__P(CUSTOM_INFO,default value)} in application and 3. eventTags: users=1,rampup=,... 4. percentiles: 90;95;99;50 5. summaryOnly: false
  • 14. Get valid results quick fix without going too deep in details edit jmeter.properties file 1. backend_metrics_window_mode=fixed -> timed 2. increase window sizes to 100000
  • 15. Scenario structure 1. keep scripting style a. variable naming convention b. elements location c. elements naming convention 2. be careful while recording 3. keep scenario logical using Logic controllers 4. control load profile(% of actions execution and think times) 5. debug and validate 6. re-use elements if needed
  • 16. Elements naming 1. name all elements(pre/post processors) 2. do not parameterize name of sampler with ${} 3. replace parameterized value with static value in name 4. add method/details to recorded request url if they have similar naming 5. name requests for API testing like GET /v1/auth/login
  • 17. Elements scope Be sure element is located where you expect
  • 19. Static data Be default: 1. exclude “All suggested excludes” in Http test script recorder 2. remove all hardcoded static data from the scenario 3. enable retrieve all embedded resources and parallel downloads a. use cache manager if retrieving static data b. use 6 parallel downloads to c. disable when you understand possible affect
  • 20. 3-d party resources 1. remove from scenario 2. when 3-d party could be left a. not sure about their performance and it’s not async b. use sandboxes or contact service providers 3. mock them if 3d party response is required for the flow 3d party examples: Google analytics, Google AdSense, Paypal, UPS shipping, Browser internal tracking
  • 21. Using recorder 1. filtering a. better to leave extra then leave less b. ask devs/check api docs if not sure 2. requests grouping with transaction controllers 3. remove toggled redirect requests 4. always think if what you see is logical: request duplication, extra requests, etc 5. keep recording action as realistic as possible, pay attention to actions which triggers ajax requests
  • 22. Auto replace while recording a. auto replace variables while recording if User defined variables is in scope of recorder i. use with caution as more data could be replaced then you expect b. auto replace with http request defaults to change to blank
  • 23. Before scripting Before scripting: 1. analyze logs, analytics, APM statistics from prod 2. define load profile a. think times between actions b. requests, actions percent distribution c. scenario logic: loops, ifs, etc
  • 24. While scripting 1. keep scenario logic realistic with logic controllers a. use built-in jmeter components if possible b. avoid overcomplicating scenario c. avoid using custom JSR223 scripting when possible 2. add think time to the scenario: a. Timers in Flow control action between transaction controllers 3. control % of action execution a. Throughput controller b. Weighted switch controller c. ALWAYS validate percentage distribution when using throughput/weighted switch controllers on dummy samples d. Do not use multiple thread groups 4. cover client logic. Extra requests for logged in user, etc 5. use assertions only in key places to reduce overhead
  • 25. After scripting 1. validate your scenario 2. compare you test result profile with production profile, and adjust if needed
  • 26. Non-linear/Custom logic 1. If/While controller: a. use groovy functions for best performance b. do NOT use JS in any case c. do not forget about .toInteger() for numbers d. check positive and negative flow 2. Parallel controller a. new connection and internal thread is created in for each request 3. Weighted switch controller a. save values by switching focus to another field
  • 27. JSR223 Elements 1. Use groovy as a must! a. a lot of solutions on stackoverflow using beanshell beanshell is compatible with groovy b. avoid using JS in any case! 2. Use .setIgnore() for JSR223 sampler 3. Use log.info(“{}”,var), out.println to debug groovy scripts 4. Do not use ${} in groovy, use vars.get() 5. Do not use ${VAR}, ${__JmeterFunction()} as they will be cached 6. do not forget about .toInteger() in comparison 7. choose “cache compiled script if available” option
  • 28. Scenario parameterization 1. what if scenario is not parameterized a. will not work on different env b. data is hardcoded so hitting cache c. auth will expire after some time 2. types of parameterization a. static values parameterization- variables b. requests correlation- post processors c. user input parameterization- jmeter functions 3. prefer dynamic data over reading from csv files
  • 29. Variables 1. naming conventions a. a, var, ProductID, productid - bad b. PRODUCT_ID, productId - good 2. use User Defined Variables for variables creation a. use Jmeter properties in variable value b. variable could be created in Test Plan, but don’t do that 3. use jmeter properties to pass parameters from command line 4. CSV file to get data a. use csv only for static data like user credentials b. avoid using dynamic data which frequently changes, use post processors to get data from server responses c. use relative path using get base directory + separator groovy function d. use just file name if csv is located near jmx
  • 30. Post processors/extractors 1. Correlating transactions a. usually requests are dependent from each other, data sent by the client was previously received from server b. get data from responses using regex, jsonpath, css selector, boundary and xpath c. usually no need to parameterize 100% of parameters i. for example no need to parameterize amount of products on add to cart request 2. use multiple variables using regular expression groups from single extractor 3. use regex, jsonpath tester in view results tree to debug queries 4. set NOT_FOUND default value in extractors 5. do not place regex extractor on transaction controller level as it applies to multiple requests
  • 31. Jmeter functions ● install Jmeter custom plugins ● use function helper ● re-use jmeter function result as a variable ● if function is used in user defined variables it will be initialized only 1 time and then not changed when you call the variable
  • 32. Debugging 1. add 1 debug post-processor on test plan level a. avoid adding many debug samplers/post-processors 2. validate jmeter errors in jmeter.log 3. common issues with scope: wrong placement, not in element 4. if you put function call in user defined variables it will be initialized inly 1 time and then not changed when you call the variable 5. validate positive and negative cases for if controllers 6. use log.info(“{}”,var), out.println to debug groovy scripts 7. debug issues/validate logic with dummy sampler 8. common issues working with variables: a. misspelled ${} with $(), $[], {} without $, etc. b. misspelled variable name on create or use c. [ ] space before/after VARIABLE_NAME
  • 33. Re-using elements 1. module controllers. re-use ONLY really frequently used actions 2. do not move everything to module controllers thoughtlessly a. harder to navigate through scenario 3. if re-usable element is moved the link in module controller will be broken
  • 34. Non gui mode ● startup command and parameters ● generate html report ● write results to csv ● set jmeter properties to parameterize scenario ● write to log ● console status logger ● validate jmeter errors in jmeter.log ● run tests in non-gui mode ● parameterize non-gui run with jmeter properties
  • 35. Jmeter plugins ● plugins in plugin manager might be outdated ● webdriver support plugin was not supporting headless but github master had this changes ● check for bugs and read documentation(sometimes several times) ● weighted switch ● parallel controller
  • 37. Modify undo.history.size=0 in jmeter.properties
  • 39.
  • 40. Thank You Let’s keep in touch: linkedin.com/in/serputkoa/ Join our performance testing: - community: t.me/perforator_club - events: youtube.com/@serputko - trainings, outsourcing, consulting: perforator.me/