This is an old revision of the document!


TestOptimal Plugins

TestOptimal uses plugin architecture to provide the flexibility for integrating with external test automation framework and tools.

You may also develop your own plugin to extend functionality of TestOptimal or integrate with your proprietary framework/system.

Below are the plugins available:


Selenium Plugin

Selenium plugin provides a set of MScript functions to perform test automation on your web application. Just like other plugins, you can enable it for each model and can be used with other plugins together.

Plugin Overview

Selenium plugin uses Selenium to drive your web applications with real browser in real-time as model is executing. You can use either MScript or java to call Selenium to drive your web applications. MScript is an xml-based scripting and Selenium plugin provides a rich set of MScript Functions.

Selenium supports various browsers to test your web applications as well as a simulated browser which offers much higher performance and more suited for running load testing when you need to simulate hundreds or thousands of users running models simultaneously.

MScript Functions

Chrome Config & Custom Profile

You can config Google Chrome browser by setting webdriver.properties. You may need to config this plugin using the information provided in the links below:

To set up Chrome browser to use a custom profile, edit webdriver_Selenium.properties and add/update the following setting:

chrome.profile.loc=/path/to/your/custom/profile

For more information about Chrome Driver, please refer to Chrome Driver User Documentation

WebDriver Config

You may also configure Selenium/WebDriver by setting webdriver.properties file. See example webdriver.properties.

By default 32 bit IE driver is used, however you can change this default to 64 bit IE driver by editing webdriver.properties file. Alternatively you can call Selenium function $setCapabilityString() to dynamically change which IE driver to be used to launch AUT:

$Selenium.setCapabilityString('IE.driver','IEDriverServer_64BIT.exe')
or  
$Selenium.setCapabilityString('IE.driver','IEDriverServer_32BIT.exe')

Firefox Custom Profile

This section assumes that you already has created a custom profile using Firefox Profile Manager. If not, following the instruction at How to Create Firefox Profile.

You may use custom Firefox profile by setting firefox.profile.loc in webdriver_Selenium.properties to point to the location/folder where your custom profile is stored:

firefox.profile.loc=C:/path/to/my/filefox/profile

Alternatively you can also set this during model execution in MBT_start trigger:

 <action lid="9" code="$Selenium.setCapabilityString('firefox.profile.loc','C:/path/to/my/filefox/profile')"/>

Element Locator

SeqOut Plugin

SeqOut Plugin generates the test sequence from your model script to an HTML webpage, Excel document or text/xml/json files for external automation tools.


Appium Plugin

Appium Plugin is used to test web apps and native apps on mobile devices.

Pre-Requisite

Appium Plugin requires Appium be installed on the computer which the mobile devices will be attached or mobile simulators will be installed.

Additionally, you will need Android Studio/SDK to test Android devices and Apple Xcode to test IOS devices.


MQTT Plugin

MQTT Plugin enables testing of MQTT-based IoT devices.


REST Plugin

REST Plugin enables testing of REST and WebSvc using RestAssured.


Agent Plugin

Agent Plugin enables integration with external automation tools and processes through http protocol.

Example remote agent:


WebDriver Plugin

WebDriver Plugin enables testing with products/services implementing WebDriver wire protocol, more info at WebDriver Documentation.

Below is a few examples of such products/services:


XUIA Plugin

XUIA Plugin provides a set of mscript functions for automation using keyboard and mouse.

The automation is accomplished by sending the real keyboard event and mouse movement to AUT. Due to the nature of this type of automation, you must ensure AUT you are automating has the focus just like as if you are testing manually.


SikuliUIA Plugin

Sikuli Plugin provides a set of mscript functions for interacting with any type of UI Applications. Due to the nature of using image to identify the UI control, the performance will be a little bit slower.

MScript Functions

UI Images

Sikuli uses images to identify UI controls. The images must be png.

Image files must be stored in /uimap/ subfolder within the model folder.