===== TestOptimal Plugins ===== //TestOptimal// uses plugin architecture to extend capability to interact with target systems and integrate with external test automation framework and tools. 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: * [[#Agent Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/AgentPlugin.html|javadoc]]) * [[#Appium Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/AppiumPlugin.html|javadoc]]) * [[#MQTT Plugin ]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/MqttPlugin.html|javadoc]]) * [[#Random Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/RandPlugin.html|javadoc]]) * [[#REST Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/RestPlugin.html|javadoc]]) * [[#Selenium Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/SeleniumPlugin.html|javadoc]]) * [[#SeqOut Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/SeqOutPlugin.html|javadoc]]) * [[#Sikuli Plugin]] ([[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/SikuliXPlugin.html|javadoc]]) * [[#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]] ---- ==== Agent Plugin ==== [[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. Example remote agent: * [[remoteagentautoit | AutoIT]] ---- ==== Appium Plugin ==== [[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/AppiumPlugin.html | Plugin javadoc]] //Appium Plugin// is used to test web apps and native apps on mobile devices. === Pre-Requisite === //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 ==== [[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/MqttPlugin.html | Plugin javadoc]] //MQTT Plugin// enables testing of [[https://mqtt.org/ | MQTT]]-based IoT devices. ---- ==== REST Plugin ==== [[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/RestPlugin.html | Plugin javadoc]] //REST Plugin// enables testing of REST and WebSvc using [[http://rest-assured.io/| RestAssured]]. ---- ==== 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 === Need help with element locator? Check out these links: * [[https://www.simple-talk.com/dotnet/.net-framework/xpath,-css,-dom-and-selenium-the-rosetta-stone/ | Michael Sorens' post on Selenium locator]]: * [[http://www.simple-talk.com/content/file.ashx?file=4937 | Xpath * CSS * DOM * Selenium: Rosetta Stone and Cookbook, page 1]] * [[http://www.simple-talk.com/content/file.ashx?file=4938 | Xpath * CSS * DOM * Selenium: Rosetta Stone and Cookbook, page 2]] * [[http://www.techbeamers.com/use-locators-selenium/ | 8 Ways To Use Locators For Selenium Testing]] Tools to help find the web element locator: * Firefox add-on [[https://addons.mozilla.org/en-US/firefox/addon/element-locator-for-webdriv/ | WebDriver Element Locator]] * [[http://www.softwaretestinghelp.com/locate-elements-in-chrome-ie-selenium-tutorial-7/ | How to locate elements in Chrome and IE]] ---- ==== 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. ---- ====Sikuli Plugin ==== [[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/SikuliXPlugin.html | Plugin javadoc]] //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//. Image files must be stored in ///uimap/// subfolder within the model folder. ---- ==== WebDriver Plugin ===== [[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/WebDriverPlugin.html | Plugin javadoc]] //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]]. Below is a few examples of such products/services: * [[https://github.com/microsoft/WinAppDriver|WinAppDriver]] * [[https://github.com/2gis/Winium|Winium]] * [[https://saucelabs.com/ | SauceLabs]] * [[https://www.browserstack.com/automate?utm_campaign=open-source-sponsor&utm_source=seleniumorg&utm_medium=referral | BrowserStack]] ---- ====XUIA Plugin ==== [[https://testoptimal.com/v6/apidocs/com/testoptimal/plugin/XUIAPlugin.html | Plugin javadoc]] //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.