Skip to content

redline13/harness-custom-test-python

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.

An offline tester to validate your custom Python RedLine13 Load Test.

Quick Start

git clone https://github.com/redline13/harness-custom-test-python.git
cd harness-custom-test-python
python setup.py install

The project has a couple dependencies which should be installed with the command above. Alternatively they can be installed with pip

  • bs4
  • pycurl

Specify test on Command Line

  • python run_load_test.py example_test.py
  • python run_load_test.py example_test
    • This opens module example_test.py and looks for a subclass of LoadTestingTest

Specify configuration in loadtest.ini

You can also specify configuration data in loadtest.ini which is read in and provided to your class as a dict from self.get_ini_settings()

# used in sample load test to define iterations
iterations=4
# can define test to run example_test or example_test.py
classfilename=example_test
  • python run_load_test.py

Examples Provided

  • CustomLoadTest, custom_load_test.py
    • Simple URL which does echo
  • ExampleTest, example_test.py
    • Loops 100 times with random wait, each loop is a recorded as URL and overall a PAGE
  • FormLoadTest, form_load_test.py
    • Gets data from a webpage, finds a form, and submits that form with data
  • LoginLoadTest, login_load_test.py
    • Submits a login form (to use see code, need to add in data)
  • SimpleLoadTest, simple_load_test.py
    • Hits a URL, parses for other endpoints (JS, CSS) and times those as well

Simulating inputs for test

Modify loadtest.ini with parameters, in your custom test you can access settings via get_ini_settings. The object is a dict

from load_testing_test import LoadTestingTest
import record_helpers
import time
import random


class ExampleTest(LoadTestingTest):

    def start_test(self):
        """ Start test """

        # Example getting information from Config Dict
        config = self.get_ini_settings()
        iterations = 1
        if config.has_key( 'iterations' ):
            iterations = int(config.get( 'iterations', 1 ))

        start_user_time = time.time()

        for x in range(1, iterations):
            start_time = time.time()
            time.sleep(random.randint(2, 5))
            diff = time.time() - start_time
            record_helpers.record_load(x, start_time, diff)

        end_user_elapsed = time.time() - start_user_time
        record_helpers.record_load_time( "Overall", start_user_time, end_user_elapsed)

        return True

Output

The load test will generate local information on performance results and errors.

More on Custom Performance Tests

https://www.redline13.com/blog/writing-a-custom-load-test/

About

RedLine13 load test harness for building custom python tests and testing locally

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages