Git Product home page Git Product logo

streaming-load-testing's Introduction

Streaming load testing

Load generation tool for evaluation of MPEG-DASH and HLS video streaming setups. This project is an extension of Locust open source software. This extension is NOT a product/solution by Unified Streaming.

Docs: MMSys2020 paper

What is Locust

Locust is an open source tool for load testing of web applications. The software is optimized to support the emulation of a large number of users, without using a large number of threads by using an event-driven model. Locust allows writing specific user behaviour for load testing through plain Python programming language scripts.

How to use the tool

The following figure presents the possible command-line parameter configuration of the load testing tool.

Configuration parameters for streaming load-generator.
Configuration parameters

Use the tool in a hypervisor

In case you need to run the Python scripts from a VM you will need to clone the repository and install the Python requirements.txt by running the following commands.

#!/bin/bash
git clone https://github.com/unifiedstreaming/streaming-load-testing.git
cd streaming-load-testing
make init

Load test example

#!/bin/bash

HOST_URL=https://demo.unified-streaming.com \
    MANIFEST_FILE=/video/ateam/ateam.ism/ateam.mpd \
    mode=vod \
    play_mode=full_playback \
    bitrate=lowest_bitrate \
    locust -f load_generator/locustfiles/vod_dash_hls_sequence.py \
    --no-web -c 1 -r 1 --run-time 10s --only-summary \
    --csv=test-results/output_example

Use the tool through a Docker image

Create Docker image by building the Docker file provided.

#!/bin/bash
git clone https://github.com/unifiedstreaming/streaming-load-testing.git
cd streaming-load-testing
make build

Run a simple load testing example using the built docker image. The following command will create a performance test and creates a folder with csv files results in the folder test-results.

Load test example

#!/bin/bash

docker run -it \
    -e "HOST_URL=https://demo.unified-streaming.com" \
    -e "MANIFEST_FILE=/video/ateam/ateam.ism/ateam.mpd" \
    -e "mode=vod" \
    -e "play_mode=full_playback" \
    -e "bitrate=lowest_bitrate" \
    -e "LOCUST_LOCUSTFILE=/load_generator/locustfiles/vod_dash_hls_sequence.py" \
    -e "LOCUST_HEADLESS=true" \
    -e "LOCUST_USERS=1" \
    -e "LOCUST_SPAWN_RATE=1" \
    -e "LOCUST_RUN_TIME=2s" \
    -e "LOCUST_ONLY_SUMMARY=true" \
    -p 8089:8089 \
    unifiedstreaming/load-generator:latest \
    --no-web

streaming-load-testing's People

Contributors

broyson avatar roberto-unified 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.