Have you heard all the new things we've improved in the product?
Join this month's "What's New" webinar to learn the latest product updates, added plugins, integrations and more!
Covered in this session:
Release 10.2 Highlights
- Support for Android 7.1.2 GA
- Plugin for IntelliJ directly from JetBrains Repository
Release 10.3 Highlights
- DigitalZoom Reporting Introduces New Features
- Increased security through Security Token
- iOS Object Tree Optimization
- HAR File Support
Going to go over the latest perfecto releases: 10.2 & 10.3
Perfecto now supports the latest GA version released by Google. You can review the full list of the latest versions supported by the Perfecto Lab.
Perfeto lab plugin
Perfecto now has the plugin available directly from JetBrains repo.
DEMO: open Intellij -> File -> Settings -> Plugins -> Browse repositories -> search for ‘perfecto’
1. To help clarify the use of logical steps and make the Execution Report easier to follow,
Perfecto has redefined the commands used for delineating the different logical steps of the execution.
‘Test step’ command has been replaced by ‘Step start’ command, and a new ‘step end’ command has been added, to allow the tester to put an end bracket on a step (we’ll demonstrate that in a minute).
2. Assertions support: the ability to add assertions and verifications results to the report.
DEMO: ReportingAssertionsTest, demonstares using testng assertion + try catch or perfecto checkpoint + if else, using stepEnd and without.
It’s possible to download the Assertions report, that includes only the assertions data (exporting this through REST API will be supported in upcoming version).
Perfecto now supports submitting bugs to jira directly from the reporting single test report, by using a single click.
This will shorten your mean time to repair and embed accurate data needed by engineering for the fix.
You can also track jira issues from within the report.
DEMO: https://branchtest.reporting-stg.perfectomobile.com/test/59217fb946e0fb00050c9d0b/
After successfully completing the integration configuration, the Single Test Report (STR) will display an icon that allows the user to connect directly to the project's JIRA space and open new "Bug" issues based on the test results.
Creating the JIRA Issue: Click on the icon -> fill in the details (The Description field will auto-include basic information on the source of this issue: that it is associated with a Test Report, and when the test was run).
Tracking the Issues: When issues were created from the STR, a counter will be displayed to the right of the "bug reporting" icon. The counter displays the number of open issues associated with the Test Report. Hovering over the counter will display a popup list of the issues. Each issue in the list includes:
- The JIRA issue number and title.
- Date that issue was opened.
- Current status of the issue.
Clicking on an entry in the list will transfer the user to the JIRA system to view the details of the issue. If there are multiple issues, you can open a JIRA "search" page that displays all of the issues by clicking on View all in JIRA.
The Reporting system now offers a CI dashboard, which allows a view of an aggregation of test results, identified by job name.
The CI view is broken down by job name, describing number of tests that were executed under each job, and the success/failure distribution.
Also features the job’s history. Drilling down to each of those will present the single test reports associated with the specific job.
The Reporting system now offers a CI dashboard, which allows a view of an aggregation of test results, identified by job name.
The CI view is broken down by job name, describing number of tests that were executed under each job, and the success/failure distribution.
Also features the job’s history. Drilling down to each of those will present the single test reports associated with the specific job.
The most commonly used CI tool is Jenkins, but for customers who use Circle-CI as their CI tool, it is now possible to integrate reporting in your CI flow, similarly to Jenkins, and hence maximizing the ability to embed Reporting to your toolchain.
You can later review the example test suite that demonstrates this.
Perfecto CQ Lab introduces the use of a Security Token that will strengthen the security of Perfecto Lab access from automation scripts and will be used for authentication across Perfecto servers associated with the Perfecto Lab. This allows for 2 things:
1. Perfecto will begin to roll-out the new Single Sign-On (SSO) feature that allows a user to sign in for the Perfecto Lab without a need to later sign-in to the DigitalZoom Reporting server or any server associated with the Perfecto Lab.
DEMO:
demonstrate the SSO on branchtest.
2. You can Supply the security token for your Selenium/Appium scripts using the securityToken capability in place of the user and password capabilities used until now (old scripts using password authentication will continue to execute properly).
DEMO:
Demonstrate how to get the security token from lab (The security token is generated for a specific user on a specific Perfecto Lab).
Demonstare in code: securityToken capability (ReportingAssertionsTest -> ReportingTest).
Limitation: Use of the Security Token is not supported for On-Prem Perfecto Lab installations.
Note: The roll-out of the feature will be implemented over the next few update cycles to eventually cover all hosted Perfecto Lab installations.
Security token is also supported for perfecto REST API.
Perfecto CQ Lab introduces the use of a Security Token that will strengthen the security of Perfecto Lab access from automation scripts and will be used for authentication across Perfecto servers associated with the Perfecto Lab. This allows for 2 things:
1. Perfecto will begin to roll-out the new Single Sign-On (SSO) feature that allows a user to sign in for the Perfecto Lab without a need to later sign-in to the DigitalZoom Reporting server or any server associated with the Perfecto Lab.
DEMO:
demonstrate the SSO on branchtest.
2. You can Supply the security token for your Selenium/Appium scripts using the securityToken capability in place of the user and password capabilities used until now (old scripts using password authentication will continue to execute properly).
DEMO:
Demonstrate how to get the security token from lab (The security token is generated for a specific user on a specific Perfecto Lab).
Demonstare in code: securityToken capability (ReportingAssertionsTest -> ReportingTest).
Limitation: Use of the Security Token is not supported for On-Prem Perfecto Lab installations.
Note: The roll-out of the feature will be implemented over the next few update cycles to eventually cover all hosted Perfecto Lab installations.
Security token is also supported for perfecto REST API.
***When an automation script attempts to identify a particular UI Element in an iOS application, Perfecto scans the application’s UI Object Tree and then identifies the element to interact with.
Some iOS applications may include a View object (for example, a TableView) that has a large number of child elements, not all of which may be visible on the current application display. Parsing all of the children may take long time of processing (in an extreme case the parsing and building of the tree took almost an hour of processing time). This negatively affects the script execution time and in extreme cases may cause a Perfecto "Premature end of file" exception.
To overcome these situations, Perfecto now offers Object Tree Optimization commands that instruct the system to limit the parsing of the UI Elements to the currently visible elements and perform the Element identification on this limited Object Tree.
By performing this optimization, we achieve:
- Speeding up the UI elements identification.
- Preventing script from failing due to a timeout of the element identification.
This new functionality may be applied to an entire test script, or limited to a particular area in the script. This would allow the Perfecto Lab to be configured for limited or non-optimization, but to apply the optimization to a particular application screen.
- To apply the Object tree optimization to the entire application, use the objectsOptimization capability during the IOSDriver creation. A value of true, applies the optimization.
- To apply the Object Tree optimization to a particular section of the test script, use the following set of Perfecto commands:
mobile:objects.optimization:start - Starts ObjectSpy optimization for any object tree operations.
mobile:objects.optimization:stop - Terminates the optimization. If the stop command does not appear, optimization will continue until the end of the script.
These commands are applied using the driver.executeScript() method.
To apply to Perfecto Native Automation use:
objects.optimization start - Activate before searching for the element child of a large View object.
objects.optimization stop - Activate when completed with the large View object.
These commands do not require any parameters.
Limitation: when this optimization is in use, the script should only interact with UI elements that are displayed on the screen, not elements that may be available by scrolling the display to show currently hidden UI elements.
Note:
- This functionality applies to automation test scripts for iOS applications on iOS 8 or later only.
- This feature only affects native apps or the native sub-trees of hybrid apps (essentially, not applicable to WebViews or children of WebViews)
Appium caching of object identifiers is suspended while the object optimization is in effect.
DEMO: demonstrate the tree in object spy before and after the optimization. Export the tree and search for //*[@visible='false']
This new functionality may be applied to an entire test script, or limited to a particular area in the script. This would allow the Perfecto Lab to be configured for limited or non-optimization, but to apply the optimization to a particular application screen.
- To apply the Object tree optimization to the entire application, use the objectsOptimization capability during the IOSDriver creation. A value of true, applies the optimization.
- To apply the Object Tree optimization to a particular section of the test script, use the following set of Perfecto commands:
mobile:objects.optimization:start - Starts ObjectSpy optimization for any object tree operations.
mobile:objects.optimization:stop - Terminates the optimization. If the stop command does not appear, optimization will continue until the end of the script.
These commands are applied using the driver.executeScript() method.
To apply to Perfecto Native Automation use:
objects.optimization start - Activate before searching for the element child of a large View object.
objects.optimization stop - Activate when completed with the large View object.
These commands do not require any parameters.
Limitation: when this optimization is in use, the script should only interact with UI elements that are displayed on the screen, not elements that may be available by scrolling the display to show currently hidden UI elements.
Note:
- This functionality applies to automation test scripts for iOS applications on iOS 8 or later only.
- This feature only affects native apps or the native sub-trees of hybrid apps (essentially, not applicable to WebViews or children of WebViews)
HTTP Archive (HAR) file is a JSON-formatted archive file format for logging an application’s (either browser or a native/hybrid app) interaction with HTTP servers.
Perfecto now provides support for generating a HAR file from an automation script, by activating the Network Virtualization functionality of the Perfecto Lab.
The HAR file can then be downloaded as an artifact from the single test report.
Note:
- This feature is currently available only for limited release. Customers who wish to use it should approach their CSM/support.
- A certificate must be installed on the device in order to successfully generate the file.
Relevant viewers: either a browser developer tool (Chrome, Firefox tools) or an external tool like Charles.
You can expect a HAR file to include a breakdown of timings including:
- How long it takes to fetch DNS information.
- How long each object takes to be requested.
- How long it takes to connect to the server.
- How long it takes to transfer assets from the server to the browser of each object.
HTTP Archive (HAR) file is a JSON-formatted archive file format for logging an application’s (either browser or a native/hybrid app) interaction with HTTP servers.
Perfecto now provides support for generating a HAR file from an automation script, by activating the Network Virtualization functionality of the Perfecto Lab.
The HAR file can then be downloaded as an artifact from the single test report.
Note:
- This feature is currently available only for limited release. Customers who wish to use it should approach their CSM/support.
- A certificate must be installed on the device in order to successfully generate the file.
Relevant viewers: either a browser developer tool (Chrome, Firefox tools) or an external tool like Charles.
You can expect a HAR file to include a breakdown of timings including:
- How long it takes to fetch DNS information.
- How long each object takes to be requested.
- How long it takes to connect to the server.
- How long it takes to transfer assets from the server to the browser of each object.