What is New in MarathonITE 4.0?

New Features

  • Selenium/WebDriver bindings for test scripts.

    MarathonITE 4.0 uses open source Marathon Java Driver for executing the scripts. Marathon Java Driver is an implementation of JsonWireProtocol for Java/Swing applications.

  • Faster execution of test scripts

    There are two Java Virtual Machine instances used by MarathonITE. One is used by MarathonITE itself and the other one is used to launch the Application Under Test (AUT). In V3, we used to load the script runtime within the AUT VM. So, each time a test is executed, a script runtime is initialized and loaded into the VM. This adds to the execution time of a test script. In V4, the script runtime is loaded in Marathon VM itself. Besides reducing the execution time of the scripts, this also helps in avoiding the conflicting JAR version (JAR hell) sometimes experienced by Marathon users.

  • Better reporting through Allure framework ITE

    When executing scripts in batch mode, you can use -allure option on command line to generate reports using allure reporting framework. Now MarathonITE supports adding extra meta data to the test scripts.

  • Distributed test execution through Marathon Grid ITE

  • Centralized object repository ITE

Compatibility with MarathonITE 3.0

Though we strived to keep MarathonITE 4.0 to be backward compatible with MarathonITE 3.0 - there are places where this wasn't technically feasible.

  • Dropped support for Jython

    MarathonITE 4.0 doesn't support Jython for scripting.

  • get_component returns a WebElement not a java.awt.Component

    Since Marathon V3, the script runtime is in the AUT VM, we are able to return the Java component with get_component. However, this is not possible with Marathon V4. As an alternative, you can use execute_script to perform operations on components. execute_script accepts Java code block and returns a value.

  • JInternalFrame needs an entry in the object map

    In MarathonV3, a JInternalFrame is searched using the name passed in the frame() method call. In MarathonV4, an entry for JInternalFrame should be available in object map for frame() method to work.

    If your application is using JInternalFrame, you can do the following:

    1. Create a new project, record the effected portion. Find the recognition properties for the JInternalFrame component.
    2. Add an entry for the frame() in the object map entry for the old project.