Skip to main content

Tools and functions to make testing Appian with Locust easier

Project description

Appian Locust is a wrapper library around Locust for load testing Appian. This library is intended to be used as an alternative to tools such as Jmeter and Load Runner.

Appian Locust capabilities

  • Logging in and logging out

  • Form interactions (filling/submitting)

  • Finding and interacting with basic components on a SAIL interface

  • Navigating to records/reports/sites

For full documentation, visit the docs page

Disclaimer: This library is continuously evolving. Currently the main focus is supporting essential use-cases. We are happy to accept contributions to further extend functionality, address bug fixes and improve usability. Please see the Contributing section and feel free to reach out.

Quick Start Guide

This is a quick guide to getting up and running with the appian-locust library. You will need Python 3.7+ installed on your machine before proceeding.

Setup

  1. Install appian-locust using pip, for more comprehensive projects we recommend using pipenv.

pip install appian-locust

2. Configure your test to point at the Appian instance you will be using. You can use example file provided in this repository example_config.json:

  • Set host_address to the address of your Appian instance.

  • In auth, specify the username and password of the user account to use.

{
    "host_address": "site-name.appiancloud.com",
    "auth": [
        "user.name",
        "password"
    ]
}
  1. Run the sample test example_locustfile.py.

locust -f example_locustfile.py -u 1 -t 60 --headless

If everything is set up correctly, you should start to see output from the load test reporting results. This should run for 60 seconds and end with a summary report of the results.

  • For more examples of different site interactions, see the example_*.py files included in this repository.

  • For more in-depth information about the test library, see the rest of this documentation.

Troubleshooting

  • “Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known”

  • “Login unsuccessful, no multipart cookie found…make sure credentials are correct”

    • check that auth specifies a valid username and password combination for the site you’re testing on in example_config.json.

  • “General request and response debugging”

    • Add self.appian.interactor.record_mode = True to your AppianTaskSet subclass. Files will be placed in /record_responses where the runner is executed.

Contributing

  • Read and agree to our Contributing Policy

  • Fork the appian-locust repository

  • Make any desired changes to python files, etc.

  • Commit changes and push to your fork

  • Make a merge request to the upstream fork

To test changes

In any test-implementation repo where you use appian-locust, change the following (assuming you’re using a Pipfile)

appian-locust = {path="../appian-locust", editable=true}

NOTE The path above assumes appian-locust is checked out locally, hence we can use a relative directory path.

And run pipenv install --skip-lock to allow you to use a local version of appian-locust without recreating the lock file. However, remember to use a lock file in your test-implementation repo.

Now you can test your changes as you normally would.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

appian-locust-2.0.0a1.tar.gz (63.5 kB view hashes)

Uploaded Source

Built Distribution

appian_locust-2.0.0a1-py3-none-any.whl (75.9 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page