Git Product home page Git Product logo

jmeter-aem-templates's Introduction

Cognifide logo JMeter logo

Introduction

AEM JMeter template is a predefined Test Plan template, ready to use. Template accelerates performance tests implementation for web applications with JMeter tool and introduces set of good practices.

Main features

  • Parametrization - re-used, preconfigured User Variables,
  • Tuned for Adobe AEM - preconfigured thread that activates page on author (to replicate page via author-publish-dispatcher path). Thread also presents how to authenticate to AEM Author instance and reuse CSRF token (works for AEM 6.2),
  • Preconfigured loggers - preconfigured Simple Data Writers for .csv, .xml and Influx database (for Live monitoring).
  • Other features:
    • Think times with with parametrized Gaussian Random Timer,
    • Test Profiles with User Defined Variables for different test environments,
    • HTTP Request configured for download embedded resources, parallel download and filtering out calls to 3rd parties domains,
    • Exemplary HTTP Requests (GET, POST) and Config Elements (Transaction and Throughput Controllers).

Prerequisites

Installing template

Copy .xml snippet from "templates-snippet.xml" and paste into JMeter templates file "\bin\templates\templates.xml". Remember to preserve correct XML syntax.

Running

We assume that you are in JMETER_HOME/bin directory.

To open and edit test in GUI, execute
jmeter -t aem-template.jmx -q environment.properties -q loadparams.properties

To run the tests from command line, execute
jmeter -n -t aem-template.jmx -q [path/to]environment.properties -q [path/to]loadparams.properties

We advise that you make a copies of environment.properties file, one for each of your environments, so then you can run
jmeter -n -t aem-template.jmx -q integration.properties -q loadparams.properties or
jmeter -n -t aem-template.jmx -q staging.properties -q loadparams.properties
Similarily you can make copies of loadparams.properties so you can easily run the same test with different loads.

All Features

  • Test Plan element - with ${project} variable to be changed.
  • "Domains" User Defined Variables - Server related variables for each environment. Enable or disable appropriate one (e.g.: Domains STAGING to test staging).
  • "Variables" User Defined Variables - test profiles for LOAD, SOAK, STRESS tests with Thread and Time related variables. Enable or disable appropriate one. Data is exemplary and to be change in a project.
  • "Publish Tread" Group:
    • ${thread} and ${rampup} variables used for Forever run.
    • HTTP Request Defaults element
      • with ${domain} and ${protocol} variables used
      • Embedded Resources are downloaded
      • Parallel download of embedded resources = 6 (simulate browser behaviour)
      • Filtering out 3rd party domains - Tab Advanced ".${domain}." regular expression. No analitycs will be send.
    • Cookie Manager
      • Clears cookie each iteration
    • Header Manager
      • adds Host header with ${domain} variable
    • Gaussian Random Timer
      • adds Think Time before EVERY sample
      • uses ${think-time-deviation} and ${think-time-constant} variables
    • Throughput Controller
      • demonstrates hot to split users in percentage manner e.g.: New users vs Returning users
      • HTTP Cache manager - simulating caching assets in browser
      • HTTP request Sampler
        • Response Assertion
      • Transaction Controller
        • Demonstrates how to embed multiple samples into one Transaction.
        • "Log in" POST request
  • "Activate Page EXAMPLE" Thread group
    • Activates content from ${content-demo} variable using AEM etc/replication/treeactivation.html servlet
    • Hits Author to push correct flow of invalidation: Author->Publish->Dispatcher
  • Set of useful graphs that can be used to import .cvs result file and analyze test results.
  • Simple Data Writer CSV
    • Configured to write samples only to .csv file
  • Simple Data Writer XML
    • Configured to write samples and sub samples to xml file. Use this one if you want to know Server Hits not only Transactions per second.
  • Backend Listener for Live monitoring
    • Preconfigured to push summary only data to localhost Influx database.
    • uses ${project} variable to add prefix for database measurements.

References

Contact

[email protected]

jmeter-aem-templates's People

Contributors

yaci avatar lukasz-morawski-wttech avatar kkarolk avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.