Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
plugins [2020/05/10 17:39]
admin [SeqOut Plugin]
plugins [2021/03/01 21:24]
admin [XUIA Plugin]
Line 1: Line 1:
 ===== TestOptimal Plugins ===== ===== TestOptimal Plugins =====
  
-//TestOptimal// uses plugin architecture to provide the flexibility for integrating with external test automation framework and tools. +//TestOptimal// uses plugin architecture to extend capability to interact with target systems and integrate 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.+The plugins included in the download bundle includes web app automation, access to REST APIs, desktop UI automation (keyboard/mouse events), image based automation, MQTT message broker service, etc. 
 + 
 +These plugins and your custom plugins enable your model to drive various target systems and perform //Robotic Proccess Automation (RPA)// for process and workflow automation. 
 + 
 +Note that most of the plugins are built on or integrated with external drivers. //TestOptimal// only supports the integration with these external drivers and not the external drivers. 
 + 
 +You may also [[tutorial:plugins | develop your own plugin]] to extend functionality of //TestOptimal// or integrate with your proprietary framework/system.
  
 Below are the plugins available: Below are the plugins available:
  
-  * [[#Selenium Plugin]] - test web app with [[https://www.selenium.dev/ | Selenium]] +  * [[#Agent Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/AgentPlugin.html|javadoc]]) 
-  * [[#SeqOut Plugin]] - generate test sequence to text file or Excel +  * [[#Appium Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/AppiumPlugin.html|javadoc]]) 
-  * [[#Appium Plugin]] - test mobile apps with [[http://appium.io/ | Appium]] +  * [[#MQTT Plugin ]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/MqttPlugin.html|javadoc]]) 
-  * [[#MQTT Plugin ]] - test MQTT-based IoT devies +  * [[#Random Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/RandPlugin.html|javadoc]]) 
-  * [[#REST Plugin]] - test WebSvc / REST APIs with [[http://rest-assured.io/| RestAssured]]  +  * [[#REST Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/RestPlugin.html|javadoc]]) 
-  * [[#Agent Plugin]] - integrating with external automation +  * [[#Selenium Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/SeleniumPlugin.html|javadoc]]) 
-  * [[#WebDriver Plugin]] - test with Selenium/WebDriver compliant drivers: [[https://github.com/microsoft/WinAppDriver|WinAppDriver]] and [[https://github.com/2gis/Winium|Winium]], etc. +  * [[#SeqOut Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/SeqOutPlugin.html|javadoc]]
-  * [[#XUIA Plugin]] - Keyboard and mouse automation +  * [[#Sikuli Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/SikuliXPlugin.html|javadoc]]) 
-  * [[#Sikuli Plugin]] - image based UI automation (Beta)+  * [[#WebDriver Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/WebDriverPlugin.html|javadoc]]) 
 +  * [[#XUIA Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/XUIAPlugin.html|javadoc]]) 
 + 
 +Plugin javadoc is available [[https://testoptimal.com/v6/apidocs | HERE]]. 
 + 
 +//Plugins// must be activated for the model before they can be used through [[ide_script | Script Editor]]. 
 + 
 +Other useful tool to interact with AUT: 
 + 
 +  * [[ https://groovy-lang.org/databases.html | SQL DB]] 
 +  * [[https://groovy-lang.gitlab.io/101-scripts/basico/command_local-en.html | Run OS Commands]] 
  
 ---- ----
-==== Selenium Plugin ==== +==== Agent 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.+[[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/AgentPlugin.html | Plugin javadoc]]
  
 +//Agent Plugin// enables integration with external automation tools and processes through http protocol.
  
-=== Plugin Overview === +Example remote agent:  
-//Selenium plugin// uses [[http://seleniumhq.org/|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 [[http://testoptimal.com/javaDoc/reference/com/webmbt/plugin/SeleniumPlugin.html MScript Functions]].+  [[remoteagentautoit AutoIT]]
  
-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.+----
  
-[[http://testoptimal.com/javaDoc/reference/com/webmbt/plugin/SeleniumPlugin.html | MScript Functions]] 
  
 +==== Appium Plugin ====
 +[[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/AppiumPlugin.html | Plugin javadoc]]
  
-=== Chrome Config & Custom Profile ===+//Appium Plugin// is used to test web apps and native apps on mobile devices. 
  
-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: 
  
-  * [[http://peter.sh/experiments/chromium-command-line-switches/|Google Chrome command line switches]] 
  
-To set up //Chrome// browser to use a custom profile, edit //webdriver_Selenium.properties// and add/update the following setting: +=== Pre-Requisite === 
-  chrome.profile.loc=/path/to/your/custom/profile +//Appium Plugin// requires [[http://appium.io|Appium]] be installed on the computer which the mobile devices will be attached or mobile simulators will be installed.
-   +
-For more information about //Chrome Driver//, please refer to [[https://sites.google.com/a/chromium.org/chromedriver/home Chrome Driver User Documentation]]+
  
 +Additionally, you will need [[https://developer.android.com/studio/index.html | Android Studio/SDK]] to test //Android// devices and [[https://developer.apple.com/downloads/index.action | Apple Xcode]] to test //IOS// devices.
  
-=== 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:+---- 
 +==== MQTT Plugin ==== 
 +[[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/MqttPlugin.html | Plugin javadoc]]
  
-  $Selenium.setCapabilityString('IE.driver','IEDriverServer_64BIT.exe'+//MQTT Plugin// enables testing of [[https://mqtt.org/ | MQTT]]-based IoT devices.
-  or   +
-  $Selenium.setCapabilityString('IE.driver','IEDriverServer_32BIT.exe')+
  
  
-=== Firefox Custom Profile ===+---- 
 +==== REST Plugin ==== 
 +[[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/RestPlugin.html | Plugin javadoc]]
  
-This section assumes that you already has created a custom profile using Firefox Profile Manager.  If not, following the instruction at {{https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles How to Create Firefox Profile}}.+//REST Plugin// enables testing of REST and WebSvc using [[http://rest-assured.io/| RestAssured]].
  
-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 + 
-   +==== Random Plugin ==== 
-   +[[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/RandPlugin.html | Plugin javadoc]] 
-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')"/>+//RAND Plugin// provides a set of pattern-based random data generation.  For example, you can generate random street address, zip code or random number from a random distribution. 
 + 
 +---- 
 + 
 +==== Selenium Plugin ==== 
 +[[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/SeleniumPlugin.html | Plugin javadoc]]
  
 +//Selenium Plugin// uses [[http://seleniumhq.org/|Selenium]] to perform test automation on your web application with various browsers. The simulated browser (HTMLUNIT) offers much higher performance and more suited for running load testing when you need to simulate hundreds or thousands of users running models simultaneously.
  
 === Element Locator === === Element Locator ===
Line 79: Line 101:
  
 ==== SeqOut Plugin ==== ==== SeqOut Plugin ====
 +[[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/SeqOutPlugin.html | Plugin javadoc]]
  
 //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.  //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. 
  
 ---- ----
 +====Sikuli Plugin ====
 +[[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/SikuliXPlugin.html | Plugin javadoc]]
  
-==== Appium Plugin ==== 
  
-//Appium Plugin// is used to test web apps and native apps on mobile devices+//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.
  
 +=== UI Images ====
  
 +//Sikuli// uses images to identify UI controls.  The images must be //png//
  
-=== Pre-Requisite === +Image files must be stored in ///uimap/// subfolder within the model folder.
- +
-//Appium Plugin// requires [[http://appium.io|Appium]] be installed on the computer which the mobile devices will be attached or mobile simulators will be installed. +
- +
-Additionally, you will need [[https://developer.android.com/studio/index.html | Android Studio/SDK]] to test //Android// devices and [[https://developer.apple.com/downloads/index.action | Apple Xcode]] to test //IOS// devices.+
  
  
 ---- ----
-==== MQTT Plugin ==== 
-//MQTT Plugin// enables testing of [[https://mqtt.org/ | MQTT]]-based IoT devices. 
  
 +==== WebDriver Plugin =====
 +[[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/WebDriverPlugin.html | Plugin javadoc]]
  
----- 
-==== REST Plugin ==== 
-//REST Plugin// enables testing of REST and WebSvc using [[http://rest-assured.io/| RestAssured]]. 
- 
----- 
-==== Agent Plugin ==== 
-//Agent Plugin// enables integration with external automation tools and processes through http protocol. 
- 
-Example remote agent:  
-  * [[remoteagentautoit | AutoIT]] 
- 
----- 
- 
-==== WebDriver Plugin ===== 
 //WebDriver Plugin// enables testing with products/services implementing [[https://www.w3.org/TR/webdriver1/| WebDriver wire protocol]], more info at [[https://www.selenium.dev/documentation/en/webdriver/ | WebDriver Documentation]]. //WebDriver Plugin// enables testing with products/services implementing [[https://www.w3.org/TR/webdriver1/| WebDriver wire protocol]], more info at [[https://www.selenium.dev/documentation/en/webdriver/ | WebDriver Documentation]].
  
Line 123: Line 131:
   * [[https://saucelabs.com/ | SauceLabs]]   * [[https://saucelabs.com/ | SauceLabs]]
   * [[https://www.browserstack.com/automate?utm_campaign=open-source-sponsor&utm_source=seleniumorg&utm_medium=referral | BrowserStack]]   * [[https://www.browserstack.com/automate?utm_campaign=open-source-sponsor&utm_source=seleniumorg&utm_medium=referral | BrowserStack]]
 +
  
  
 ---- ----
 ====XUIA Plugin ==== ====XUIA Plugin ====
 +[[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/XUIAPlugin.html | Plugin javadoc]]
  
-//XUIA Plugin// provides a set of [[http://testoptimal.com/javaDoc/reference/com/webmbt/plugin/XUIAPlugin.html| mscript functions]] for automation using keyboard and mouse. +//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. 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 [[http://testoptimal.com/javaDoc/reference/com/webmbt/plugin/SikuliPlugin.html| 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. 
- 
-[[http://testoptimal.com/javaDoc/reference/com/webmbt/plugin/SikuliPlugin.html| 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. 
- 
-