Functionize Extensions, or microservice endpoints, open up test executions to almost unlimited possibilities. Extensions open the Functionize platform to be fully programmable by exposing our runtime object model. Users can manipulate runtime input values, uploaded and downloaded files, screenshots, variables & expressions, TDM data and Orchestration information; the sky is the limit. Extensions offer you the ability to manipulate your tests in nearly countless ways.
These microservice endpoints receive test step objects and perform processing outside of the test's virtual machine. Extensions allow you to manipulate values and alter the test execution flow or outcomes. Extensions allow the user to create reusable custom code. This is similar to using Custom JS, however, Extensions can be created one time and then be reused across your organization with a simple mapping.
Extensions have two deployment models:
- Internal Extensions
- External Extensions
Learn about creating Internal and External Extensions in this User Guide: Extension Creation
These reusable extension components can be written, saved, and used throughout a user's Functionize account. Extensions can be registered for runtime execution on one or more steps. Users can choose to register an extension for pre-action or post-action execution.
Learn about adding Extensions to Test Actions in this User Guide: Mapping Extensions.
Extensions take a runtime test step context as input and return either an empty update response or return overloaded values.
Learn about the Extension data structures in this User Guide: Extensions Object Model.
Note: When Extensions are modified, please be patient while they are deployed. It can take a few minutes for the changes to the code to update.
Internal Extensions are hosted in the Functionize Cloud and are deployed as serverless cloud functions. The use of NodeJS 18, Python 3.11, Go 1.20, and Java 17 are supported for building out these 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 the user in their environment that can be registered in the Functionize UI.
Note: External Extensions require the user to know the format needed by the system to send accurate requests to and receive replies from Functionize.
In addition to the traditional use of Extensions as a Pre- or Post-Script on your actions, Functionize also contains a standalone Extension Action to communicate with your APIs.
Note: This is a relatively new feature and the documentation is currently in process and will be shared as soon as it is completed.
Learn more about Extensions:
User Guide: Extension Creation
User Guide: Mapping Extensions
User Guide: Extensions Object Model
User Guide: Extension Samples
User Guide: TBD