Quantum 1.23.0 release notes

This article introduces the changes made in version 1.23.0 and also includes upgrade instructions. 

Changes in version 1.23.0

  • Upgraded QAF version to 3.0.0.
  • Added driver restart logic. Enabling this will improve the stability of the executions because the driver sessions will be restarted in a timely manner. There are two options to use this driver restart feature: 
    1. Timer-based driver restart: Using this approach, you can define the time after which the driver should be restarted automatically. Note: The driver will not restart at the exact time mentioned, but it will restart at the end of the test case once the timer threshold is reached. To use this feature, add these keys in your application.properties file, as follows:
      1. Use the following key to enable the default 1 hour driver restart: perfecto.driver.restart.timer.flag=true
      2. To change the driver restart time, add the following key in the application properties, along with the above key (you can change the value in seconds as needed): perfecto.driver.restart.timer.value=3600
    2. Cucumber tag-based driver restart: In specific cases, the scenarios may be interdependent, and thus the above approach may not be ideal when the test scenarios are dependent on each other. If this is the case, we provide an alternative to restarting the driver using a specific cucumber tag. If this tag is found, the driver is restarted at the end of the test scenario execution. To enable this feature:
      1. Add the following tag: @RestartDriverAfterTimeout. The driver will be restarted at the end of this scenario execution.

        Copy

        Sample Cucumber scenario

        @WebSearch @RestartDriverAfterTimeout
          Scenario: Search Quantum
            Given I am on Google Search Page
            When I search for "quantum perfecto"
            Then it should have "Quantum" in search results
            Then I am on Google Search Page
  • Integrated Axe Accessibility libraries. In Quantum 1.22.0, we added support for Perfecto Accessibility audit commands for mobile apps (see the 1.22.0 release notes for more information). In Quantum version 1.23.0, we integrated Axe Accessibility libraries and added the necessary methods.

    To set up Axe Accessibility, add the following javascript files to the src/main/resources folder in your automation project:

    Important: The Axe validations will add the Perfecto Report assertion flags in the reports, but the final test case status will not be impacted. The pass/fail status of test case will not represent the accessibility check reports.

    For more information, see the information on mobile app accessibility check and the Axe accessibility document for mobile and desktop web accessibility check. The mobile app accessibility reports will be generated as downloadable reports, and the Web application accessibility checks will add the Perfecto assertion flags in the Perfecto automation report itself.

    You can now perform the accessibility audit (either for mobile or for desktop web) using the following method call:

    Copy

    Sample accessibility audit check

    /* The parameter in the checkAccessibility() method is just the tag and it can be any string that indicates the page that that we are trying to audit. */
    DeviceUtils.checkAccessibility("Login Page");
  • Added device vitals utility methods in the DeviceUtils.java file, as follows:

    Copy

    Device vitals utility methods in DeviceUtils.java

        public static void startVitals() {
            Map<String, String> params = new HashMap<>();
            getQAFDriver().executeScript("mobile:vitals:start", params);
        }

        public static void startVitals(List<String> vitals) {
            Map<String, Object> params = new HashMap<>();
            params.put("vitals", vitals);
            getQAFDriver().executeScript("mobile:vitals:start", params);
        }

        public static void startVitals(List<String> vitals, Integer interval) {
            Map<String, Object> params = new HashMap<>();
            params.put("vitals", vitals);
            params.put("interval", interval);
            getQAFDriver().executeScript("mobile:vitals:start", params);
        }

        public static void stopVitals() {
            Map<String, Object> params = new HashMap<>();
            getQAFDriver().executeScript("mobile:vitals:stop", params);
        }
  • Added reusable Javascript click and sendKeys event methods. Some web browsers, such as Safari, Internet Explorer, and Edge, sometimes experience issues performing normal Selenium clicks. For this reason, we added the following reusable Javascript click and sendKeys event methods that might help in special cases.

    Copy
    Javascript Click, SendKeys & Scroll methods in Utils.java
            //Sample method calls of the Javascript methods - 
            Utils.scrollDownTillEndOfThePage();
            Utils.javaScriptScrollToElement(element);
            Utils.javaScriptClick(element);
            Utils.javaScriptClickEvent(element);
            Utils.javaScriptSendkeys(webElementTextBox, textToSend);
            Utils.performingEnterKeyOnSpecifiedTextBox(webElement_textBox);
  • Optimized the video download feature. Previously, multiple identical/duplicate video files were getting downloaded for test cases that were executed using the same driver sessions. Now, videos will be downloaded based on driver sessions and not based on test cases.
  • Fixed an Image Injection method-related bug for the id type of method. 
  • Added timestamps in logs.
  • Added conditions to automatically ignore DriverInitListener when a shared device session is used and for virtual devices.
  • Enhanced NTLM proxy authentication in APIs. NTML proxy authentication in APIs no longer requires username, password, and domain as mandatory parameters. Mentioning only the host and port will work.

Upgrade steps 

  1. Change the Quantum version in pom.xml to 1.23.0.

    Copy
    Quantum version change in pom.xml
    <quantum.version>1.23.0</quantum.version>
  2. If a QAF and QAF-support version is mentioned in the properties section of your pom.xml, change the version to 3.0.0.

    This is only required if your automation project explicitly mentions the QAF versions. If they are not mentioned in your pom.xml, Quantum takes care of this change automatically.

    Copy
    QAF version change in pom.xml
    <qaf.version>3.0.0</qaf.version><qafsupport.version>3.0.0</qafsupport.version>