Modules can’t call other modules.
Example
A module is a YAML file that ends in.module.yaml. Call it from a test on the
same platform with a Module step. This example uses a web module; mobile
parameter declarations differ as shown under Parameters.
log-in.module.yaml
checkout.test.yaml
Parameters
Parameters let a single module handle different inputs. Web modules declare a list underparameters, then reference the values inside steps via
{{ env.PARAM_NAME }} (or env.PARAM_NAME in JavaScript steps).
log-in.module.yaml
parameters object. parameterNames declares the inputs,
defaultParameters maps names to JavaScript expressions, and parameterEnums
maps names to allowed string values. Quote a literal string inside the
expression:
log-in.module.yaml
Defaults vs instance inputs
Each parameter can have a default value on the module and an instance input on a specific Module step. Instance inputs take precedence. Each input value is one of:- A shorthand string: evaluated as a JavaScript expression (e.g.
env.PARAM,someFn() + 1). { string: ... }: a literal string. Use this for fixed text values.{ javascript: ... }: an explicit JavaScript expression, equivalent to the shorthand. The runtime addsreturn; do not add a return statement yourself.
checkout.test.yaml
Control flow
Default retries
For web modules, set Default retries under the module’s Control flow tab to retry every invocation of the module a fixed number of times on failure. Invocations that set their ownretries value override the module default.
Use this for flaky setup modules (e.g. a login module that sometimes fails on
slow environments) instead of setting retries on every invocation.
Caching
Web modules are uncached by default and always execute. Enable caching to skip a module when its cache key and inputs are unchanged. Momentic also caches the module’s return value (the return value of its last step). Mobile module calls execute their steps; the module caching fields below apply to web modules. Configure caching with module-level fields:log-in.module.yaml
cacheConfig:
checkout.test.yaml
Authentication modules
SetautoAuth: true (the editor’s Treat as auth module) to save and restore
browser auth state between runs. This applies to web tests; mobile modules do
not have autoAuth. Momentic persists:
log-in.module.yaml
Set the cache expiry shorter than your session’s expiry. Add a final step that
verifies the authenticated state so the cache only saves when login succeeded.