Quantum 1.20 release notes

This document introduces changes made in version 1.20 (following version 1.19) and provides information on how you can upgrade to version 1.20. 

Changes in Quantum 1.20

Version 1.20 includes the following changes: 

  • Upgraded the Selenium version to 3.141.59 and the Appium Java client version to 6.1.0, as recommended in Perfecto cloud release 19.3.
  • Integrated the new Smart Reporting (formerly known as DigitalZoom) solution to support multiple device reports in Smart Reporting. (Github Issue 62)
  • Added custom fields to Smart Reporting using Tags in Feature files. (Github Issue 57)
  • Added custom fields and custom tags, along with custom failure reasons for specific stack trace errors. (Github Issue 58). For more details, read here.

  • Added support for securityToken in MediaUpload methods in the cloud utils. (Github Issue 60)
  • Fixed a bug related to null pointers that occurred during report downloads in proxy environments. (Github Issue 63)
  • Fixed a bug related to messed-up step names for special parameters in Smart Reporting. (Github Issue 64
  • Fixed a bug related to the console log in tests with 2 devices. (Github Issue 56)
  • Fixed a bug related to an error that occurred in Smart Reporting download methods during local executions. (Github Issue 59)

Upgrade the project to version 1.20

  1. Make sure you are on version 1.19.

  2. In the pom.xml file:

    1. Make sure the listed version of the reporting SDK is 2.3:

      <reportium-sdk.version>2.3</reportium-sdk.version>
    2. Change the following versions:

      Copy
      <qaf.version>2.1.14</qaf.version>
      <qafsupport.version>2.1.14</qafsupport.version>
      <quantum.version>1.20</quantum.version>
      <qaf.version>2.1.14</qaf.version><qafsupport.version>2.1.14</qafsupport.version><quantum.version>1.20</quantum.version>
  3. If you use Eclipse, perform the Maven update by selecting the force snapshot release.

Make use of new features

The multiple-device reports and custom tags in Smart Reporting features introduced in version 1.20 require configuration before you can use them. This section walks you through the necessary changes.

Multiple-device integration with Smart Reporting

  1. Make sure you use DriverUtils.switchToDriver(String driverName) instead of the custom methods used in individual projects. This is required for multiple-driver Smart Reporting results and proper device IDs in console logs.
  2. Add the driverNameList parameter with all driver names as a comma-separated string in the TestNG configuration, as shown in the following code snippet:

    Copy
    <test name="SMS Test Android to Android"  enabled="true">
        <parameter name="driverNameList" value="perfectoRemote,perfectodeviiRemote"></parameter>
        <parameter name="perfecto.capabilities.deviceName" value= "04157DF43A656B1A"></parameter>
        <parameter name="perfecto.capabilities.os" value= "Android"></parameter>
        <parameter name="perfecto.capabilities.manufacturer" value= "Samsung"></parameter>
        <parameter name="perfecto.capabilities.model" value= "Galaxy.*"></parameter>
        <parameter name="perfecto.capabilities.appPackage" value= "com.android.mms"></parameter>
        <parameter name="perfectodevii.capabilities.model" value= "Galaxy.*"></parameter>
        <parameter name="perfectodevii.capabilities.os" value= "Android"></parameter>
        
        <parameter name="env.resources" value="src/main/resources/androidSamsung"/>
        <parameter name="perfecto.env.resources" value="src/main/resources/androidSamsung"/>
        <parameter name="perfectodevii.env.resources" value="src/main/resources/androidSamsung"/>
        <groups>
            <run>
                <include name="@twoDevicesSMS"/>
            </run>
        </groups>
        <classes>
            <class name="com.quantum.tests.twoDevices"/>
        </classes>
    </test>
  3. When using the driverName as the parameter in the switchToDriver() method or in the driverNameList parameter in TestNG, make sure value for driverName uses only lowercase letters.

    • The Appium driver that is used for mobile application testing uses the following driver names:

      Copy

      Appium Driver - TestNG XML configuration

      <parameter name="driverNameList" value="perfecto,perfectodevii"></parameter>
      Copy

      Appium Driver - Switch Driver method

      DriverUtils.switchToDriver("perfecto");
      openApp();
      DriverUtils.switchToDriver("perfectodevii");
      openApp();
    • The Remote Web Driver that is used for desktop or mobile browser testing use the following driver names (note the Remote keyword):

      Copy

      Remote Web Driver - TestNG XML configuration

      <parameter name="driverNameList" value="perfectoRemote,perfectodeviiRemote"></parameter>
      Copy

      Remote Web Driver - Switch Driver method

      DriverUtils.switchToDriver("perfectoRemote");
      getDriver().get("http://www.google.com");
      DriverUtils.switchToDriver("perfectodeviiRemote");
      getDriver().get("http://www.wikipedia.com");

The following image shows an example for the final report. 

Custom fields in Smart Reporting 

You can now use custom fields in Smart Reporting by means of tags in feature files. To mention tags in feature files, use the following syntax:

@%customFieldName-customFieldValue
Copy

Cucumber tag - Custom field code sample

@WebSearch @%TestEnvironment-SIT
Scenario: Search Quantum
    Given I am on Google Search Page
    When I search for "quantum perfecto"    Then it should have "Introducing Quantum Framework" in search results
    Then I am on Google Search Page 

For more information on custom fields, see this article.

Possible errors

If you use the Quantum feature to add Smart Reporting failure reasons from version 1.19, you will get the following error:

Ignoring Failure Reasons because JSON file was not found in the path 

This error occurs due to a change in the structure of the JSON file introduced in version 1.20 to support custom fields and tags. For more information, read this article.