SlideShare a Scribd company logo
Functional API automation
with JMeter (real case)
by Mykola Kovsh
Speaker info
Hi, I’m Mykola Kovsh
Performance Test Engineer
Performance Testing Department at
Testing Center of Excellence,
Ciklum, Ukraine
• 4 years in IT
• Performance / Automation / Manual testing
www.linkedin.com/in/mykolakovsh/
Plan
1. Testing Product Description
2. Our Problem
3. JMeter as a Solution
4. Continuous Integration with JMeter. Reporting
5. Demo
6. Our Results
7. Conclusions
8. Useful Links
Questions
Testing Product Description
Client: Mobile / Facebook web sport betting application
Server: Amazon cloud-based application, REST API based
Technology stack: Java, Cassandra DB, Unity 3D
Product is in active development for near 3 years
A lot of parsing and integration logic with 3rd-party data providers
Frequent releases driven by business needs (startup)
Our Problem
 We should run full regression REST API functional tests each
release
 Manual runs took 4-5 days for 2 QAs what did not satisfy business
 No QA automation specialist on the project, but we use JMeter for
performance testing and have expertise in it
 A lot of GUI/usability testing in addition to functional
 To sum up: often we did not have time for full functional regression
testing before release what resulted in bugs and frequent hotfixes
on Production
Solution 1: Postman
Good as supplementary tool for manual testing
CI integration
Reports converting to HTML file
Team work option but NOT FREE
In case of tricky parametrization and custom
logic, some tool’s issues could influence auto
tests runs
JavaScript basic knowledge is required
Hard to maintain when a lot of test-cases
No ability of parallel runs
Reports are not very comprehensive
Solution 2: JMeter. Why for API?
Free tool with large community and support
GUI based - fast learning
Customization - through JMeter API and using scripting languages
Ability to reuse functional tests for load purposes
Ability to reuse GUI modules in different tests
Assertions - allow you to "test" whether your application returns the results you expect it to
Parallel test runs
CI integration
Comprehensive HTML reports
Basic knowledge of some scripting language and regular expressions is required
Hard to maintain on large projects
Version control: only JMX files could be tracked
JMeter: Functional Tests Creation
1. Thread Group (user) -> Test set/Test suite
2. Logic Controllers:
a) Transaction Controller -> Test suite/Test case
b) Loop/While/ForEach Controller
c) If Controller etc.
3. Samplers -> Requests (HTTP(s), TCP, SOAP, etc.)
4. Assertions -> Test your response/Customize/Parametrize
5. Timers
6. Configuration elements
1
2
3
4
5
6
JMeter: Customize/Parametrize/Test
Assertion types:
JSR223 Assertion
Response Assertion
Duration Assertion
Size Assertion
XML Assertion
BeanShell Assertion
MD5Hex Assertion
HTML Assertion
XPath Assertion
XML Schema Assertion
Compare Assertion, etc.
Reusable/Modular Scripts Approach
To make functional testing scripts
easy maintainable and reusable
use next JMeter elements:
Test Fragment
Simple / Transaction Controller
Module Controller
Parameterized Controller
Include Controller
Data + Keyword Driven Approach
To separate test scripts from test
cases design use next JMeter
elements:
Test Fragment
Switch Controller
Simple / Transaction Controller
Module Controller
ForEach Controller
CSV Data Set Config
JMeter: Continuous Integration
Process and tools:
1. JMeter: functional testing scripts
2. ANT build tool: converts results from JTL output files into HTML
reports
- ANT parses JTL logs using XSLT stylesheet file
3. Bamboo CI tool
Development Source Control Build Unit/Integration Testing Functional Testing Report
JMeter CI: Approaches
ANT standalone – all steps are
executed in ANT build.xml file,
using 1 Bamboo Task:
• Run JMeter tests
• Convert JTL logs to HTML
report
• Verify test results and pass/fail
build
PowerShell + ANT combination
– 3 Bamboo tasks:
• Task 1 Script: run JMeter
tests
• Task 2 ANT: convert JTL log
to HTML report
• Task 3 Script: verify results
and pass/fail build
CI 2nd Approach: Project Structure
Bamboo Task 1: Tests Running
del Jmeter_ci_with_antresultstest_report.html
del Jmeter_ci_with_antresultsresultlog.jtl
${bamboo.JMETER_HOME}binjmeter.bat -n -t Jmeter_ci_with_antJmeter_test_plan.jmx -l
Jmeter_ci_with_antresultsresultlog.jtl -q Jmeter_ci_with_antci_jmeter.properties
Bamboo Task 2: HTML Reporting
Bamboo Task 2: ANT Build File
After tests executed, generate
HTML report using build_report.xml
file (default name build.xml)
We have 3 <target> here:
• report - log process
• xslt-report – convert using
XSLT file
• copy_report – move reports to
separate folder to keep history
HTML: XSLT Stylesheet File Update
Our Improvements:
• Statistics by test suites (threads) and request
• Expand/Collapse test suits option
• Show only failed transactions filter
before after
*Origin: http://shanhe.me/node/18/314
*Updated XSLT:
https://drive.google.com/file/d/0B4SCa_HZT_OOQnoyQjc1TGw0a0E/view?usp=sharing
HTML Reporting: Investigate Issue
HTML Reporting: Limitation
In case different Thread Groups run under the same Test Plan, they are not separated in report
To deal with it, we suggest:
1) Run Thread Groups consequently. It can take some time, if there are a lot of cases
2) or Separate Test Plans (JMX files) by some logic and run them simultaneously
Bamboo Task 3: Verify results
Recommendations
1) Apply decomposition for faster tests runs:
- One functional area - One separate Test Plan
- Decompose tests runs by jobs in CI tool (Bamboo, Jenkins)
2) Run smoke functional test and, if success, make it trigger full coverage testing run
3) Use Modular approach to create maintainable/reusable scripts
4) Team work: use Include Controllers to run scripts created by each member
5) Use JSR223 Assertion element to customize/parametrize/test your custom logic in flexible way
6) Use User Defined Variables element to create and fast switch between Test/Stage/Prod hosts
7) Share your scripts with developers to debug current and new features
8) Use JMeter scripts for Load testing, if needed
Disadvantages
 Inappropriate for large projects/teams
 Hard to maintain scripts, if there are lot of them
 Scripts version control is absent
 Not very convenient for QA team use (if more than 1-2 QA specialists)
 You still need time to learn some scripting language (and regexp) to
create comprehensive scripts with JMeter
Our Results
For 5 months ~200 (30%) of API functional high priority test cases were automated
~100 regression and ~80 new features bugs found
Functional API regression testing period shortened from 5 to 2 days
QA team has more time to focus on GUI and cross-platform testing
Overall quality of the application was improved and more stable builds released
to Prod
Conclusions
Involve automation QA engineer(s) to implement automation testing on
the project within high standards (Python/Java/etc. frameworks)
IF Your team/project is relatively small (near 5-8 members) and limited
time for full regression runs, to improve product quality you can:
• use JMeter automation testing as complement to manual testing
• automate high priority API test cases to verify main product
functionality - smoke and short acceptance testing
• automate new features testing
• integrate JMeter API testing into product CI pipeline
ELSE
Useful Links
• Functional Testing with JMeter: https://www.packtpub.com/books/content/functional-testing-jmeter
• JMeter как относительно удобное и практичное средство для тестирования API:
https://habrahabr.ru/post/243097/
• Test cloud-based applications with Apache JMeter: https://www.ibm.com/developerworks/cloud/library/cl-jmeter-
restful/#listing3
• JMeter – Continuous Performance Testing – JMeter + ANT + Jenkins Integration – Part 1 and 2:
http://www.testautomationguru.com/jmeter-continuous-performance-testing-part1/
• JMeter – Creating Modular / Reusable Test Scripts: http://www.testautomationguru.com/jmeter-modularizing-
test-scripts/
• JMeter – How to create a Data + Keyword Driven Framework for Performance Testing:
http://www.testautomationguru.com/jmeter-how-to-create-a-data-keyword-driven-framework-for-performance-
testing/
• How to Use JMeter Assertions in Three Easy Steps: https://www.blazemeter.com/blog/how-use-jmeter-
assertions-3-easy-steps
• A collection of resources covering different aspects of JMeter usage: https://github.com/aliesbelik/awesome-
jmeter
Questions
5 minutes.
You can also ask questions for me in the lounge zone

More Related Content

What's hot

Jmeter Tester Certification
Jmeter Tester CertificationJmeter Tester Certification
Jmeter Tester Certification
Vskills
 
Perofrmance testing and apache jmeter
Perofrmance testing and apache jmeterPerofrmance testing and apache jmeter
Perofrmance testing and apache jmeter
lethibichhoa
 
Performance testing with JMeter
Performance testing with JMeterPerformance testing with JMeter
Performance testing with JMeter
Mikael Kundert
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
Mykola Kovsh
 
Performance testing using jmeter
Performance testing using jmeterPerformance testing using jmeter
Performance testing using jmeter
Rachappa Bandi
 
Performance testing with Jmeter
Performance testing with JmeterPerformance testing with Jmeter
Performance testing with Jmeter
Prashanth Kumar
 
Introduction to jmeter & how to view jmeter Test Result in Real-Time
Introduction to jmeter & how to view jmeter Test Result in Real-TimeIntroduction to jmeter & how to view jmeter Test Result in Real-Time
Introduction to jmeter & how to view jmeter Test Result in Real-Time
BugRaptors
 
Using Jenkins and Jmeter to build a scalable Load Testing solution
Using Jenkins and Jmeter to build a scalable Load Testing solutionUsing Jenkins and Jmeter to build a scalable Load Testing solution
Using Jenkins and Jmeter to build a scalable Load Testing solution
Ruslan Strazhnyk
 
Automation Testing with JMeter
Automation Testing with JMeterAutomation Testing with JMeter
Automation Testing with JMeter
Prince K. Raman Kinth
 
Load testing with J meter
Load testing with J meterLoad testing with J meter
Load testing with J meter
Manoj Shankaramanchi
 
"Introduction to JMeter" @ CPTM 3rd Session
"Introduction to JMeter" @ CPTM 3rd Session"Introduction to JMeter" @ CPTM 3rd Session
"Introduction to JMeter" @ CPTM 3rd Session
Tharinda Liyanage
 
Day1 JMeter_training_overview
Day1 JMeter_training_overviewDay1 JMeter_training_overview
Day1 JMeter_training_overview
SravanthiN
 
JMeter_ Cubet Seminar ppt
JMeter_ Cubet Seminar pptJMeter_ Cubet Seminar ppt
JMeter_ Cubet Seminar ppt
Cubet Techno Labs
 
JMeter - Performance testing your webapp
JMeter - Performance testing your webappJMeter - Performance testing your webapp
JMeter - Performance testing your webappAmit Solanki
 
Elments Used on Jmeter
Elments Used on JmeterElments Used on Jmeter
Elments Used on JmeterViviana Lesmes
 
Introduction to JMeter
Introduction to JMeterIntroduction to JMeter
Introduction to JMeter
Galih Lasahido
 
How we can measure server performance using jmeter?
How we can measure server performance using jmeter?How we can measure server performance using jmeter?
How we can measure server performance using jmeter?
BugRaptors
 
JMeter Post-Processors
JMeter Post-ProcessorsJMeter Post-Processors
JMeter Post-Processors
Loadium
 
Apache jMeter
Apache jMeterApache jMeter
Apache Jmeter 3.2 Performance & Load Testing 2017
Apache Jmeter 3.2 Performance & Load Testing 2017Apache Jmeter 3.2 Performance & Load Testing 2017
Apache Jmeter 3.2 Performance & Load Testing 2017
Shay Ginsbourg
 

What's hot (20)

Jmeter Tester Certification
Jmeter Tester CertificationJmeter Tester Certification
Jmeter Tester Certification
 
Perofrmance testing and apache jmeter
Perofrmance testing and apache jmeterPerofrmance testing and apache jmeter
Perofrmance testing and apache jmeter
 
Performance testing with JMeter
Performance testing with JMeterPerformance testing with JMeter
Performance testing with JMeter
 
Performance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter introPerformance Testing from Scratch + JMeter intro
Performance Testing from Scratch + JMeter intro
 
Performance testing using jmeter
Performance testing using jmeterPerformance testing using jmeter
Performance testing using jmeter
 
Performance testing with Jmeter
Performance testing with JmeterPerformance testing with Jmeter
Performance testing with Jmeter
 
Introduction to jmeter & how to view jmeter Test Result in Real-Time
Introduction to jmeter & how to view jmeter Test Result in Real-TimeIntroduction to jmeter & how to view jmeter Test Result in Real-Time
Introduction to jmeter & how to view jmeter Test Result in Real-Time
 
Using Jenkins and Jmeter to build a scalable Load Testing solution
Using Jenkins and Jmeter to build a scalable Load Testing solutionUsing Jenkins and Jmeter to build a scalable Load Testing solution
Using Jenkins and Jmeter to build a scalable Load Testing solution
 
Automation Testing with JMeter
Automation Testing with JMeterAutomation Testing with JMeter
Automation Testing with JMeter
 
Load testing with J meter
Load testing with J meterLoad testing with J meter
Load testing with J meter
 
"Introduction to JMeter" @ CPTM 3rd Session
"Introduction to JMeter" @ CPTM 3rd Session"Introduction to JMeter" @ CPTM 3rd Session
"Introduction to JMeter" @ CPTM 3rd Session
 
Day1 JMeter_training_overview
Day1 JMeter_training_overviewDay1 JMeter_training_overview
Day1 JMeter_training_overview
 
JMeter_ Cubet Seminar ppt
JMeter_ Cubet Seminar pptJMeter_ Cubet Seminar ppt
JMeter_ Cubet Seminar ppt
 
JMeter - Performance testing your webapp
JMeter - Performance testing your webappJMeter - Performance testing your webapp
JMeter - Performance testing your webapp
 
Elments Used on Jmeter
Elments Used on JmeterElments Used on Jmeter
Elments Used on Jmeter
 
Introduction to JMeter
Introduction to JMeterIntroduction to JMeter
Introduction to JMeter
 
How we can measure server performance using jmeter?
How we can measure server performance using jmeter?How we can measure server performance using jmeter?
How we can measure server performance using jmeter?
 
JMeter Post-Processors
JMeter Post-ProcessorsJMeter Post-Processors
JMeter Post-Processors
 
Apache jMeter
Apache jMeterApache jMeter
Apache jMeter
 
Apache Jmeter 3.2 Performance & Load Testing 2017
Apache Jmeter 3.2 Performance & Load Testing 2017Apache Jmeter 3.2 Performance & Load Testing 2017
Apache Jmeter 3.2 Performance & Load Testing 2017
 

Viewers also liked

Web services automation from sketch
Web services automation from sketchWeb services automation from sketch
Web services automation from sketch
IT Weekend
 
Web services automation workshop sreedhar dakshinamurthy
Web services automation workshop   sreedhar dakshinamurthyWeb services automation workshop   sreedhar dakshinamurthy
Web services automation workshop sreedhar dakshinamurthy
vodQA
 
Pugazhvanan_Ganapathy_Web_Services_Test_Automation
Pugazhvanan_Ganapathy_Web_Services_Test_AutomationPugazhvanan_Ganapathy_Web_Services_Test_Automation
Pugazhvanan_Ganapathy_Web_Services_Test_AutomationPugazhvanan Ganapathy
 
Major Incident Management Trends: 2016 Survey Report
Major Incident Management Trends: 2016 Survey ReportMajor Incident Management Trends: 2016 Survey Report
Major Incident Management Trends: 2016 Survey Report
xMatters Inc
 
Software Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing TrendsSoftware Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing Trends
KMS Technology
 
Automation anywhere Training Materials
Automation anywhere Training MaterialsAutomation anywhere Training Materials
Automation anywhere Training Materials
Shekar S
 
Designing REST API automation tests in Kotlin
Designing REST API automation tests in KotlinDesigning REST API automation tests in Kotlin
Designing REST API automation tests in Kotlin
Dmitriy Sobko
 
Web Services Automated Testing via SoapUI Tool
Web Services Automated Testing via SoapUI ToolWeb Services Automated Testing via SoapUI Tool
Web Services Automated Testing via SoapUI Tool
Sperasoft
 

Viewers also liked (8)

Web services automation from sketch
Web services automation from sketchWeb services automation from sketch
Web services automation from sketch
 
Web services automation workshop sreedhar dakshinamurthy
Web services automation workshop   sreedhar dakshinamurthyWeb services automation workshop   sreedhar dakshinamurthy
Web services automation workshop sreedhar dakshinamurthy
 
Pugazhvanan_Ganapathy_Web_Services_Test_Automation
Pugazhvanan_Ganapathy_Web_Services_Test_AutomationPugazhvanan_Ganapathy_Web_Services_Test_Automation
Pugazhvanan_Ganapathy_Web_Services_Test_Automation
 
Major Incident Management Trends: 2016 Survey Report
Major Incident Management Trends: 2016 Survey ReportMajor Incident Management Trends: 2016 Survey Report
Major Incident Management Trends: 2016 Survey Report
 
Software Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing TrendsSoftware Testing Process, Testing Automation and Software Testing Trends
Software Testing Process, Testing Automation and Software Testing Trends
 
Automation anywhere Training Materials
Automation anywhere Training MaterialsAutomation anywhere Training Materials
Automation anywhere Training Materials
 
Designing REST API automation tests in Kotlin
Designing REST API automation tests in KotlinDesigning REST API automation tests in Kotlin
Designing REST API automation tests in Kotlin
 
Web Services Automated Testing via SoapUI Tool
Web Services Automated Testing via SoapUI ToolWeb Services Automated Testing via SoapUI Tool
Web Services Automated Testing via SoapUI Tool
 

Similar to Mykola Kovsh - Functional API automation with Jmeter

Keyword Driven Testing
Keyword Driven TestingKeyword Driven Testing
Keyword Driven TestingHarish MS
 
Qa case study
Qa case studyQa case study
Qa case study
hopperdev
 
Automation testing
Automation testingAutomation testing
Automation testing
Tomy Rhymond
 
Performancetestingjmeter 131210111657-phpapp02
Performancetestingjmeter 131210111657-phpapp02Performancetestingjmeter 131210111657-phpapp02
Performancetestingjmeter 131210111657-phpapp02Nitish Bhardwaj
 
Test case management
Test case managementTest case management
Test case management
Ashari Juang
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
Quontra Solutions
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
Soham Mondal
 
Automation Testing with Test Complete
Automation Testing with Test CompleteAutomation Testing with Test Complete
Automation Testing with Test CompleteVartika Saxena
 
Hot sos em12c_metric_extensions
Hot sos em12c_metric_extensionsHot sos em12c_metric_extensions
Hot sos em12c_metric_extensions
Kellyn Pot'Vin-Gorman
 
Qtp questions and answers
Qtp questions and answersQtp questions and answers
Qtp questions and answersRamu Palanki
 
WiKi Based Automation Testing: Fitness & DevOps
WiKi Based Automation Testing: Fitness & DevOpsWiKi Based Automation Testing: Fitness & DevOps
WiKi Based Automation Testing: Fitness & DevOps
Agile Testing Alliance
 
Basic of jMeter
Basic of jMeter Basic of jMeter
Basic of jMeter
Shub
 
Marathon Testing Tool
Marathon Testing ToolMarathon Testing Tool
Marathon Testing Tool
narayan dudhe
 
Qtp basics
Qtp basicsQtp basics
Qtp basics
narasimha132
 
M. Holovaty, Концепции автоматизированного тестирования
M. Holovaty, Концепции автоматизированного тестированияM. Holovaty, Концепции автоматизированного тестирования
M. Holovaty, Концепции автоматизированного тестирования
Alex
 
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
Bartosz 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 Commerce
Bartosz Górski
 
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
QueBIT Consulting
 
Performance Testing REST APIs
Performance Testing REST APIsPerformance Testing REST APIs
Performance Testing REST APIs
Jason Weden
 

Similar to Mykola Kovsh - Functional API automation with Jmeter (20)

Keyword Driven Testing
Keyword Driven TestingKeyword Driven Testing
Keyword Driven Testing
 
Qa case study
Qa case studyQa case study
Qa case study
 
Automation testing
Automation testingAutomation testing
Automation testing
 
Performancetestingjmeter 131210111657-phpapp02
Performancetestingjmeter 131210111657-phpapp02Performancetestingjmeter 131210111657-phpapp02
Performancetestingjmeter 131210111657-phpapp02
 
Test case management
Test case managementTest case management
Test case management
 
Automated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra SolutionsAutomated Software Testing Framework Training by Quontra Solutions
Automated Software Testing Framework Training by Quontra Solutions
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Automation Testing with Test Complete
Automation Testing with Test CompleteAutomation Testing with Test Complete
Automation Testing with Test Complete
 
Hot sos em12c_metric_extensions
Hot sos em12c_metric_extensionsHot sos em12c_metric_extensions
Hot sos em12c_metric_extensions
 
Qtp questions and answers
Qtp questions and answersQtp questions and answers
Qtp questions and answers
 
WiKi Based Automation Testing: Fitness & DevOps
WiKi Based Automation Testing: Fitness & DevOpsWiKi Based Automation Testing: Fitness & DevOps
WiKi Based Automation Testing: Fitness & DevOps
 
Basic of jMeter
Basic of jMeter Basic of jMeter
Basic of jMeter
 
Marathon Testing Tool
Marathon Testing ToolMarathon Testing Tool
Marathon Testing Tool
 
Qtp basics
Qtp basicsQtp basics
Qtp basics
 
M. Holovaty, Концепции автоматизированного тестирования
M. Holovaty, Концепции автоматизированного тестированияM. Holovaty, Концепции автоматизированного тестирования
M. Holovaty, Концепции автоматизированного тестирования
 
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
 
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
The Importance of Performance Testing Theory and Practice - QueBIT Consulting...
 
Shalini Sharma Resume
Shalini Sharma ResumeShalini Sharma Resume
Shalini Sharma Resume
 
Performance Testing REST APIs
Performance Testing REST APIsPerformance Testing REST APIs
Performance Testing REST APIs
 

More from Ievgenii Katsan

8 andrew kalyuzhin - 30 ux-advices, that will make users love you
8   andrew kalyuzhin - 30 ux-advices, that will make users love you8   andrew kalyuzhin - 30 ux-advices, that will make users love you
8 andrew kalyuzhin - 30 ux-advices, that will make users love you
Ievgenii Katsan
 
5 hans van loenhoud - master-class the 7 skills of highly successful teams
5   hans van loenhoud - master-class the 7 skills of highly successful teams5   hans van loenhoud - master-class the 7 skills of highly successful teams
5 hans van loenhoud - master-class the 7 skills of highly successful teams
Ievgenii Katsan
 
4 alexey orlov - life of product in startup and enterprise
4   alexey orlov - life of product in startup and enterprise4   alexey orlov - life of product in startup and enterprise
4 alexey orlov - life of product in startup and enterprise
Ievgenii Katsan
 
3 dmitry gomeniuk - how to make data-driven decisions in saa s products
3   dmitry gomeniuk - how to make data-driven decisions in saa s products3   dmitry gomeniuk - how to make data-driven decisions in saa s products
3 dmitry gomeniuk - how to make data-driven decisions in saa s products
Ievgenii Katsan
 
7 hans van loenhoud - the problem-goal-solution trinity
7   hans van loenhoud - the problem-goal-solution trinity7   hans van loenhoud - the problem-goal-solution trinity
7 hans van loenhoud - the problem-goal-solution trinity
Ievgenii Katsan
 
1 hans van loenhoud -
1   hans van loenhoud - 1   hans van loenhoud -
1 hans van loenhoud -
Ievgenii Katsan
 
3 denys gobov - change request specification the knowledge base or the task...
3   denys gobov - change request specification the knowledge base or the task...3   denys gobov - change request specification the knowledge base or the task...
3 denys gobov - change request specification the knowledge base or the task...
Ievgenii Katsan
 
5 victoria cupet - learn to play business analysis
5   victoria cupet - learn to play business analysis5   victoria cupet - learn to play business analysis
5 victoria cupet - learn to play business analysis
Ievgenii Katsan
 
5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...
Ievgenii Katsan
 
3 karabak kuyavets transformation of business analyst to product owner
3   karabak kuyavets transformation of business analyst to product owner3   karabak kuyavets transformation of business analyst to product owner
3 karabak kuyavets transformation of business analyst to product owner
Ievgenii Katsan
 
4 andrii melnykov - stakeholder management for pd ms and b-as and why it is...
4   andrii melnykov - stakeholder management for pd ms and b-as and why it is...4   andrii melnykov - stakeholder management for pd ms and b-as and why it is...
4 andrii melnykov - stakeholder management for pd ms and b-as and why it is...
Ievgenii Katsan
 
3 zornitsa nikolova - the product manager between decision making and facil...
3   zornitsa nikolova - the product manager between decision making and facil...3   zornitsa nikolova - the product manager between decision making and facil...
3 zornitsa nikolova - the product manager between decision making and facil...
Ievgenii Katsan
 
4 viktoriya gudym - how to effectively manage remote employees
4   viktoriya gudym - how to effectively manage remote employees4   viktoriya gudym - how to effectively manage remote employees
4 viktoriya gudym - how to effectively manage remote employees
Ievgenii Katsan
 
9 natali renska - product and outsource development, how to cook 2 meals in...
9   natali renska - product and outsource development, how to cook 2 meals in...9   natali renska - product and outsource development, how to cook 2 meals in...
9 natali renska - product and outsource development, how to cook 2 meals in...
Ievgenii Katsan
 
7 denis parkhomenko - from idea to execution how to make a product that cus...
7   denis parkhomenko - from idea to execution how to make a product that cus...7   denis parkhomenko - from idea to execution how to make a product that cus...
7 denis parkhomenko - from idea to execution how to make a product that cus...
Ievgenii Katsan
 
6 anton vitiaz - inside the mvp in 3 days
6   anton vitiaz - inside the mvp in 3 days6   anton vitiaz - inside the mvp in 3 days
6 anton vitiaz - inside the mvp in 3 days
Ievgenii Katsan
 
5 mariya popova - ideal product management. unicorns in our reality
5   mariya popova - ideal product management. unicorns in our reality5   mariya popova - ideal product management. unicorns in our reality
5 mariya popova - ideal product management. unicorns in our reality
Ievgenii Katsan
 
2 victor podzubanov - design thinking game
2   victor podzubanov - design thinking game2   victor podzubanov - design thinking game
2 victor podzubanov - design thinking game
Ievgenii Katsan
 
3 sergiy potapov - analyst to product owner
3   sergiy potapov - analyst to product owner3   sergiy potapov - analyst to product owner
3 sergiy potapov - analyst to product owner
Ievgenii Katsan
 
4 anton parkhomenko - how to make effective user research with no budget at...
4   anton parkhomenko - how to make effective user research with no budget at...4   anton parkhomenko - how to make effective user research with no budget at...
4 anton parkhomenko - how to make effective user research with no budget at...
Ievgenii Katsan
 

More from Ievgenii Katsan (20)

8 andrew kalyuzhin - 30 ux-advices, that will make users love you
8   andrew kalyuzhin - 30 ux-advices, that will make users love you8   andrew kalyuzhin - 30 ux-advices, that will make users love you
8 andrew kalyuzhin - 30 ux-advices, that will make users love you
 
5 hans van loenhoud - master-class the 7 skills of highly successful teams
5   hans van loenhoud - master-class the 7 skills of highly successful teams5   hans van loenhoud - master-class the 7 skills of highly successful teams
5 hans van loenhoud - master-class the 7 skills of highly successful teams
 
4 alexey orlov - life of product in startup and enterprise
4   alexey orlov - life of product in startup and enterprise4   alexey orlov - life of product in startup and enterprise
4 alexey orlov - life of product in startup and enterprise
 
3 dmitry gomeniuk - how to make data-driven decisions in saa s products
3   dmitry gomeniuk - how to make data-driven decisions in saa s products3   dmitry gomeniuk - how to make data-driven decisions in saa s products
3 dmitry gomeniuk - how to make data-driven decisions in saa s products
 
7 hans van loenhoud - the problem-goal-solution trinity
7   hans van loenhoud - the problem-goal-solution trinity7   hans van loenhoud - the problem-goal-solution trinity
7 hans van loenhoud - the problem-goal-solution trinity
 
1 hans van loenhoud -
1   hans van loenhoud - 1   hans van loenhoud -
1 hans van loenhoud -
 
3 denys gobov - change request specification the knowledge base or the task...
3   denys gobov - change request specification the knowledge base or the task...3   denys gobov - change request specification the knowledge base or the task...
3 denys gobov - change request specification the knowledge base or the task...
 
5 victoria cupet - learn to play business analysis
5   victoria cupet - learn to play business analysis5   victoria cupet - learn to play business analysis
5 victoria cupet - learn to play business analysis
 
5 alina petrenko - key requirements elicitation during the first contact wi...
5   alina petrenko - key requirements elicitation during the first contact wi...5   alina petrenko - key requirements elicitation during the first contact wi...
5 alina petrenko - key requirements elicitation during the first contact wi...
 
3 karabak kuyavets transformation of business analyst to product owner
3   karabak kuyavets transformation of business analyst to product owner3   karabak kuyavets transformation of business analyst to product owner
3 karabak kuyavets transformation of business analyst to product owner
 
4 andrii melnykov - stakeholder management for pd ms and b-as and why it is...
4   andrii melnykov - stakeholder management for pd ms and b-as and why it is...4   andrii melnykov - stakeholder management for pd ms and b-as and why it is...
4 andrii melnykov - stakeholder management for pd ms and b-as and why it is...
 
3 zornitsa nikolova - the product manager between decision making and facil...
3   zornitsa nikolova - the product manager between decision making and facil...3   zornitsa nikolova - the product manager between decision making and facil...
3 zornitsa nikolova - the product manager between decision making and facil...
 
4 viktoriya gudym - how to effectively manage remote employees
4   viktoriya gudym - how to effectively manage remote employees4   viktoriya gudym - how to effectively manage remote employees
4 viktoriya gudym - how to effectively manage remote employees
 
9 natali renska - product and outsource development, how to cook 2 meals in...
9   natali renska - product and outsource development, how to cook 2 meals in...9   natali renska - product and outsource development, how to cook 2 meals in...
9 natali renska - product and outsource development, how to cook 2 meals in...
 
7 denis parkhomenko - from idea to execution how to make a product that cus...
7   denis parkhomenko - from idea to execution how to make a product that cus...7   denis parkhomenko - from idea to execution how to make a product that cus...
7 denis parkhomenko - from idea to execution how to make a product that cus...
 
6 anton vitiaz - inside the mvp in 3 days
6   anton vitiaz - inside the mvp in 3 days6   anton vitiaz - inside the mvp in 3 days
6 anton vitiaz - inside the mvp in 3 days
 
5 mariya popova - ideal product management. unicorns in our reality
5   mariya popova - ideal product management. unicorns in our reality5   mariya popova - ideal product management. unicorns in our reality
5 mariya popova - ideal product management. unicorns in our reality
 
2 victor podzubanov - design thinking game
2   victor podzubanov - design thinking game2   victor podzubanov - design thinking game
2 victor podzubanov - design thinking game
 
3 sergiy potapov - analyst to product owner
3   sergiy potapov - analyst to product owner3   sergiy potapov - analyst to product owner
3 sergiy potapov - analyst to product owner
 
4 anton parkhomenko - how to make effective user research with no budget at...
4   anton parkhomenko - how to make effective user research with no budget at...4   anton parkhomenko - how to make effective user research with no budget at...
4 anton parkhomenko - how to make effective user research with no budget at...
 

Recently uploaded

一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
zwunae
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
MLILAB
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
fxintegritypublishin
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
VENKATESHvenky89705
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
Pratik Pawar
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
Massimo Talia
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
ankuprajapati0525
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
AmarGB2
 
English lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdfEnglish lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdf
BrazilAccount1
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Dr.Costas Sachpazis
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
Vijay Dialani, PhD
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
JoytuBarua2
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
Osamah Alsalih
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
AafreenAbuthahir2
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
Kerry Sado
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
thanhdowork
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
AJAYKUMARPUND1
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 

Recently uploaded (20)

一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证成绩单专业办理
 
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
H.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdfH.Seo,  ICLR 2024, MLILAB,  KAIST AI.pdf
H.Seo, ICLR 2024, MLILAB, KAIST AI.pdf
 
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdfHybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
Hybrid optimization of pumped hydro system and solar- Engr. Abdul-Azeez.pdf
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
weather web application report.pdf
weather web application report.pdfweather web application report.pdf
weather web application report.pdf
 
Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024Nuclear Power Economics and Structuring 2024
Nuclear Power Economics and Structuring 2024
 
The role of big data in decision making.
The role of big data in decision making.The role of big data in decision making.
The role of big data in decision making.
 
Investor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptxInvestor-Presentation-Q1FY2024 investor presentation document.pptx
Investor-Presentation-Q1FY2024 investor presentation document.pptx
 
English lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdfEnglish lab ppt no titlespecENG PPTt.pdf
English lab ppt no titlespecENG PPTt.pdf
 
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
Sachpazis:Terzaghi Bearing Capacity Estimation in simple terms with Calculati...
 
ML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptxML for identifying fraud using open blockchain data.pptx
ML for identifying fraud using open blockchain data.pptx
 
Planning Of Procurement o different goods and services
Planning Of Procurement o different goods and servicesPlanning Of Procurement o different goods and services
Planning Of Procurement o different goods and services
 
MCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdfMCQ Soil mechanics questions (Soil shear strength).pdf
MCQ Soil mechanics questions (Soil shear strength).pdf
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
 
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
RAT: Retrieval Augmented Thoughts Elicit Context-Aware Reasoning in Long-Hori...
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
Pile Foundation by Venkatesh Taduvai (Sub Geotechnical Engineering II)-conver...
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 

Mykola Kovsh - Functional API automation with Jmeter

  • 1. Functional API automation with JMeter (real case) by Mykola Kovsh
  • 2. Speaker info Hi, I’m Mykola Kovsh Performance Test Engineer Performance Testing Department at Testing Center of Excellence, Ciklum, Ukraine • 4 years in IT • Performance / Automation / Manual testing www.linkedin.com/in/mykolakovsh/
  • 3. Plan 1. Testing Product Description 2. Our Problem 3. JMeter as a Solution 4. Continuous Integration with JMeter. Reporting 5. Demo 6. Our Results 7. Conclusions 8. Useful Links Questions
  • 4. Testing Product Description Client: Mobile / Facebook web sport betting application Server: Amazon cloud-based application, REST API based Technology stack: Java, Cassandra DB, Unity 3D Product is in active development for near 3 years A lot of parsing and integration logic with 3rd-party data providers Frequent releases driven by business needs (startup)
  • 5. Our Problem  We should run full regression REST API functional tests each release  Manual runs took 4-5 days for 2 QAs what did not satisfy business  No QA automation specialist on the project, but we use JMeter for performance testing and have expertise in it  A lot of GUI/usability testing in addition to functional  To sum up: often we did not have time for full functional regression testing before release what resulted in bugs and frequent hotfixes on Production
  • 6. Solution 1: Postman Good as supplementary tool for manual testing CI integration Reports converting to HTML file Team work option but NOT FREE In case of tricky parametrization and custom logic, some tool’s issues could influence auto tests runs JavaScript basic knowledge is required Hard to maintain when a lot of test-cases No ability of parallel runs Reports are not very comprehensive
  • 7. Solution 2: JMeter. Why for API? Free tool with large community and support GUI based - fast learning Customization - through JMeter API and using scripting languages Ability to reuse functional tests for load purposes Ability to reuse GUI modules in different tests Assertions - allow you to "test" whether your application returns the results you expect it to Parallel test runs CI integration Comprehensive HTML reports Basic knowledge of some scripting language and regular expressions is required Hard to maintain on large projects Version control: only JMX files could be tracked
  • 8. JMeter: Functional Tests Creation 1. Thread Group (user) -> Test set/Test suite 2. Logic Controllers: a) Transaction Controller -> Test suite/Test case b) Loop/While/ForEach Controller c) If Controller etc. 3. Samplers -> Requests (HTTP(s), TCP, SOAP, etc.) 4. Assertions -> Test your response/Customize/Parametrize 5. Timers 6. Configuration elements 1 2 3 4 5 6
  • 9. JMeter: Customize/Parametrize/Test Assertion types: JSR223 Assertion Response Assertion Duration Assertion Size Assertion XML Assertion BeanShell Assertion MD5Hex Assertion HTML Assertion XPath Assertion XML Schema Assertion Compare Assertion, etc.
  • 10. Reusable/Modular Scripts Approach To make functional testing scripts easy maintainable and reusable use next JMeter elements: Test Fragment Simple / Transaction Controller Module Controller Parameterized Controller Include Controller
  • 11. Data + Keyword Driven Approach To separate test scripts from test cases design use next JMeter elements: Test Fragment Switch Controller Simple / Transaction Controller Module Controller ForEach Controller CSV Data Set Config
  • 12. JMeter: Continuous Integration Process and tools: 1. JMeter: functional testing scripts 2. ANT build tool: converts results from JTL output files into HTML reports - ANT parses JTL logs using XSLT stylesheet file 3. Bamboo CI tool Development Source Control Build Unit/Integration Testing Functional Testing Report
  • 13. JMeter CI: Approaches ANT standalone – all steps are executed in ANT build.xml file, using 1 Bamboo Task: • Run JMeter tests • Convert JTL logs to HTML report • Verify test results and pass/fail build PowerShell + ANT combination – 3 Bamboo tasks: • Task 1 Script: run JMeter tests • Task 2 ANT: convert JTL log to HTML report • Task 3 Script: verify results and pass/fail build
  • 14. CI 2nd Approach: Project Structure
  • 15. Bamboo Task 1: Tests Running del Jmeter_ci_with_antresultstest_report.html del Jmeter_ci_with_antresultsresultlog.jtl ${bamboo.JMETER_HOME}binjmeter.bat -n -t Jmeter_ci_with_antJmeter_test_plan.jmx -l Jmeter_ci_with_antresultsresultlog.jtl -q Jmeter_ci_with_antci_jmeter.properties
  • 16. Bamboo Task 2: HTML Reporting
  • 17. Bamboo Task 2: ANT Build File After tests executed, generate HTML report using build_report.xml file (default name build.xml) We have 3 <target> here: • report - log process • xslt-report – convert using XSLT file • copy_report – move reports to separate folder to keep history
  • 18. HTML: XSLT Stylesheet File Update Our Improvements: • Statistics by test suites (threads) and request • Expand/Collapse test suits option • Show only failed transactions filter before after *Origin: http://shanhe.me/node/18/314 *Updated XSLT: https://drive.google.com/file/d/0B4SCa_HZT_OOQnoyQjc1TGw0a0E/view?usp=sharing
  • 20. HTML Reporting: Limitation In case different Thread Groups run under the same Test Plan, they are not separated in report To deal with it, we suggest: 1) Run Thread Groups consequently. It can take some time, if there are a lot of cases 2) or Separate Test Plans (JMX files) by some logic and run them simultaneously
  • 21. Bamboo Task 3: Verify results
  • 22.
  • 23. Recommendations 1) Apply decomposition for faster tests runs: - One functional area - One separate Test Plan - Decompose tests runs by jobs in CI tool (Bamboo, Jenkins) 2) Run smoke functional test and, if success, make it trigger full coverage testing run 3) Use Modular approach to create maintainable/reusable scripts 4) Team work: use Include Controllers to run scripts created by each member 5) Use JSR223 Assertion element to customize/parametrize/test your custom logic in flexible way 6) Use User Defined Variables element to create and fast switch between Test/Stage/Prod hosts 7) Share your scripts with developers to debug current and new features 8) Use JMeter scripts for Load testing, if needed
  • 24. Disadvantages  Inappropriate for large projects/teams  Hard to maintain scripts, if there are lot of them  Scripts version control is absent  Not very convenient for QA team use (if more than 1-2 QA specialists)  You still need time to learn some scripting language (and regexp) to create comprehensive scripts with JMeter
  • 25. Our Results For 5 months ~200 (30%) of API functional high priority test cases were automated ~100 regression and ~80 new features bugs found Functional API regression testing period shortened from 5 to 2 days QA team has more time to focus on GUI and cross-platform testing Overall quality of the application was improved and more stable builds released to Prod
  • 26. Conclusions Involve automation QA engineer(s) to implement automation testing on the project within high standards (Python/Java/etc. frameworks) IF Your team/project is relatively small (near 5-8 members) and limited time for full regression runs, to improve product quality you can: • use JMeter automation testing as complement to manual testing • automate high priority API test cases to verify main product functionality - smoke and short acceptance testing • automate new features testing • integrate JMeter API testing into product CI pipeline ELSE
  • 27. Useful Links • Functional Testing with JMeter: https://www.packtpub.com/books/content/functional-testing-jmeter • JMeter как относительно удобное и практичное средство для тестирования API: https://habrahabr.ru/post/243097/ • Test cloud-based applications with Apache JMeter: https://www.ibm.com/developerworks/cloud/library/cl-jmeter- restful/#listing3 • JMeter – Continuous Performance Testing – JMeter + ANT + Jenkins Integration – Part 1 and 2: http://www.testautomationguru.com/jmeter-continuous-performance-testing-part1/ • JMeter – Creating Modular / Reusable Test Scripts: http://www.testautomationguru.com/jmeter-modularizing- test-scripts/ • JMeter – How to create a Data + Keyword Driven Framework for Performance Testing: http://www.testautomationguru.com/jmeter-how-to-create-a-data-keyword-driven-framework-for-performance- testing/ • How to Use JMeter Assertions in Three Easy Steps: https://www.blazemeter.com/blog/how-use-jmeter- assertions-3-easy-steps • A collection of resources covering different aspects of JMeter usage: https://github.com/aliesbelik/awesome- jmeter
  • 28. Questions 5 minutes. You can also ask questions for me in the lounge zone