Extensible Platform

Monitor & interact with running tests

Integrated testing - Customize your tests with code snippets. Trigger pre- or post- actions in another system. Extensions can be shared with your team and reused in multiple tests.

Integrated testing

Customize your tests with code snippets. Trigger pre- or post- actions in another system. Extensions can be shared with your team and reused in multiple tests.

Interact with running tests - Respond to exceptions, generate test data on-the-fly, or build real-time integrations into runtime

Interact with Running Tests

Respond to exceptions, generate test data on-the-fly, or build real-time integrations into runtime

design custom behaviors - Override steps or outcomes, restart tests, add real-time decision making, and other complex scenarios.

Design custom behaviors

Override steps or outcomes, restart tests, add real-time decision making, and other complex scenarios.

Extensions

Why Extensions? They’re perfect for complex end to end testing and workflows that may not exist out of the box with Functionize.  For example, if you need to generate a random phone number with a certain format, that we don’t support natively, you can create a reusable extension that the entire team can use. Additionally, if you’re wanting to trigger a workflow to happen in the database or back end, you can create an extension to help complete an end to end scenario.

Internal Extensions

Extensions can be implemented in just a few lines of code. Customers have the option to create extensions that Functionize hosts in the following languages:

  • Node.js version 8 or 10, using Express 4.16.3 web framework. Other dependencies can be included with your code, or specified using npm’s package.json
  • Python version 3.7.1, using Flask 1.0.2 web framework. Other dependencies can be included with your code, or specified using pip’s requirements.txt
  • Go 1.11 or 1.13

Once these extensions are saved in Functionize, they can be easily shared with your teammates and reused across tests.

External Extensions

You can deploy Extensions on your own infrastructure. In this case, you can use any programming languages or tools to implement the code.

This option simply requires that Functionize can access the Extension’s API endpoint via a POST call. If the endpoint is not publicly accessible, access must be provided via a whitelisted IP address, Functionize customer proxy, or VPN, as appropriate.

Customizable Actions

Sometimes you want to have just a bit more control over what happens during the test execution. Functionize gives you the ability to add code throughout the execution process so you can always extend the out of the box functionality

Selector Override

Customize how you find your element

Sometimes you want to verify an element that isn’t easy for the ML engine to learn. In these scenarios, we give you the ability to return the element needed based on calculations that may be more complex than a simple xpath or css selector.

Verification Override

Customize whether your action should pass, or fail

Although we allow complex verifications out of the box across all DOM elements and CSS elements, you may want to add code to calculate more complex verifications. For example, if you want to ensure 10 blog elements always show up on a page, you may want to add a verification override

Custom JS Action

Fully customizable action

Similar to a verification override, you can purely just add code as an action type without needing to select an element on the screen. From these custom javascript actions, you can reach out to other APIs, access the DOM, and so much more.

Download Datasheet

AI-Powered Testing

Functionize is the industry’s most advanced enterprise AI-powered testing. We help teams break through testing barriers and enable organizations to release faster.

Learn how Functionize intelligent testing platform can help you:

  • Create AI-powered tests using Architect or plain English via natural language processing
  • Reduce test maintenance time by 85% with self-healing tests
  • Scale test execution and run cross-browser tests in parallel