Extensions Overview

Functionize Extensions open up your test executions to almost limitless possibilities. Extensions open the Functionize platform to be fully programmable by exposing our runtime object model. You can manipulate runtime input values, uploaded and downloaded files, screenshots, variables and expressions, TDM data, and Orchestration information among others.

These microservice endpoints receive step objects and do processing outside of the test's virtual machine. Extensions allow you to mutate values and alter the test execution flow or outcomes.

Extensions have two deployment models:

  1. Internal Extensions
  2. External Extensions 

Internal Extensions are hosted by Functionize and are deployed as serverless cloud functions. We support NodeJS 10, Python 3.7, and Go 1.11/Go1.13 for building Internal extensions.
You can also include libraries to fully extend the possibilities of development.  Note: Internal Extensions are limited to the capabilities of Google's Cloud Functions for things like maximum payload, execution length, and so on. 

External Extensions are endpoints deployed by you that can be registered in the Functionize UI.
Note: External Extensions require you to know the format needed by your system to send accurate requests to and receive replies from Functionize.

Learn about creating Internal and External Extensions in this User Guide: Extension Creation.

These reusable components can be written, saved, and used throughout your organization. They can be registered for runtime execution on one or more steps. You can choose to register an extension pre-action execution or post-execution.

Learn about adding your Extensions to your Test Actions in this User Guide: Mapping Extensions.

Extensions take a runtime step context as input and return either an empty update response or return overloaded values.

Learn about the data structures in this User Guide: Extensions Object Model.

NOTE: When Extensions are modified, please be patient while they are deployed. It can sometimes take a minute for the changes to the code to update.


Learn more about Extensions

User Guide: Extension Creation

User Guide: Mapping Extensions

User Guide: Extensions Object Model

User Guide: Extension Samples