Have you been staying up to date on Perfecto's biggest product updates?
In this special Mid-Year edition, we will discuss the latest technology in test automation so you can ensure quality and agility for your application teams.
Topic will include:
- Apple’s recent change to XCUITest automation framework with iOS 11
- Fingerprint (touch ID) automation
- New network traffic
- Reporting at scale
- Live Demos
Stay until the end to participate in a live Q&A with our experts!
5. Transitioning from UI Automation FW to XCUITest
• The Change
• As of iOS 10, UI Automation Framework is no longer supported
• Instead, Apple announced support for XCUITest automation FW support (as of iOS 9)
• Estimated GA date for iOS 11- September 2017- Testers need to prepare for this change
Click (ID1)
Enter text (ID2)
Click (ID3)
…
Customer Script
PCL
Appium
UI Automation
XCUITest
iOS 11
6. Transitioning from UI Automation FW to XCUITest
• How does this impact your scripts
• Object tree layout changes which may require xPath changes
object tree for the status bar of an application. On the left is the UIAutomation tree, on the right the same tree in XCUITest.
?
12. Transitioning from UI Automation FW to XCUITest
• How does this impact your scripts
• Object tree layout changes which may require xPath changes
• Appium Method deprecations
UI Automation XCUITest
scrollTo, scrollToExact executeScript(”mobile:scroll”)
tap, swipe, zoom, pinch, getMouse Appium’ TouchAction, MultiTouchAction
or Perfecto’s touch extensions
13. Appium method deprecations
• Deprecation of scrollTo and scrollToExact methods.
→ use the executeScript("mobile: scroll") script command instead.
•
Deprecation of AppiumDriver touch methods - tap, swipe, zoom, pinch,
and getMouse
→ Use Appium TouchAction or MultiTouchAction, or Perfecto Touch
Extensions
14. Transitioning from UI Automation FW to XCUITest
• How does this impact your scripts
• Object tree layout changes which may require Xpath changes
• Appium Method deprecations
• For scripts running with the XCUITest automation, Perfecto proprietary commands
have been deprecated in favor of standard Appium commands
Perfecto’s proprietary commands Appium 1.6
Add/get/delete cookie driver.manage(getCookies/addCookies)
Get application info driver.getCapabilities().getCapability("required capability")
Home driver.backgroundApp(<timeout>)
Start Application driver.launchApp();
Rotate driver.rotate(<orientation>);
Type text WebElement sendKeys();
Touch Actions: drag, trackBall Appium TouchActions commands
15. Transitioning from UI Automation FW to XCUITest
• How does this impact your scripts
• Object tree layout changes which may require xPath changes
• Appium Method deprecations
• For scripts running with the XCUITest automation, Perfecto proprietary commands have been
deprecated in favor of standard Appium commands
• UI automation scripts will continue to run in Perfecto (iOS 10 and below)
iOS 9.3.5 Device Family
• iPad 2
• iPad Mini
• iPhone 4S
• iPhone 4
iOS 10.x Device Family
• iPhone 5
• iPhone 5C
• iPad 4th Gen.
16. Transitioning with Perfecto
• Perfecto lab readiness
• Available now: iOS 11 cloud
• Available now: Execute Appium 1.6 test scripts based on XCUITest framework
• At the same time, continue running your production tests using UI automation (for devices supporting)
• Future releases will introduce new iOS 11 beta versions, support for more IDEs etc.
capabilities.setCapability("automationName", "XCUITest");
• Outbound awareness- Webinar (Now), documentation etc.
• Professional Services: Resources have been trained on this change and can be made available to assist,
offering advice, best practices through to scanning and assisting in the transitioning of scripts
• Tools: xPath validator, script tree scanner and report scanner
17. Summary & Next Steps
Click (ID1)
Enter text (ID2)
Click (ID3)
…
Customer Script
PCL
Appium
UI Automation
XCUITest
iOS 11
• Transitioning with Perfecto
• Perfecto lab readiness for XCUITest & iOS 11 device cloud
• Webinar, Documentation etc.
• Tools: xPath validator, script tree scanner and report scanner
• PS: Resources available
• The Change
• As of iOS 11 developer beta 2, UI Automation Framework is not longer supported
• Instead, Apple announced support for XCUITest automation FW support (as of iOS 10)
• Estimated GA date for iOS 11- September 2017- Testers need to prepare for this change
Speak to your Customer Success
Manager or Account Manager about
how Perfecto can help you ensure
Continuous Quality through this change
20. Telco
Voice call quality
911 Compliance
Monitoring
Audio/Voice Services Becoming Common in Digital
Media
Mobile Streaming
Interactive Voice Response
Chatbots
24. Fingerprint
~100 fingerprint test cases
Before Now
Test frequency Biweekly nightly
Automation None Full
Feedback Late Immediate
- Driving Innovation Value Realization
Perfecto
Release:
May ‘17
28. • Per-build Real Time quality
Trending
• Duration history
• Responsiveness of the
app
• Stability of test cases
• Capacity planning
CI Dashboard
Is my quality improving?
What is my execution duration trend?
Objective:
Set the stage to win desktop we opportunities
Follow up to 1st CFD meeting, focusing on
desktop web as the opportunity to win, mobile
web is secondary focus.
The highlights of the transition include object tree layout changes:
The first change , is a change of the object class names: The UIA prefix of the UI element class names are replaced by a XCUIElementType prefix. For example, the Button element whose class-name is UIAStatusBar in UIAutomation is identified as class XCUIElementTypeStatusBar in the XCUITest framework. See Translation table .
Another change, is the Introduction of a new class XCUIElementTypeOther : This class is a container object introduced at various points in the Object Tree.
The last change , is a general change in the Object Tree structure: Some objects may be mapped inside new containers that did not exist in the UI Automation tree, and some containers exposed in the UI Automation based tree may no longer be exposed in the XCUITest framework.
Create strong XPath locators by following the Do's and Dont's.→ Strong locators are unique and easier to maintain across environments. These kind of XPath locators will match an element on both UIAutomation-based Appium scripts and XCUItest-based Appium scripts in 95% percent of the times.
Refrain from using XPaths that explicitly traverse the object tree.→ Due to the restructuring of the object tree these locators are most likely to fail with XCUITest-based automation script.
It is recommended to verify that the XCUITest class names are used for the UI Elements. See table of translations below.
Perfecto added an auto translation mechanism which allows existing strong locators to work with the XCUITest-based infrastructure.
Example1, the XPath: //UIAButton[contains(@label, '9')] will be automatically translated to //XCUIElementTypeButton[contains(@label, '9')]Example2 - The translation mechanism also automatically translates the @class field used with UI automation to @type used with XCUITest. For example, the XPath: //*[@class='XCUITestElementTypeButton'] will be auto-translated to //*[@type='XCUIElementTypeButton']
Some notes -
→ The mechanism currently does not work well with compound expressions (when 'and' or 'or' operators are used)→ The mechanism will not help when an explicit XPath traversing through the tree structure is used, due to the different layout of the element tree.
Use this online tool to validate XPath locators in general , their strength and their compliance with XCUITest Element specifiers.
You can also use the Analyser which includes two scan utilities, written in PHP and validates strength of xpaths in your test code - and also validates, xpaths and commands compatability with XCUITest .
Perfecto's XCUITest-based infrastructure is integrated with version 1.6 of Appium. In this version, Appium has depreciated several methods and
Deprecation of scrollTo and scrollToExact methods.
Deprecation of AppiumDriver touch methods - tap, swipe, zoom, pinch, and getMouse
findElement using IosUIAutomation not supported – includes findElementByIosUIAutomation() method and driver.findElement(MobileBy.IosUIAutomation(""))
As part of the effort to better align with Appium APIs, Perfectos extended functions listed in the table below, are no longer supported in favor of standard Appium commands. Scripts will throw an exception with the message: the command is not supported with capability automationName - XCUITest.
To Summarize the impact on your scripts
Add virtual assistant
Alexa-type voice in and out
Detail use case
Please stop the video at 2:00
When testing an application dependent upon the fingerprint reader, the main testing feature is to check the ability of the application to address the two scenarios:
User is successfully identified.
User is not authenticated by his fingerprint.
To cover these scenarios, Perfecto supports an extension command, supported by the REST API, Appium automation, UFT integration, Native Automation, and Perfecto's Manual testing interface, that can be used at the point of authentication to supply the different authentication results.
Special Considerations for iOS Devices
Usually, On iOS devices there's a requirement to enable the Touch ID service, before using the fingerprint reader.
If the touch ID is enabled on the device, then the application will prompt the user to touch the fingerprint reader.
But if it doesn't, then the OS will not prompt the user to provide a fingerprint, but the Perfecto system will intercede and provide a perfecto prompt.
This feature is supported, on Native, MaualUFT and Appium
Honeywell: due to misaligned visibility bugs went into production or found late/very close to production.