Skip to content

xbsoft/performance-testing-framework

 
 

Repository files navigation

Docker based performance testing framework

This framework could be used both for backend load testing with Apache Jmeter and frontend load test with sitespeed.io + webpagetest private instance. Grafana monitoring allows to view and analyze results in real time

Getting Started

Framework consists of next services:

  • Grafana: data visualization & monitoring
  • Influxdb: time series DB platform for metrics & events(Time Series Data)
  • Telegraf: server agent for collecting & reporting metrics
  • Sitespeed.io: set of tools for frontend load testing
  • Graphite: time series DB platform for metrics
  • Jenkins: continuous integration server for tests execution
  • Portainer: service for managing docker environment
  • Webpagetest: private instance of webpagetest server for frontend tests execution
  • Apache Jmeter: tool for backend load testing

Framework architecture:

Prerequisites

To run framework install docker: https://docs.docker.com/engine/installation/.

You should be able to run docker run hello-world with no errors.

For Windows:

Installing

  1. git clone this repository
  2. open performance-testing-framework dir
  3. docker-compose up -d if you don't need to test frontend performance execute: docker-compose -f docker-compose-backend-testing.yml up -d

All containers should be up and running

Services endpoints

  • jenkins localhost:8181
  • grafana localhost:8857
  • portainer localhost:9000
  • webpagetest server localhost:80
  • influxdb localhost:8653

Running the tests(demo)

Login to Jenkins with admin/admin(could be changed in docker-compose file) By default jenkins consists of 2 jobs:

  • BackendJob: run Jmeter scenarios
  • FrontendJob: run tests with sitespeed.io and webpagetest private instance

BackendJob

To run jmeter demo script: Open BackendJob -> Build with Parameters -> Set build parameters -> Select scenario -> Build

This job will start jmeter docker container and execute demo_scenario.jmx jmeter scenario

To open demo_scenario in local instance of Jmeter please install Plugin Manager https://jmeter-plugins.org/wiki/PluginsManager/. It will automatically install all required plugins.

Jmeter test deliverables:

  • jmeter log file
  • raw test results in report.log csv file
  • jmeter HTML report(available after test is finished)
  • grafana load test monitoring dashboard(real-time monitoring)

FrontendJob

To run frontend test: Open FrontendJob -> Build with Parameters -> Set build parameters -> Build

This job will start sitespeed.io docker container and run test with parameters using WebPageTest private instance

Frontend test deliverables:

  • sitespeed.io HTML report
  • webpagetest HTML report

About

This framework could be used both for backend load testing with Apache Jmeter and frontend load test with sitespeed.io + webpagetest private instance. Grafana monitoring allows to view and analyze results in real time

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 86.8%
  • Groovy 13.2%