Engines
What is an engine?
An Artillery engine provides actions which may be used in a virtual user scenario. For example, the built-in HTTP engine provides
actions such as get
, post
, put
, and delete
for working with HTTP-based APIs. The WebSocket engine provides a send
action for
sending messages over a WebSocket connection. Each scenario is controlled by an engine, for example the following "Hello World" scenario
for sending a message to a WebSocket endpoint:
- name: Send hello world
engine: websocket
flow:
- send: 'hello world!'
If an engine isn't specified, the http
engine will be used by default.
Protocol and application-level logic
Engines are very flexible and aren't limited to implementing protocols only. For example the built-in Playwright engine
allows real headless browsers to be controlled via Playwright (opens in a new tab), and the
artillery-engine-kinesis
(opens in a new tab) engine implements support
for AWS Kinesis (opens in a new tab)-specific operations.
Custom engines
Artillery has an engine interface for building custom engines.