Choose between Pulse and PulseOld

When you install or upgrade qTest 2024.5 and later, the installer asks whether to install Pulse or PulseOld. This topic explains the difference between the two Pulse Executors and helps you decide which to install.

For more information and code samples, you can take a look at the Pulse Github page (opens in a new tab).

Why there are two versions

The Pulse Executor was rewritten to move from the VM2 JavaScript engine to QuickJS. The current Pulse Executor covers the majority of rule scenarios, but a small number of calls in the libraries below are not yet fully ported. PulseOld is available for customers who have rules that rely on those calls, so you have time to migrate before the legacy executor is removed.

These are your installation options:

  • Pulse: The current Pulse Executor, selected by default. Runs on the QuickJS JavaScript engine. Recommended for all new installations.
  • PulseOld: The legacy Pulse Executor. Runs on the VM2 JavaScript engine. Provided only for backwards compatibility with existing Pulse rules that depend on libraries or functions not yet fully supported by the current Pulse Executor. PulseOld will be deprecated in a future release.

Which version should you choose?

If you are performing a new installation, choose Pulse and decline PulseOld.

If you are performing an upgrade, check the list of libraries with limitations in Pulse, and determine your path according to the outcomes below:

  • You don't depend on libraries with limitations: Choose Pulse and decline PulseOld.

  • You depend on libraries with limitations in Pulse: If you only use calls listed as supported in Libraries with limitations in Pulse, you can install Pulse. If you use any calls that aren't listed for these libraries, install PulseOld and Pulse while you update to supported calls. If you're performing a multi-node installation, install both on the same machine.

Libraries fully supported by Pulse

The new version of the Executor is fully backward-compatible with the following libraries:

  • Buffer

  • query-string

  • @qasymphony/pulse-sdk

  • @qasymphony/scenario-sdk

Libraries with limitations in Pulse

The following libraries are available in Pulse, but only the listed calls are supported:

Console

This library supports the following calls:

  • log

  • warn

  • debug

  • info

  • error

  • dir

Request

This library supports the following calls:

  • request

  • get

  • head

  • post

  • put

  • patch

  • del

  • delete

  • cookie

  • defaults

  • initParams

Axios

This library supports the following calls:

  • constructor

  • request

  • getUri

  • delete

  • get

  • head

  • options

  • post

  • postForm

  • put

  • putForm

  • patch

  • patchForm

  • defaults

  • interceptors

  • create

  • Axios

  • VERSION

  • AxiosError

  • all

  • isAxiosError

  • HttpStatusCode

xml2js

This library supports the following calls:

  • Builder

  • Parser

  • parseString

  • parseStringPromise