GithubHelp home page GithubHelp logo

isabella232 / hailstorm-sdk Goto Github PK

View Code? Open in Web Editor NEW

This project forked from 3pillarlabs/hailstorm-sdk

0.0 0.0 0.0 7.83 MB

Distribute Apache JMeter tests with Amazon EC2 instances or data-center machines, optionally collect application infrastructure metrics and generate editable reports.

Home Page: https://3pillarlabs.github.io/hailstorm-sdk/

License: MIT License

Shell 0.42% Ruby 52.44% Gherkin 1.23% HTML 3.01% Java 4.81% JavaScript 0.72% CSS 0.01% Dockerfile 0.16% Makefile 1.19% TypeScript 35.70% SCSS 0.32%

hailstorm-sdk's Introduction

Hailstorm SDK

Build Status Maintainability Test Coverage Contributor Covenant

A cloud-aware library and applications for distributed load testing using JMeter and support for server monitoring.

Hailstorm uses JMeter to generate load on the system under test. You create your JMeter test plans/scripts using JMeter GUI interface. Hailstorm uses these test plans to generate load. Hailstorm uses Amazon EC2 to create load agents. Each load agent is pre-installed with JMeter. The application executes your test plans in non-GUI mode using these load agents. Hailstorm can also work with containers or virtual machines or physical machines in your data center. Hailstorm can monitor server side resources, though at the moment, the server side monitoring is limited to UNIX hosts with nmon.

Installing Hailstorm

Software Prerequisites

Setup

๐ŸŽ‰ Download the latest Hailstorm release.

Every release consists of three files:

  • hailstorm-web/docker-compose.yml
  • hailstorm-cli/docker-compose.yml
  • hailstorm-cli/Makefile

The release is a tar+gz file. Unpack to any directory on your filesystem.

Web Interface

This is the recommended approach for most users.

To start the web interface:

$ cd /path/to/unpacked/release
$ cd hailstorm-web
$ docker-compose up

This starts downloading the containers, and starting them one by one. This should complete within a minute. You will get output similar to this towards the end.

hailstorm-api_1    | The signal INFO is in use by the JVM and will not work correctly on this platform
hailstorm-api_1    | Puma starting in single mode...
hailstorm-api_1    | * Version 4.3.3 (jruby 9.1.17.0 - ruby 2.3.3), codename: Mysterious Traveller
hailstorm-api_1    | * Min threads: 0, max threads: 16
hailstorm-api_1    | * Environment: development
hailstorm-api_1    | * Listening on tcp://0.0.0.0:8080
hailstorm-api_1    | Use Ctrl-C to stop
web_1              | 2020/04/04 17:03:23 Received 200 from http://hailstorm-api:8080
web_1              | 2020-04-04 17:03:23: (server.c.1521) server started (lighttpd/1.4.54)

The Received 200 from http://... message indicates that the system is available.

Open browser to http://localhost:8080

You should see a wizard to create a new project.

Hailstorm New Project Wizard

To bring down the container setup, exit with CTRL+C if docker-compose is running in foreground. If you daemonized it, or want to clean up completely, execute: docker-compose down.

Daemonized Mode

To start the web interface as a daemon:

$ docker-compose up -d

It takes up to sixty seconds for the system to initialize completely. If you get a connection reset message in the browser, wait for a few seconds and refresh the browser. While you are waiting, you can see the logs with docker-compose logs -f.

CLI Interface

The CLI is meant for advanced users who need low level customization and/or server monitoring.

Additional Prerequisite

  • make - Available on most Linux distributions and MacOSX. For Windows, try installing with Chocolatey: choco install make.

Running the CLI

$ cd /path/to/unpacked/release
$ cd hailstorm-cli
$ docker-compose up -d
$ make

The CLI will wait for the docker containers to be available. It should take less than a minute. When the CLI starts, it shows a prompt:

hailstorm@ab7ecdeac102:/hailstorm$

The current directory on the host is mapped to /hailstorm in the container. Any files saved to this location in the container will persist across container restarts.

Create a CLI project

hailstorm@ab7ecdeac102:/hailstorm$ hailstorm shopping_cart

Truncated output...

    wrote shopping_cart/config/environment.rb
    wrote shopping_cart/config/database.properties
    wrote shopping_cart/config/progressive.rb
    wrote shopping_cart/config/boot.rb

Done!

Start the CLI

hailstorm@ab7ecdeac102:/hailstorm$ cd shopping_cart
hailstorm@ab7ecdeac102:/hailstorm/shopping_cart$ ./script/hailstorm
Welcome to the Hailstorm (version 5.0.0) shell.
Type help to get started...
hs > _

To bring down the containers, exit the CLI container, and execute on the host: docker-compose down.

License

The source code is distributed under the MIT License.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/3pillarlabs/hailstorm-sdk/. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

Code of Conduct

Everyone interacting in the Hailstorm project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

About this project

Copyright (c) 2012 3Pillar Global

Hailstorm is developed, and maintained by open source volunteers at 3Pillar Global. Hailstorm is not an official 3Pillar Global product (experimental or otherwise), but 3Pillar Global owns the code.

hailstorm-sdk's People

Contributors

ankush-grover-3pg avatar dependabot[bot] avatar eashkhatri-3pg avatar maheshchand avatar ravishtiwari avatar sandeep-bohra avatar sayantam 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.