Quantum 1.19 release notes

Quantum version 1.19 has introduced important changes. Consider upgrading your project as soon as possible. This article introduces the changes made in version 1.19 (after version 1.18) and also explains how to upgrade your project to version 1.19. 

Changes in version 1.19

  • Upgraded the QAF version to 2.1.14 (read release notes here). 

    Important:

    This version contains a bug fix for the multiple-device driver close issue that was present in version 2.1.13.

  • Upgraded the Selenium version to 3.14.0 and the Appium Java client version to 6.1.0, as recommended in cloud release 18.7.
  • Changed the PDF download solution for a single test report to the latest APIs, as documented here.
  • For test failures where only the verification failed, there was no throwable exception, which was resulting in unknowns in the test results. Fixed this by adding a condition to check and report the testStop without exception in cases of verification failures.
  • Removed the "FailureReasons.json file not found" exception stack trace in cases of the missing file. (Github Issue 54)
  • Provided a fix for the Github issue where step definition parameters passed as regex strings. (Github Issue 55)
  • Made changes in the AppiumUtils class for swipe and long-press methods required due to changes in Appium's implementation of these Touch Actions. Consider reading about this in more detail because a change needs to be done in TouchActions of Appium in version 6.1.0.

Upgrade steps

  1. Make sure you are on version 1.17 or later, or check out this article.

  2. Make sure the reporting SDK version in the pom.xml is 2.2.1:

    Copy
    <reportium-sdk.version>2.2.1</reportium-sdk.version>
  3. Change the following versions in the pom.xml file:

    Copy
    <qaf.version>2.1.14</qaf.version>
    <qafsupport.version>2.1.14</qafsupport.version>
    <quantum.version>1.19</quantum.version>
  4. Perform the Maven update by selecting the force snapshot release if you use Eclipse.

Possible errors

  • (Optional) If you get errors after upgrading to version 1.19, they may be related to Appium changs to the implementation of the TouchActions in the java-client versions 6+.

    See the following examples of these swipe and long-press methods for your reference to make the changes to the TouchAction methods.

    Copy
    TouchAction touchAction = new TouchAction(driver);

    //Sample for swipe funtion using coordinates
    touchAction.press(PointOption.point(startX,startY)).moveTo(PointOption.point(endX,endY)).release().perform();

    //Sample for long press on an element
    touchAction.longPress(LongPressOptions.longPressOptions().withElement(ElementOption.element(elementObj))).release();

    This code is included only for purposes of demonstration and explanation.

    Note:

    To use PointOption/LongPressOptions/ElementOption, we need to add them based on the need in the TouchActions method calls. This is the new change introduced by the Appium client.

    For more information, see How to use touch action in the new java client?.

  • If you see driver initiation errors as soon as you upgrade your project and run your first test, like the following, they occur because Quantum has not been fully upgraded from version 1.17. 

    If you go to your Maven Dependency folder, you notice older Selenium dependencies that have not been updated:


    In addition, you will notice in your pom.xml file dependencies that belong to 1.17 but should not be there for the newer Quantum versions. Make sure to delete all of the dependencies highlighted in the following image if you see them in your pom.xml file.

    After deleting the above dependencies, add the following new one:

    Copy
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>${testng.version}</version>
    </dependency>

    After all of the updates are done, save the pom.xml file, perform a Maven update, and run your tests again.