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
Next revision Both sides next revision
plugins [2020/05/10 17:36]
admin [SikuliUIA Plugin]
plugins [2021/03/01 21:21]
admin [TestOptimal Plugins]
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 +
-   +
-   +
-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')"/>+
  
 +==== Random Plugin ====
 +[[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/RandPlugin.html | Plugin javadoc]]
 +
 +//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/MScript to an HTML webpage or Excel document.  +//SeqOut Plugin// generates the test sequence from your model script to an HTML webpageExcel document or text/xml/json files for external automation tools
- +
-The format can be customized by editing the format property file //seqout.fmt// (see [[SeqOutFormat|SeqOutFormat]]) and XSL style sheet //seqout.xsl//. This plugin may require separate license. +
- +
-[[http://testoptimal.com/javaDoc/reference/com/webmbt/plugin/SeqOutPlugin.html | MScript Functions]] +
- +
- +
-===Usage=== +
- +
-You must activate //SeqOut// plugin in [[ModelNode|ModelNode]]  before running the model.  There are two output formats available with this plugin: Excel and Web Page.  Select the right plugin format and execute the model.  +
- +
-The output will be generated when the model execution is completed. Please be aware that this plugin does not actually connect to AUT. +
- +
-One issue you may encounter is that the graph generated for each test case may be too wide to fit in the page, which makes it difficult to print. This can be addressed by changing the graph orientation for the model from //Left/Right// to //Top/Down// in [[ModelNode|Model Property]]. +
- +
-You may also double click on the graph to force the graph to resize to fit the entire width of the window. +
- +
-By default, sequence graph is generated to describe each test case.  You may change it to generate Message Sequence Chart (MSC) to describe the test case instead by selecting the corresponding format from the dropdown list field //Test Path Graph Type//. +
- +
-=== Custom Output Format=== +
-This plugin serves similar purpose as //$seqout('text')// and //<seqout>// tags (see also [[TestCase Report File|TestCase Report File]]), which is used to generate test sequence to be used outside //TestOptimal// either for documentation purpose or offline testing using external test automation systemsHowever //SeqOut plugin// was created to quickly and conveniently generate test sequence from the model/mScript in human readable format for manual testing and documentation. +
- +
-See [[Default seqout.xsl Format|default test case format]]. +
- +
-You may create as many custom formats as you need by creating a set of format property file and XSL style sheet file for each custom format and add them to the list of plugins (see instruction below). +
- +
-//TestOptimal// generates the test sequence using the formats defined in format file and saves the [[http://testoptimal.com/example/seqout.html.xml|output in xml format]] in //report// folder. It then calls [[http://testoptimal.com/example/seqout.xsl|seqout.xsl]] (or your custom xsl) transform xml data into the desired format. +
- +
- +
-===Configuration=== +
- +
-After the custom format files are created, place them in /MbtSvr/config folder and define them to the system by adding the following row to the //Plugins// field in Help/Config page: +
- +
-    com.webmbt.plugin.SeqOutPlugin,SeqOutWeb,seqout.fmt,seqout.html,seqout.xsl; +
- +
-where //SeqOutWeb// is the plugin id you assign to the format, it is displayed in //Plugin// field in [[ModelNode|ModelNode]]. Note it must starts with //SeqOut//+
- +
-//seqout.fmt// is the name of the format property file. This file contains formatting rules used by the plugin to generate output for each mScript method. +
- +
-//seqout.html// is the name of the output file to store the generated sequences. This argument is optional. If not supplied, the default value of seqout.html is used. +
- +
-//seqout.xsl// is the name of XSL style sheet file. This argument is optional. If not supplied, the default value of seqout.xsl is used. +
- +
- +
-===Customization=== +
- +
-Do not make changes to the original //seqout.fmt// or //seqout.xsl// to avoid your changes being overridden by the software updates. If you need to customize these files, do so on the copy and change the plugin configuration to use the new file. +
- +
- +
-=== Output to Excel=== +
- +
-The test case is output to Excel workbook document with the following sheets: +
- +
-  - Model - contains model attributes and model execution parmaters +
-  - Requirements - contains list of all requirements covered by the model +
-  - TestCases - contains test cases generated and their steps with associated requirement tags+
  
 ---- ----
 +====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 [[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 ====
  
-=== Pre-Requisite ===+//Sikuli// uses images to identify UI controls.  The images must be //png//
  
-//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. +Image files must be stored in ///uimap/// subfolder within the model folder.
- +
-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 178: Line 133:
   * [[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 [[http://testoptimal.com/javaDoc/reference/com/webmbt/plugin/XUIAPlugin.html| 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. 
- 
-