%% Related: - [[Software Testing]] - [[Performance Testing]] - [[Load Testing]] - [[The Perfect Load Testing Tool]] - [[A testing tool should not slow down the feedback cycle.]] - [[The 1 Thread=1 Virtual User Paradigm is flawed]] Last Updated: - [[2021-02-06]] - [[2020-12-08]] - [[2020-11-28]] Child:: [[JMeter]] %% ## Tools on the Market ### [[Protocol-based load testing]] Tools - [[JMeter]] - [[Gatling]] - [[Micro Focus]] [[LoadRunner]] - [[Micro Focus]] [[Silk Performer]] - [[Neotys]] [[NeoLoad]] - [[Rational Performance Tester]] - [[Visual Studio Load Testing]] - [[k6 (tool)]] - [[Artillery Core]] ### [[Browser-based testing]] Tools #### Selenium - [[Selenium WebDriver]] - [[Selenium IDE]] #### Javascript-based frameworks - [[Puppeteer]] ([[NodeJS]]) - [[Google]], [[Flood Element]] - [[Playwright]] ([[NodeJS]]) - [[Microsoft]] - [[Mocha]] ([[Cypress]]) - [[Jest]] - [[Test Café]] ## [[Load testing tool comparison]] [[Load testing tool comparison table]] [[k6 vs JMeter]] [[Gatling vs JMeter]] ## Key features of a load testing tool ### Scripting #### Creating a script - [ ] [[Recorder]] - [ ] [[Exclude third-party or configured domains]] - [ ] [[Sample script packaged in]] - [ ] [[GUI Test Builder]] - [ ] [[Code-based scripting]] - [ ] [[Protocol-based load testing]] - [ ] [[Browser-based testing]] #### Making the script robust - Protocols Supported - [ ] [[HTTP 1.1]] - [ ] [[HTTP 2]] - [ ] [[WebSockets]] - [ ] [[gRPC]] - [ ] [[Citrix ICA]] - [ ] [[LDAP]] - [ ] [[Modify headers]] - [ ] [[Response assertions]] - [[Error handling]] - [ ] [[Output to log upon error]] - [ ] [[Screenshots]] - [ ] [[Continue on error or restart iteration]] - [[Debugging]] - [ ] [[See request and response headers and bodies on single iteration]] - [ ] [[Change log levels]] - [ ] [[Transaction groups]] - [ ] [[Custom functions or test fragments]] #### Making the script realistic - [[Correlation of dynamic values]] - [ ] [[JMeter Regular Expression Extractor]] - [ ] [[CSS Selector]] - [ ] [[JSON Extractor]] - [ ] [[Dynamic think time and pacing]] - [ ] [[Conditional logic]] - [ ] [[Parallel execution of requests]] - [ ] [[Download embedded resources]] - [ ] [[Follow redirects]] - [ ] [[Network bandwidth throttling]] - [ ] [[Cache management]] - [ ] [[Startup and teardown thread groups]] #### Test data - [ ] [[Static test data]] - [ ] [[Unique data generation during runtime]] - [ ] [[Virtual Table Server]] #### Collaborating on a script - [ ] [[Version Control System]] - [ ] [[Test Scaffolding]] ### Execution #### [ ] [[Test Scenarios]] #### [ ] [[Configurable Load profile]] - [ ] [[Number of virtual users]] - [ ] [[Duration]] - [ ] [[Origin or Region]] - [ ] [[Ramp-up]] - [ ] [[Ramp down]] - [ ] [[Number of iterations]] - [ ] [[Fully customizable load profile]] #### SLAs - [ ] [[Set multiple thresholds]] #### [ ] [[Execution Parameters]] #### Memory consumption benchmark ### Analysis #### Dashboard - [ ] [[Pre-generated reports]] - [ ] [[Custom dashboard creation]] - [ ] [[Reusable dashboards]] - Easy error troubleshooting - [ ] [[Screenshots]] - [ ] [[Response bodies]] - [ ] [[Assertion success or failure]] - [ ] [[Log for transaction failure]] #### Metrics - [ ] [[Response time]] - [ ] [[Request throughput]] - [ ] [[Number of virtual users]] - [ ] [[Error rate]] - [ ] [[Network throughput]] - [ ] [[Load generator CPU]] - [ ] [[Load generator memory]] #### Graphs - [ ] [[Different Graph Types]] - [ ] [[View by transaction]] - [ ] [[View by load generator or region]] - [ ] [[Custom views]] #### Results - [ ] [[Raw data]] - [ ] [[At least 1s granularity]] - [ ] [[Export as plain text]] ### Continuous Load Testing - [ ] [[Jenkins]] - [ ] [[Azure Pipelines]] - [ ] [[Travis CI]] - [ ] [[CircleCI]]