Giter Site home page Giter Site logo

ckan-perf-testing's Introduction

CKAN performance testing

This repository contains a couple of simple shell scripts for running performance and load tests against CKAN.

requirements

The tests require the following testing tools to be installed:

urls

The tests use an input file containing URL paths to test. Each URL is tested individually by the performance testing script, while the load testing script issues requests to randomly-chosen URLs from the input file.

An example input file is supplied in views, for use with a CKAN instance that has had the demo datasets loaded, but note that resource IDs are currently not fixed by the demo data and will need to be updated in the views file before using these scripts.

performance tests

Run:

./perf http://ckanrooturl.com <views

A report will be generated with a filename of the form:

YYYYMMDDHHMMSS_perf.txt

load tests

Run:

./perf http://ckanrooturl.com <views

This will run tests at several request rates, and reports will be generated with filenames of the form:

YYYYMMDDHHMMSS_load_N.bin

N indicates the request rate for the test run. You can override the default set of request rates by setting the REQUEST_RATES environment variable. For example, to run load tests at 2, 8, and 16 req/s, run:

REQUEST_RATES="2 8 16" ./perf http://ckanrooturl.com <views

processing reports

The report generated by the performance tests is textual.

The reports generated by the load tests are binary reports from the vegeta tool and can be parsed into a textual summary using the vegeta report command:

vegeta report <20140811T111729_load_10.bin

You can also generate HTML plot reports:

vegeta report -reporter plot >out.html <20140811T111729_load_10.bin

caveats

DO NOT run performance or load tests against CKAN instances you do not control.

It is probably unwise to run performance or load tests against public CKAN instances (or public websites in general).

The results of these tests reflect the behaviour of CKAN under highly artificial loading conditions and you should be cautious when attempting to forecast CKAN's performance under real loading conditions on the basis of the output of these tools.

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.