Page tree
Skip to end of metadata
Go to start of metadata

Last updated: Feb 17, 2020 18:57

This document introduces the 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)


On this page:

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:

      <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:

    <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:

      Appium Driver - TestNG XML configuration
      <parameter name="driverNameList" value="perfecto,perfectodevii"></parameter>
      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):

      Remote Web Driver - TestNG XML configuration
      <parameter name="driverNameList" value="perfectoRemote,perfectodeviiRemote"></parameter>
      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

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.



Related articles: