Sign inSign up

kidk/felt

By kidk

•Updated about 9 years ago

Front end load testing with PhantomJS/SlimerJS

Image
0

363

kidk/felt repository overview

Build status

⁠Felt

Front end load testing with PhantomJS/SlimerJS, sponsored by CoScale⁠

⁠Description

Felt is a front-end load tester. It generates load by running a lot of browser instances simultaneously and waiting for the page to finish loading (no more pending resource calls). The tool uses PhantomJS⁠ or SlimerJS⁠. You can use Felt to quickly generate load on front end heavy applications. With scenarios you can setup a path through your application for the browsers to follow.

⁠Use cases

  • Load testing
    • AngularJS
    • React
    • Backbone.js
    • Ember.js
  • Cache warming
  • Quick local load tests
  • Synthetic monitoring

⁠Features

  • Real browser load testing of web applications
  • Works with PhantomJS (webkit) and SlimerJS (firefox)
  • Scenarios

⁠Requirements

  • Tested on Python 2.7, 3.3, 3.4 and 3.5
  • Unix based operating system
  • Install pip requirements (pip install -r requirements.txt)

⁠Quick start

  1. git clone https://github.com/kidk/felt.git
  2. cd felt
  3. pip install -r requirements.txt
  4. python main.py --verbose examples/basic.json
  5. ctrl + c to stop

⁠Usage

usage: main.py [-h] [--debug] [--verbose] [--threads THREADS] [--test]
               [--slimerjs] [--screenshot] [--user-agent USERAGENT]
               [--max-time MAXTIME] [--init]
               scenario

Start workload.

positional arguments:
  scenario

optional arguments:
  -h, --help            show this help message and exit
  --debug               enable debug information
  --verbose             makes generator more verbose
  --threads THREADS     number of threads to run simultaneously
  --test                run a scenario only once
  --slimerjs            use slimerjs instead of phantomjs
  --screenshot          provide screenshots after each step
  --user-agent USERAGENT
                        provide a custom User-Agent
  --max-time MAXTIME    provide a maximum runtime
  --init                only download browsers

⁠Actions list

  • open_url - Open browser and navigate to url.

    Attributes:

    • value: Url to open
  • set_value - Set value attribute in an element

    Attributes:

    • selector - Value for querySelector
    • value - Value to insert into element
  • submit - Send submit event to element

    Attributes:

    • selector - Value for querySelector
  • click - Send click event to element (if selector returns multiple elements, first one is clicked)

    Attributes:

    • selector - Value for querySelectorAll
  • click_one - Send click event to random selected element

    Attributes:

    • selector - Value for querySelectorAll
  • sleep - Wait for x miliseconds

    Attributes:

    • value - Amount in ms you want function to wait or object with min, max to wait a random time between min and max
  • wait_for_element - Wait for element to appear in browser

    Attributes:

    • selector - Value for querySelector
  • check_element_exists - Check if element is present and contains content

    Attributes:

    • selector - Value for querySelector

⁠Development

Please don't hesitate to submit bugs, feature requests or pull requests. We welcome feedback and would love to hear how you're using Felt in your own environment.

⁠Sponsored by CoScale

CoScale logo

Tag summary

Content type

Image

Digest

Size

289.1 MB

Last updated

about 9 years ago

docker pull kidk/felt