What is Appian Locust?

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

What is Locust?

It’s an open source python library for doing load testing (think JMeter, but in Python). It is by default HTTP-driven, but can be made to work with other types of interactions. Visit Locust for more information.

Locust has the benefit of relying purely on API requests, which makes it lower overhead than frameworks building on Selenium or browser automation libraries. We have also found python to be common denominator across software and quality engineers, making it a convenient language for extending the framework and defining tests. Using Locust’s model of TaskSets and TaskSequences, it is easy to compose user operations in a maintainable way. Appian-Locust builds on these concepts by defining AppianTaskSet and AppianTaskSequence, which layer on Appian-specific functionality such as login and session management.

SAIL Navigation

Appian interfaces are built with SAIL. It’s a RESTful contract that controls state between the browser/mobile clients and the server.

All SAIL-based interactions require updating a server-side context (or in a stateless mode, passing that context back and forth). These updates are expressed as JSON requests sent back and forth, which are sent as “SaveRequests”, usually to the same endpoint from which the original SAIL form was served. Each SaveRequest, if successful, will return an updated component, or a completely new form if a modal is opened or a button is clicked on a wizard.

Appian Locust abstracts away the specifics of these requests into methods that make it easy to quickly create new workflows for Locust’s virtual users to execute on an Appian instance, For more details on how Appian Locust enables this, check out the How to Write a Locust Test section.