SlideShare a Scribd company logo
Advanced Appium Tips & Tricks
Jonathan Lipps • Founding Principal • Cloud Grey


@AppiumDevs • @cloudgrey_io • @jlipps • appiumpro.com
Perfecto Mobile Webinar · The Internet
April 24, 2018
© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Housekeeping
• Please participate in our live poll and end-of-webinar survey
• Ask us questions in the QA panel
• We will send you the recording and slides
4/21/2018 2
Founding Principal
Architect, Maintainer
Jonathan Lipps • Founding Principal • Cloud Grey


@AppiumDevs • @cloudgrey_io • @jlipps • appiumpro.com
Appium Update

Recommended for you

Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress

A quick overview over Cypress, a front end testing library, going over the motivation to incorporate it for integration tests and some best practices of how to use it.

cypressintegrationsoftware testing
Appium basics
Appium basicsAppium basics
Appium basics

4th Singapore Appium Meetup https://engineers.sg/video/appium-back-to-the-basics-singapore-appium-meetup--2836

appiumrubymeetup
Cypress first impressions
Cypress first impressionsCypress first impressions
Cypress first impressions

The document discusses Cypress, an open source tool for testing web applications. It highlights Cypress' great UI, bundled tools like Sinon and jQuery, features like XHR interception and debugging with time traveling snapshots. It also mentions best practices, using fixtures to load test data, dealing with iframes and OAuth, and known issues.

automationcypresse2e
AppiumConf!
@jlipps · cloudgrey.io
Watch the videos at
appiumconf.com
Stay tuned for next year.
Thanks for sponsoring,
Perfecto!
What’s new in Appium 1.8?
@jlipps · cloudgrey.io
W3C WebDriver spec support
What’s new in Appium 1.8?
@jlipps · cloudgrey.io
W3C WebDriver spec support
App management features
What’s new in Appium 1.8?
@jlipps · cloudgrey.io

Recommended for you

DevOps and Splunk
DevOps and SplunkDevOps and Splunk
DevOps and Splunk

This document discusses how Splunk can help organizations with DevOps practices through concise 3 sentence summaries: Splunk allows organizations to increase application delivery velocity by providing continuous insights to devops teams from planning through monitoring. It also improves code quality by enabling code quality scans, security scans, and automated acceptance tests across the development lifecycle. Splunk further drives impact by providing visibility across infrastructure, applications, services, and tools to give insights across the entire IT environment.

mc_august2016
Terraform
TerraformTerraform
Terraform

Terraform is a tool used by Atlassian for building, changing, and versioning infrastructure safely and efficiently. It manages both popular cloud services and in-house solutions through its infrastructure-as-code approach. Atlassian uses Terraform for its build pipelines via a Python wrapper and fork of Terraform, taking advantage of its modular and extendable design as well as its large, active community for support.

Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...

Using Terraform to automate your infrastructure on AWS. What is Terraform and how is it different from Ansible. How to control cloud deployments using Terraform.

popuplofttlvawscloud
W3C WebDriver spec support
App management features
Improved screen-related primitives
What’s new in Appium 1.8?
@jlipps · cloudgrey.io
W3C WebDriver spec support
App management features
Improved screen-related primitives
Clipboard management features
What’s new in Appium 1.8?
@jlipps · cloudgrey.io
W3C WebDriver spec support
App management features
Improved screen-related primitives
Clipboard management features
Auxiliary app support via otherApps capability
What’s new in Appium 1.8?
@jlipps · cloudgrey.io
W3C WebDriver spec support
App management features
Improved screen-related primitives
Clipboard management features
Auxiliary app support via otherApps capability
iOS Screen Recording
What’s new in Appium 1.8?
@jlipps · cloudgrey.io

Recommended for you

Introduction to Firebase from Google
Introduction to Firebase from GoogleIntroduction to Firebase from Google
Introduction to Firebase from Google

This deck gives an overview of Firebase. Firebase allows mobile developers to develop a quality app, grow the user base and monetize from it, through cross-platform SDKs. With Firebase Analytics at it's core, you will be able to have a clear 360 view of your app without having to juggle between multiple dashboards.

mobile sdksfirebasegoogle
React native
React nativeReact native
React native

React Native allows developers to build mobile apps using React with native platform capabilities. It uses native components instead of web views, making apps feel and perform like native ones. The document discusses what React Native is, how to set up a development environment, build a basic app, add libraries, handle common errors, and React Native fundamentals like components, styles, layout, events, and touch handling.

react nativemobile development
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. Selenium

This document compares the Cypress and Selenium testing frameworks. It provides an overview of each framework, including supported languages, browsers, and key differences. The document suggests Cypress may signal the end of an era for Selenium as it provides direct browser control, easier debugging of tests, and support for testing desktop applications like Electron. It highlights some unique features of Cypress, such as controlling application state and network traffic. The presentation ends with a Q&A section.

cypressselenium
W3C WebDriver spec support
App management features
Improved screen-related primitives
Clipboard management features
Auxiliary app support via otherApps capability
iOS Screen Recording
iOS Performance data gathering via Instruments
What’s new in Appium 1.8?
@jlipps · cloudgrey.io
W3C WebDriver spec support
App management features
Improved screen-related primitives
Clipboard management features
Auxiliary app support via otherApps capability
iOS Screen Recording
iOS Performance data gathering via Instruments
Android Broadcast device logs for log streaming
What’s new in Appium 1.8?
@jlipps · cloudgrey.io
W3C WebDriver spec support
App management features
Improved screen-related primitives
Clipboard management features
Auxiliary app support via otherApps capability
iOS Screen Recording
iOS Performance data gathering via Instruments
Android Broadcast device logs for log streaming
Android Support ‘Instant Apps’
What’s new in Appium 1.8?
@jlipps · cloudgrey.io
W3C WebDriver spec support
App management features
Improved screen-related primitives
Clipboard management features
Auxiliary app support via otherApps capability
iOS Screen Recording
iOS Performance data gathering via Instruments
Android Broadcast device logs for log streaming
Android Support ‘Instant Apps’
Many, many bugfixes and performance/stability improvements
What’s new in Appium 1.8?
@jlipps · cloudgrey.io

Recommended for you

Appdynamics Training Session
Appdynamics Training SessionAppdynamics Training Session
Appdynamics Training Session

Agenda • Role of Observability/Monitoring in DevOps/SRE • AppDynamics Architecture • AppDynamics – On Prem Vs SaaS • Architecture walkthrough - PHP Application • AppDynamics UI Walkthrough • Hands On - Java Agent and Machine Agent installation • Live Troubleshooting Session • Q/A

appdynamicsmonitoringapm
Appium overview
Appium overviewAppium overview
Appium overview

The document discusses Appium, an open source test automation framework for testing native, hybrid and mobile web apps. It provides an overview of Appium and how it can be used to test both mobile web and mobile apps on Android and iOS. The document also summarizes how to set up the environment for Android automation using Appium, including writing sample scripts and discussing framework best practices. Advanced locator strategies for Appium like MobileBy, ByAccessibilityId and ByAndroidUIAutomator are also covered.

automationappiummobile-automation
React Interview Questions and Answers | React Tutorial | React Redux Online T...
React Interview Questions and Answers | React Tutorial | React Redux Online T...React Interview Questions and Answers | React Tutorial | React Redux Online T...
React Interview Questions and Answers | React Tutorial | React Redux Online T...

( ReactJS Training - https://www.edureka.co/reactjs-redux-... ) This Edureka video on React Interview Questions and Answers will help you to prepare yourself for React Interviews. Learn about the most important React interview questions and answers and know what will set you apart in the interview process. This video helps you to learn following topics: 1. General React 2. React Components 3. React Redux 4. React Router

react jsreact tutorialwhat is react
@jlipps · cloudgrey.io
npm install -g appium
© 2015, Perfecto Mobile Ltd. All Rights Reserved.
Poll Question
What feature would you most want to see Implemented in
Appium?
• Support for network virtualization (3G, 4G, packet loss %, etc.)
• Support for visual testing (barcode scanning, check deposit use
cases)
• Support for gesture like Face ID, Finger Print, and more
• Better Cross platform automation for all platforms including
smartwatch, iOS, Android
• Support for audio and video testing (chatbots, MOS, 

etc.)
• Other
4/21/2018 8
Today’s tips: recent selections from appiumpro.com
@jlipps · cloudgrey.io
Finding elements with greater speed and stability
Today’s tips: recent selections from appiumpro.com
@jlipps · cloudgrey.io

Recommended for you

Appium: Automation for Mobile Apps
Appium: Automation for Mobile AppsAppium: Automation for Mobile Apps
Appium: Automation for Mobile Apps

The document discusses automation testing for mobile apps using Appium. Appium allows for cross-platform mobile app testing by using the same tests across iOS and Android platforms. It functions by proxying commands to the devices to run tests using technologies like UIAutomation for iOS and UiAutomator for Android. While useful for local testing, Appium has limitations for scaling tests in continuous integration environments, where services like Sauce Labs are better suited.

appiumbrowser testingsauce labs
Introduction to react native
Introduction to react nativeIntroduction to react native
Introduction to react native

This document introduces React Native, a framework for building mobile apps using React. It allows building Android and iOS apps with shared code. React Native uses a virtual DOM for fast rendering. Components manage state and receive data through props. Lifecycle methods handle mounting, updating, and unmounting. Setting up requires Node.js, React Native CLI, and Android Studio or Xcode. Hot reloading, Flexbox layouts, and libraries like Lottie and React Navigation make development easier.

mobile application developmentandroidreact-native
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium

This presentation will help anyone interested to have a quick start guide on Appium for automation testing on Android and iOS mobile apps.

appiumtestingmobileapps
Finding elements with greater speed and stability
Using deep links to speed up tests and reduce flakiness
Today’s tips: recent selections from appiumpro.com
@jlipps · cloudgrey.io
Finding elements with greater speed and stability
Using deep links to speed up tests and reduce flakiness
Testing app upgrade scenarios
Today’s tips: recent selections from appiumpro.com
@jlipps · cloudgrey.io
Finding elements with greater speed and stability
Using deep links to speed up tests and reduce flakiness
Testing app upgrade scenarios
Cross-platform testing best practices
Today’s tips: recent selections from appiumpro.com
@jlipps · cloudgrey.io
Element Locators

Recommended for you

Cloud Monitoring with Prometheus
Cloud Monitoring with PrometheusCloud Monitoring with Prometheus
Cloud Monitoring with Prometheus

Cloud Native Night August 2016, Munich: Talk by Julius Volz (@juliusvolz, Co-founder at Prometheus). Join our Meetup: www.meetup.com/cloud-native-muc Abstract: This talk is on monitoring dynamic cloud environments with Prometheus.

cloud computingcloud native architecturecloud native
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the Containers

Containers allow for applications to become more portable, organized more efficiently, and configured to make better use of system resources. This presentation will explain Docker's container technology, DevOps approach, partner ecosystem, popularity, performance, challenges, and roadmap. We'll review how containers are changing application and operating system designs.

docker containers linux ibm devops
“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares
“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares
“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares

The document discusses Acquity Group's process for building a mobile-optimized website for their clients. They determined a web application would be better than a native mobile app. Their process involved stakeholder interviews, focus groups, competitive analysis, and content analysis. They designed templates for common pages like menus, solutions, and case studies. The site was developed using Django, Oracle, HTML, CSS, and JavaScript and could be completed by their UI team in under 40 hours.

villareswebkitnick
@jlipps · cloudgrey.io
driver.findElement(By.className(“Button”));
@jlipps · cloudgrey.io
driver.findElement(By.className(“Button”));
locator strategy
@jlipps · cloudgrey.io
driver.findElement(By.className(“Button”));
locator strategy selector
Locator Strategy From Support in Appium
class name Selenium Yes
id Selenium Yes
name Selenium Yes
xpath Selenium Yes
accessibility id Appium Yes
-ios predicate string Appium Yes
-ios class chain Appium Yes
-android uiautomator Appium Yes
-ios uiautomation Appium Deprecated
css selector Selenium No
link text Selenium No
partial link text Selenium No
tag name Selenium No
@jlipps · cloudgrey.io

Recommended for you

Building Mobile Optimized Websites
Building Mobile Optimized WebsitesBuilding Mobile Optimized Websites
Building Mobile Optimized Websites

The document discusses Acquity Group's process for building a mobile-optimized website for their clients. They determined a web application would be better than a native mobile app. Their process involved stakeholder interviews, focus groups, competitive analysis, and content analysis. They designed templates for common pages like solutions, case studies and newsfeeds. The site was developed using Django, Oracle DB, XHTML, CSS and jQuery in under 40 hours.

mobileiphonewebkit
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...

The document summarizes the shifting landscape of mobile test automation over the past 5 years. It discusses the major open source and proprietary frameworks for iOS and Android testing, including Appium, Espresso, XCUITest, EarlGrey, Detox, and others. It provides an overview of each framework's capabilities and adoption. It also envisions where mobile automation may be headed in the next 5 years, such as supporting new form factors, platforms, and types of testing beyond functional testing.

appiumtest automationapp testing
Certified Professional Appium for Mobile Testing
Certified Professional Appium for Mobile TestingCertified Professional Appium for Mobile Testing
Certified Professional Appium for Mobile Testing

Details about CP-AMT (Certified Professional - Appium for Mobile Testing) certification program from Agile testing alliance.

appium for mobile tesgingagile testing allianceagile testing tool for mobile
Why use XPath?
@jlipps · cloudgrey.io
It allows for the formulation of complex queries (for example, using the @contains
function)
Why use XPath?
@jlipps · cloudgrey.io
It allows for the formulation of complex queries (for example, using the @contains
function)
It can identify any element in the UI hierarchy available to Appium
Why use XPath?
@jlipps · cloudgrey.io
It allows for the formulation of complex queries (for example, using the @contains
function)
It can identify any element in the UI hierarchy available to Appium
…
Why use XPath?
@jlipps · cloudgrey.io

Recommended for you

Mastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita PuramMastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita Puram

The document discusses mastering the art of mobile testing. It outlines three key mindset shifts for mobile testing: (1) anyone can create automated mobile tests, (2) mobile web technologies will overtake native apps, and (3) mobile testing must target both the UI and API layers. It also discusses features that a robust test automation framework should include, such as object recognition, different test creation techniques, cross-platform execution, and reporting. Finally, it lists some popular mobile testing tool vendors that cover functional automation, performance testing, and device management.

qaoth2019
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestColorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latest

In agile software development world, we are dealing with many test tasks such as user story testing, exploratory testing, check-list based testing, regression testing, performance testing, security testing in each sprint. Besides these testing activities, one of the test types which is considerably getting crucial is visual regression testing. Visual regression testing focuses on to check visual contents and animations, page layout, and responsive design of a website/app. Because of the limits of human vision, human-based visual regression testing is generally error-prone and cumbersome. Hence, automation is inevitable. It enables us to run the tests much more precisely in a short time period. Also, it saves us a significant amount of time to deal with other manual test activities in each sprint. In this talk, we will walk through well-known open-source and commercial solutions for visual test automation. We will learn which technologies they use, what type of visual tests they are suitable for, and their major differences between each other. Besides this overview, we will also make a real-life visual test automation demo by using Selenium, ImageMagick, and AShot.

percyseleniumtest automation
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrum

http://www.techforum.prathidhwani.org/appium/index.html Appium Basics Appium Desktop Android Locator Types and Inspector Tools Appium Capabilities Mobile Interactions - Swipe and Scroll Page Object Model and Dependency Injection Real Device v/s Emulators / Simulators iOS Automation Cloud Automation Appium Tips and Tricks Please follow the steps in the below link to configure your system for the workshop https://medium.com/@syamsasi/setting-up-appium-on-windows-and-ubuntu-ea9a73ab989

appiumworkshopselenium
It allows for the formulation of complex queries (for example, using the @contains
function)
It can identify any element in the UI hierarchy available to Appium
…
that’s about it
Why use XPath?
@jlipps · cloudgrey.io
Why not to use XPath
@jlipps · cloudgrey.io
Why not to use XPath
@jlipps · cloudgrey.io
Path-based selectors are brittle
Why not to use XPath
@jlipps · cloudgrey.io
Path-based selectors are brittle
It is often expensive to generate an XML representation of the UI

Recommended for you

Uber's new mobile architecture
Uber's new mobile architectureUber's new mobile architecture
Uber's new mobile architecture

Uber developed a new mobile architecture to address issues with their previous architecture and support continued growth. The new architecture uses scoped RIB components with single responsibilities, plugins to enable experimentation and isolation of new features, and a reactive data flow model. These changes resulted in improved stability, velocity of development, and developer happiness.

architectureframeworkmobile
Platform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch EventPlatform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch Event

Slides used for different Meetup.com events organised around the world about the new Appcelerator Platform 4.0.

launchappsappcelerator
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileBuilding Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile

The document discusses how the speaker built a distributed agile team to develop a successful mobile app for Morningstar for iPad. Key points include: - The project started in 2011 and involved developing concurrently for iOS and a Java backend. - The team implemented agile practices like continuous integration, automated testing, and tracking work in JIRA to facilitate distributed development. - The app launched in 2013 and became a top 10 finance app, demonstrating the effectiveness of their distributed agile approach to mobile development.

mobile app development agile
Why not to use XPath
@jlipps · cloudgrey.io
Path-based selectors are brittle
It is often expensive to generate an XML representation of the UI
It is often expensive to map XML elements found by XPath to native element objects
Why not to use XPath
@jlipps · cloudgrey.io
Path-based selectors are brittle
It is often expensive to generate an XML representation of the UI
It is often expensive to map XML elements found by XPath to native element objects
XPath selectors are not cross-platform
Preferred locator strategies
@jlipps · cloudgrey.io
Preferred locator strategies
@jlipps · cloudgrey.io
MobileBy.AccessibilityId
Cross-platform locator strategy, will find
elements by Accessibility Id (or Name) on
iOS, and Content Description on Android

Recommended for you

API Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIsAPI Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIs

Discover how to build APIs using the Apigee API Services toolkit. Deep dive into Apigee's API Serives solution, API design and management technology including OAuth and security, persistence & caching, Node.js and more.

cachingnode.jssecurity
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talk

This presentation is Imam Raza's tech talk on "Android" in Google Developer Group DevFest 2012 Event. In the event Mr. Imam Raza condemned recent blasphemy act of Google of not removing blasphemy video by saying "Shame on You". He also appreciated the efforts of minorities who stand with Muslim community on this issue. He also read following Stanza from Allama Iqbal poem "Jawaab-e-Shikwa", in which Allah is answering to complains of Muslims to Him. In below stanza Allah is praising His prophet Mohammad (peace be upon him) and telling that this universe is made due His beloved prophet Mohammad (peace be upon him). In last part of stanza Allah tells Muslims that if they want to success in this world and there after then they have to make themselves loyal to Mohammad (peace be upon him). ہو نہ یہ پھول تو بلبل کا ترنم بھی نہ ہو چمن دہر میں کلیوں کا تبسم بھی نہ ہو یہ نہ ساقی ہو تو پھر مے بھی نہ ہو،خم بھی نہ ہو بزم توحید بھی دنیا میں نہ ہو، تم بھی نہ ہو خیمہ افلاک کا استادة اسی نام سے ہے نبض ہستی تپش امادة اسی نام سے ہے دشت میں، دامن کہسارمیں،میدان میں ہے بحر میں، موج کی ا غوش میں،طوفان میں ہے چین کے شہر، مراقش کے بیابان میں ہے اور پوشیدة مسلمان کے ایمان میں ہے چشم اقوام یہ نظارة ابد تک دیکھے رفعت شان رفعنالک ذکرک دیکھے کی محمد سے وفا تو نے تو ہم تیرے ہیں یہ جہاں چیز ہے کیا، لوح و قلم تیرے ہیں

karachiandroidgoogle
Pyramid tutorial
Pyramid tutorialPyramid tutorial
Pyramid tutorial

The document introduces the Pyramid web framework tutorial. It will cover installing Pyramid, writing a simple Twitter clone application in stages, and answering questions. The teacher will be Carlos de la Guardia, a Pyramid contributor. Attendees should be familiar with web development and Python.

web developmentpythonpyramid
Preferred locator strategies
@jlipps · cloudgrey.io
MobileBy.AccessibilityId
Cross-platform locator strategy, will find
elements by Accessibility Id (or Name) on
iOS, and Content Description on Android
By.id
Cross-platform locator strategy, will find
elements by Id (and a set of other unique
identifiers) on iOS, and android:id on
Android
“Advanced” locator strategies
@jlipps · cloudgrey.io
“Advanced” locator strategies
@jlipps · cloudgrey.io
MobileBy.iOSNsPredicateString
iOS-only locator strategy that allows complex
element lookups based on attributes
“Advanced” locator strategies
@jlipps · cloudgrey.io
MobileBy.iOSNsPredicateString
iOS-only locator strategy that allows complex
element lookups based on attributes
MobileBy.iOSClassChain
iOS-only locator strategy that allows complex
element lookups based on attributes and
hierarchy

Recommended for you

Mastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with AppiumMastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with Appium

Appium is the leading open source and de facto framework for cross-platform iOS and Android mobile functional test automation. That’s nothing new. With constant changes in the mobile space, and together with the ongoing DevOps transformation, teams are challenged with the objective of enhancing test automation coverage, stability, and delivering valuable feedback to the mobile app developers as quickly as possible. Additionally, quite often app developers and testers naïvely approach testing by following test steps, rather than testing from the end-user perspective. Lastly, the testing ecosystem is divided into various practitioners with different skillsets following different methodologies. In this webinar led by Perfecto’s CTO Uzi Eilon, and Chief Evangelist and Author Eran Kinsbruner to uncover the following: -Get a baseline on where Appium framework stands as we begin 2019. -Realize the importance of advanced Appium testing approach from an end-user flow perspective. -Learn about the toolset you need to make your Appium success complete. -Learn how to match the skillset and methodology while using the Appium framework. -Behavior-driven development (BDD) based testing with Appium and Perfecto’s Quantum framework. -Testing at scale in the cloud via Appium Studio, with the Perfecto cloud connecting to the community. -See how AI-driven reporting in Perfecto’s DigitalZoom can reduce the time to analyze, resolve issues, and eliminate noise in your pipeline.

appiumtest automationcontinuous quality
Appium testing api
Appium testing apiAppium testing api
Appium testing api

Appium Philosophy and Design Appium Philosophy Appium Design Appium Client-Server Architecture Appium Session Appium Desired Capabilities Appium Server - Appium Client - Appium Desktop Advantages of the CSA Setup Android Project

appium testing apiappiumapi testing
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...

The document discusses AI tools for software testing such as ChatGPT, Github Copilot, and Applitools Visual AI. It provides an overview of each tool and how they can help with testing tasks like test automation, debugging, and handling dynamic content. The document also covers potential challenges with AI like data privacy issues and tools having superficial knowledge. It emphasizes that AI should be used as an assistance to humans rather than replacing them and that finding the right balance and application of tools is important.

chatgptai automationai testing
“Advanced” locator strategies
@jlipps · cloudgrey.io
MobileBy.iOSNsPredicateString
iOS-only locator strategy that allows complex
element lookups based on attributes
MobileBy.iOSClassChain
iOS-only locator strategy that allows complex
element lookups based on attributes and
hierarchy
MobileBy.AndroidUIAutomator
Android-only locator strategy that allows use
the UiSelector API to chain element
finding restrictions
iOS Predicate String example
@jlipps · cloudgrey.io
MobileBy.iOSNsPredicateString(
"type == 'XCUIElementTypeButton' AND value BEGINSWITH[c] 'foo' AND visible == 1"
);
iOS Class Chain example
@jlipps · cloudgrey.io
MobileBy.iOSClassChain(
"**/XCUIElementTypeCell[`name BEGINSWITH “C"`]/XCUIElementTypeButton[10]"
);
Android UiAutomator example
@jlipps · cloudgrey.io
MobileBy.AndroidUIAutomator(
'new UiSelector().className("ScrollView").getChildByText(new
UiSelector().className("android.widget.TextView"), "Tabs")'
);

Recommended for you

AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...

As release velocity increases, teams are finding innovative ways to detect and resolve performance issues earlier in the development cycle. This session will explore how to integrate performance testing into a development lifecycle and why the practice is gaining popularity. Learn how to create a balanced test strategy that matches test type, coverage, environment, and defect target. Scale to deliver high-performing applications. Through continuous integration platforms, performance testing tools, and AppDynamics, see how automated performance testing can reduce time-to-market while increasing overall quality. Key takeaways: o How to get started with performance test automation o How to detect and resolve performance issues earlier in the development lifecycle with AppDynamics o How to maximize the quality and value of your performance test strategy Brad Stoner Senior Sales Engineer, AppDynamics Resources: KonaKart - http://www.konakart.com/ Adminer - https://www.adminer.org/ Jenkins - https://jenkins.io/ NeoLoad - http://www.neotys.com/neoload/overview AppDynamics - https://www.appdynamics.com/free-trial/ GitHub - https://github.com/ Docker Hub - https://hub.docker.com/

continuous integrationjenkinsappdynamics
JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) upload

Russ Fustino is the Head of Developer Evangelism at ComponentOne. He discusses how ASP.NET developers can use JavaScript and HTML5 to build mobile-ready websites. He explains key JavaScript technologies like jQuery, jQuery UI, and Wijmo that simplify Ajax and widget development. He also demonstrates how to use Knockout.js to add MVVM support and data binding to Wijmo widgets.

jqueryuicomponentonerusscam
AngularJS App In Two Weeks
AngularJS App In Two WeeksAngularJS App In Two Weeks
AngularJS App In Two Weeks

AngularJS application on Visualforce for the Force.com platform and the Salesforce1 mobile application. Dreamforce 2014. Talk is given for experienced Salesforce developers who want to learn common features of AngularJS to build custom applications for the Salesforce1 mobile app.

bootstrapangularjsvisualforce
Deep Links
@jlipps · cloudgrey.io
@jlipps · cloudgrey.io
~30 seconds
@jlipps · cloudgrey.io
30 seconds x 50 tests = 25 minutes

Recommended for you

移动端Web app开发
移动端Web app开发移动端Web app开发
移动端Web app开发

This is a presentation to review and summarize the mobile websites that I have involved in. It includes many practical skills and my own experiences in the development of mobile websites.

web appmobile
Is BDD Worth It? Considerations for Advanced Test Automation
Is BDD Worth It? Considerations for Advanced Test AutomationIs BDD Worth It? Considerations for Advanced Test Automation
Is BDD Worth It? Considerations for Advanced Test Automation

Watch this webinar to see a live demo of the Quantum BDD test automation framework that supports testing both mobile and cross-browser web apps.

web app testingmobile app testingdevops
Yoda debunks the top 5 challenges of continuous testing in the cloud
Yoda debunks the top 5 challenges of continuous testing in the cloudYoda debunks the top 5 challenges of continuous testing in the cloud
Yoda debunks the top 5 challenges of continuous testing in the cloud

The digital galaxy has never been more complex for testing teams. Understand the real value of test automation in the cloud — as explained by Yoda.

continuous testingcloudtest automation
Strategies to set up app state instantly
@jlipps · cloudgrey.io
Android Start the test with custom intents
to navigate directly to the right place
Use intentAction and
optionalIntentArguments parameters
to driver.startActivity
Strategies to set up app state instantly
@jlipps · cloudgrey.io
Android Start the test with custom intents
to navigate directly to the right place
Use intentAction and
optionalIntentArguments parameters
to driver.startActivity
iOS Start the app with custom arguments
using Appium capabilities
Use the processArguments capability
when starting a session
Strategies to set up app state instantly
@jlipps · cloudgrey.io
Android Start the test with custom intents
to navigate directly to the right place
Use intentAction and
optionalIntentArguments parameters
to driver.startActivity
iOS Start the app with custom arguments
using Appium capabilities
Use the processArguments capability
when starting a session
Cross-platform Use deep linking
Implement a custom url scheme in your app,
then simply use driver.get
Strategies to set up app state instantly
@jlipps · cloudgrey.io

Recommended for you

5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing

The future of mobile apps is looking bright. New features and functionalities are creating better user experiences than ever before. These emerging trends and technologies are changing mobile apps as we know them, and with it, how we develop and test them. Advanced mobile technologies, such as APKs, PWAs, App Clips, foldable phones, and emerging frameworks like Flutter are now the new normal for mobile. But what does that mean for mobile app development and testing? In this webinar, led by Perfecto Chief Evangelist, Product Manager, & Author, Eran Kinsbruner, along with Karthik K.K., test automation expert, instructor, and founder of ExecuteAutomation, you will learn more about the changing mobile landscape and what it means for you. Watch this webinar to: - Understand the trends changing the mobile app landscape. - Learn the implications of these emerging trends on development and testing. - Watch a demo of an enterprise test automation cloud environment. Learn more at www.perfecto.io.

mobile application developmentmobile app testingmobile app testing best practices
How to Scale Digital App Testing With Jenkins & Automation You Can Trust
How to Scale Digital App Testing With Jenkins & Automation You Can TrustHow to Scale Digital App Testing With Jenkins & Automation You Can Trust
How to Scale Digital App Testing With Jenkins & Automation You Can Trust

DevOps requires structure, visibility, and orchestration to make everything flow smoothly and continuously. When executed correctly, DevOps workflows enable each squad the freedom to leverage their own tools, frameworks, and other technology stacks. This is a huge advantage. But it must be well integrated into the entire CI/CD pipeline for faster releases, integration validations, and a single pane of visibility to all stakeholders. Here’s the challenge: throughout the different stages of DevOps, software development processes must rely on a stable test environment. Teams need stable test automation that can run and cover their ever-changing web and mobile apps continuously within the CI/CD pipeline. Without it, organizations risk negating the value of DevOps. In this session, Eran Kinsbruner, Chief Evangelist, Author, and Product Manager and Johnny Lam, Senior Solutions Engineer, will explain how to build a continuous test automation foundation that can scale, and even more importantly, can be trusted. The audience will leave this session with: - The fundamentals of continuous testing and how CT fits within DevOps. - The ability to match technologies that enable effective test automation across web and mobile platforms. - The key advantages of an enterprise-grade cloud for a winning digital DevOps journey. - A live demo of a cloud-based solution that matches the above principles.

jenkinstest automationautomated testing
Mastering Cross-Browser Test Automation With Cypress and Selenium
Mastering Cross-Browser Test Automation With Cypress and SeleniumMastering Cross-Browser Test Automation With Cypress and Selenium
Mastering Cross-Browser Test Automation With Cypress and Selenium

As digital reality becomes a win-lose situation for the majority of enterprises today, having a solid test automation strategy for your web applications is key for business success. In the current landscape, there are two strong technologies, Cypress and Selenium, that when utilized properly, can enable a sustainable continuous testing workflow. In this session, Perfecto by Perforce Chief Evangelist, author, and Product Manager, Eran Kinsbruner will provide a deep overview of both Selenium and Cypress and address the key benefits of using both as part of your testing strategy. In this session, you will learn the following: - The core benefits of Cypress and Selenium. - The main differences between the two framework, and why teams should leverage both. - How teams can boost their velocity and productivity by running Selenium and Cypress in the Perfecto cloud.

seleniumcypresstest automation
@jlipps · cloudgrey.io
yourapp://test/login/:username/:password
@jlipps · cloudgrey.io
@jlipps · cloudgrey.io
~5 seconds
@jlipps · cloudgrey.io
5 seconds x 50 tests = ~4 minutes

Recommended for you

Cloud Testing Has Never Been Easier or More Accessible
Cloud Testing Has Never Been Easier or More AccessibleCloud Testing Has Never Been Easier or More Accessible
Cloud Testing Has Never Been Easier or More Accessible

Cloud testing has never been easier with Perfecto. We’ve rolled out new features and new public cloud packages that make testing in the cloud more accessible than ever before. Come and see how others are leveraging the platform to scale automation, unite global and remote teams, and release faster. If you’re no longer in the office due to COVID-19, our platform is tailored to help you get through it successfully. Join this webinar, led by Perfecto’s Director Global Engineering, Nico Kruger, to see the top five use cases for Perfecto’s public cloud, and learn how to successfully automate testing, no matter where you’re currently at. Attend this webinar to: - Learn how testing clouds can extend test coverage, accelerate testing, and unite global teams. - Learn how other teams are addressing app testing challenges to help accelerate their release cycles. - Get a guided tour of the Perfecto public cloud and watch a live demo.

cloudtestingtest automation
Cognitive Engineering - Shifting Right with Gated.AI Testing - DevOps Next
Cognitive Engineering - Shifting Right with Gated.AI Testing - DevOps NextCognitive Engineering - Shifting Right with Gated.AI Testing - DevOps Next
Cognitive Engineering - Shifting Right with Gated.AI Testing - DevOps Next

The approaches and techniques that worked yesterday may not be optimum for the next generation of enterprise AI platforms. This session will cover how to prove Artificial Intelligence (AI) platforms by leveraging Cognitive, Reliability, and Chaos Engineering heuristics.

artificial intelligencedevops
The Rise and Benefits of Robotic Process Automation (RPA) - DevOps Next
The Rise and Benefits of Robotic Process Automation (RPA) - DevOps NextThe Rise and Benefits of Robotic Process Automation (RPA) - DevOps Next
The Rise and Benefits of Robotic Process Automation (RPA) - DevOps Next

Many companies are implementing RPA to automate high-frequency transactional processes that are better handled by bots. There is great opportunity in leveraging RPA to embed bots into handling regulatory requests, and much to be considered from a measurement perspective before adopting RPA on an enterprise scale, which are covered in this session.

rpaautomation
Testing App Upgrades
App upgrades on Android
@jlipps · cloudgrey.io
Get paths to two versions of your app
App upgrades on Android
@jlipps · cloudgrey.io
Get paths to two versions of your app
Start an Appium session using the older version of the app (via the app capability)
App upgrades on Android
@jlipps · cloudgrey.io

Recommended for you

The New Categories of Software Defects in the Era of AI and ML - DevOps Next
The New Categories of Software Defects in the Era of AI and ML - DevOps NextThe New Categories of Software Defects in the Era of AI and ML - DevOps Next
The New Categories of Software Defects in the Era of AI and ML - DevOps Next

When AI and ML are tested alongside traditional features of an app, the defects are of a different nature. AI/ML creates a new set of defect classification that will invade the DevOps space, and this session addresses these new and modern types of defects, including data-related, stochastic, and interpretability defects.

software testingartificial intelligencemachine learning
Moving to Modern DevOps with Fuzzing and ML - DevOps Next
Moving to Modern DevOps with Fuzzing and ML - DevOps NextMoving to Modern DevOps with Fuzzing and ML - DevOps Next
Moving to Modern DevOps with Fuzzing and ML - DevOps Next

Software fuzzing has long been a trusted method for finding vulnerabilities that are difficult to discover using traditional methods. The application of AI and ML to this field has already begun to bear very promising results. Learn the various methods of fuzzing through examples, documentation, and other related data that can guide practitioners on where to start and which tools are ready to be applied today.

machine learningdevops
Leveraging AI and ML in Test Management Systems - DevOps Next
Leveraging AI and ML in Test Management Systems - DevOps NextLeveraging AI and ML in Test Management Systems - DevOps Next
Leveraging AI and ML in Test Management Systems - DevOps Next

AI and ML can be utilized to improve test management and quality, and the impact of changes from design into production. Learn about the various stages of software development life cycle from planning and design, through coding and testing, and shows how AI and ML can benefit these stages from within a test management system.

artificial intelligencemachine learningdevops
Get paths to two versions of your app
Start an Appium session using the older version of the app (via the app capability)
Install the new app using driver.installApp
App upgrades on Android
@jlipps · cloudgrey.io
Get paths to two versions of your app
Start an Appium session using the older version of the app (via the app capability)
Install the new app using driver.installApp
Trigger the new app to relaunch by using driver.startActivity
App upgrades on Android
@jlipps · cloudgrey.io
@jlipps · cloudgrey.io
App upgrades on iOS
@jlipps · cloudgrey.io

Recommended for you

How Does AIOps Benefit DevOps Pipeline and Software Quality? - DevOps Next
How Does AIOps Benefit DevOps Pipeline and Software Quality? - DevOps NextHow Does AIOps Benefit DevOps Pipeline and Software Quality? - DevOps Next
How Does AIOps Benefit DevOps Pipeline and Software Quality? - DevOps Next

The market has made great advancements in addressing inefficiencies in automated production and operation environment management. When armed with advanced abilities that make an AIOps portfolio valuable, IT managers can impact the entire software delivery cycle. Attend this session for a current and futuristic overview of AIOPs, its benefits, and where it’s heading in the future.

artificial intelligencedevops
Classification of Advanced AI and ML Testing Tools - DevOps Next
Classification of Advanced AI and ML Testing Tools - DevOps NextClassification of Advanced AI and ML Testing Tools - DevOps Next
Classification of Advanced AI and ML Testing Tools - DevOps Next

AI and ML solutions, whether commercial or open source, typically address unique use case or challenges. Learn about the categorization of testing tools with advanced AI/ML and get examples and existing tools for each of the use cases.

artificial intelligencedevopsmachine learning
Automated Code Reviews with AI and ML - DevOps Next
Automated Code Reviews with AI and ML - DevOps NextAutomated Code Reviews with AI and ML - DevOps Next
Automated Code Reviews with AI and ML - DevOps Next

One of the biggest problems with code reviews is that they often derail developer productivity. Learn about the essentials of code reviews, where they are today, and where they can be using AI/ML technologies. With machine learning technology, code quality can be improved, and developers can focus on invention, rather than remediation.

artificial intelligencemachine learningdevops
Get paths to two versions of your app
App upgrades on iOS
@jlipps · cloudgrey.io
Get paths to two versions of your app
Start an Appium session using the older version of the app (via the app capability)
App upgrades on iOS
@jlipps · cloudgrey.io
Get paths to two versions of your app
Start an Appium session using the older version of the app (via the app capability)
Stop the current app using mobile: terminateApp
App upgrades on iOS
@jlipps · cloudgrey.io
Get paths to two versions of your app
Start an Appium session using the older version of the app (via the app capability)
Stop the current app using mobile: terminateApp
Install the new app using mobile: installApp
App upgrades on iOS
@jlipps · cloudgrey.io

Recommended for you

Advancing the State of The Art in AI and Testing - DevOps Next
Advancing the State of The Art in AI and Testing - DevOps NextAdvancing the State of The Art in AI and Testing - DevOps Next
Advancing the State of The Art in AI and Testing - DevOps Next

In this session, we’ll explore some of the latest advancements in AI for software testing. Our goal is to bring you to the bleeding edge of where AI and ML technologies are being applied to difficult software testing problems in the real world today. AI is no longer just doing functional testing, it’s testing user interface designs, video stream quality, gameplay, and more.

testingartificial intelligencedevops
How to Prepare Your Apps for iOS 14 - Test Strategy, Coverage, & Best Practices
How to Prepare Your Apps for iOS 14 - Test Strategy, Coverage, & Best PracticesHow to Prepare Your Apps for iOS 14 - Test Strategy, Coverage, & Best Practices
How to Prepare Your Apps for iOS 14 - Test Strategy, Coverage, & Best Practices

iOS 14 is a mature public beta. And yet it is already plagued with quality issues for both developers and testers. The new platform not only introduces major UI/UX changes, but also new capabilities and a completely new line of devices. With features like a redesigned, widget-filled home screen, app clips, a new app library, Mac Catalyst, privacy enhancements, and more, teams need to prepare their apps for iOS 14 by testing on the beta now. From early reviews of the iOS 14, Perfecto and Applitools were able to spot a plethora of severe quality issues, including functional, UI/visual, as well as memory allocation issues. Join Perfecto’s Chief Evangelist and Product Manager, Eran Kinsbruner, together with Applitools Quality Evangelist and Solution Architect, Anand Bagmar, to get a complete overview of what iOS 14 introduces to developers and testers, and how to prevent quality pitfalls ahead of the September release. Key topics covered in the webinar will include: - An overview of iOS 14 features. - Functional and visual testing strategy for new OS version releases. - Test coverage recommendations for iOS and iPadOS across new and legacy versions. - How to combine iOS simulators and real devices in your testing strategy. - How functional and visual testing complement each other. - A live demo of real enterprise app issues with the iOS 14 beta.

iosmobile testingmobile test automation
How to Create a Risk Based Testing Strategy With Simulators, Emulators, and R...
How to Create a Risk Based Testing Strategy With Simulators, Emulators, and R...How to Create a Risk Based Testing Strategy With Simulators, Emulators, and R...
How to Create a Risk Based Testing Strategy With Simulators, Emulators, and R...

The mobile app landscape is incredibly fragmented across iOS and Android markets. And all OS/device combinations need to be tested thoroughly for the best end user experiences. So, where do you start? Simulators and emulators are fast, but there’s a tradeoff — they can’t catch as many bugs as real devices. Organizations need a risk-based approach to enjoy the power of both platforms. Using both real and virtual devices allows you to achieve the scale of testing and app quality you seek. Learn how to leverage the strengths of each and consider the level of risk you are willing to take with escaped defects. Join this webinar, led by Perfecto’s Chief Evangelist Eran Kinsbruner and VP of Product, Tzvika Shahaf, to understand how to build a strong mobile testing strategy that mitigates risk of escaped defects by using the correct mix of real and virtual devices. Join this webinar to: - Understand the differences between testing on simulators, emulators, and real devices. - Learn platform considerations unique to testing on Android and iOS devices. - Get recommendations on what platforms to test on through each stage of the SDLC. Learn more at https://www.perfecto.io.

mobile app testingmobile app testing best practicesmobile application development
Get paths to two versions of your app
Start an Appium session using the older version of the app (via the app capability)
Stop the current app using mobile: terminateApp
Install the new app using mobile: installApp
Trigger the new app to relaunch by using mobile: launchApp
App upgrades on iOS
@jlipps · cloudgrey.io
@jlipps · cloudgrey.io
Cross-platform Tips
Tips for app development
@jlipps · cloudgrey.io

Recommended for you

Fast Data, Fast Delivery: How Smart Analysis Accelerates App Testing
Fast Data, Fast Delivery: How Smart Analysis Accelerates App TestingFast Data, Fast Delivery: How Smart Analysis Accelerates App Testing
Fast Data, Fast Delivery: How Smart Analysis Accelerates App Testing

Teams generate huge amounts of test reporting data daily. Unfortunately, most open source frameworks do not come with reporting, making the analysis mostly manual and tedious. That’s where a test reporting platform can help you. To find bugs faster, you need something that can filter out noise and false negatives. That way, you can focus on the real issues for a quick MTTR. An efficient test reporting platform helps you find and fix bugs quickly and release higher-quality apps faster. Join this webinar, led by Perfecto Chief Evangelist Eran Kinsbruner and VP of Product Management Tzvika Shahaf, to: - Understand how efficient analysis helps you test faster. - Learn what to look for in an effective reporting platform. - See a live demo of test failure analysis and debugging.

continuous testingapp testingtest automation
Best Practices for Shifting Left Performance and Accessibility Testing
Best Practices for Shifting Left Performance and Accessibility TestingBest Practices for Shifting Left Performance and Accessibility Testing
Best Practices for Shifting Left Performance and Accessibility Testing

Web and mobile test cycles typically leverage automation frameworks like Selenium and Appium that are mostly focused on functional testing with end-to-end scenarios. But what about nonfunctional testing — including performance, accessibility, security, and UX? Unfortunately, nonfunctional testing is either left to the end of the cycle or done only partially. Or, it’s outsourced externally, where it is performed manually due to a lack of time and automation abilities. When nonfunctional testing is overlooked or left until the end of cycle, performance, accessibility, and UX defects can cause brand damage and are more expensive to fix after the fact. Specifically, accessibility defects can also result in expensive complaints or lawsuits. Learn how you can avoid damaging defects. Join our panel webinar led by Perfecto’s VP of Products Tzvika Shahaf and Chief Evangelist and author Eran Kinsbruner, together with Dylan Barrel, CTO at Deque, and Henrik Rexed, Performance Testing Advocate from Neotys, to learn how you can expand your coverage within the build cycle by shifting automated nonfunctional testing left. During the webinar, you will learn: - The key benefits of shifting performance and accessibility testing left. - Best practices and recommendations on how to succeed in shifting such tests into the build process. - How to get started with mobile and web performance and accessibility testing.

continuous testingaccessibilityperformance
Deliver Flawless Mobile Apps Faster with CI/CD & CT
Deliver Flawless Mobile Apps Faster with CI/CD & CTDeliver Flawless Mobile Apps Faster with CI/CD & CT
Deliver Flawless Mobile Apps Faster with CI/CD & CT

CI/CD pipelines help DevOps teams automate and drive scalability of mobile app releases. However, teams still experience friction from all kinds of testing. To speed the flow, organizations are now turning to automated continuous testing (CT) in the pipeline by engaging the test automation and security teams. The latest advancements in functional and performance testing enable organizations to run faster, friction-free pipelines with CI/CD/CT. Join Perfecto by Perforce Chief Evangelist and author, Eran Kinsbruner, and NowSecure Chief Mobility Officer, Brian Reed, in this webinar. Understand how successful organizations optimize their CI/CD pipelines with automated CT tools for functional and security testing in their build process. Watch this webinar to learn the following: - Fundamentals of continuous testing (CT) strategy for CI/CD/CT pipelines. - How to fit automated security and functional testing together inside a DevOps process. - Common pitfalls in mobile app security and how to overcome them.

continuous testingmobile app testingmobile app testing best practices
Add labels to any element that might be used in testing (i.e., pretty much every
element)
Tips for app development
@jlipps · cloudgrey.io
Add labels to any element that might be used in testing (i.e., pretty much every
element)
Add labels as “Accessibility ID” on iOS and “Content Description” on Android—and make
them the same!
Tips for app development
@jlipps · cloudgrey.io
Add labels to any element that might be used in testing (i.e., pretty much every
element)
Add labels as “Accessibility ID” on iOS and “Content Description” on Android—and make
them the same!
As much as possible within the product design requirements, keep user flows the same
across apps
Tips for app development
@jlipps · cloudgrey.io
Add labels to any element that might be used in testing (i.e., pretty much every
element)
Add labels as “Accessibility ID” on iOS and “Content Description” on Android—and make
them the same!
As much as possible within the product design requirements, keep user flows the same
across apps
Build a test version of your app that has all kinds of state set-up goodies
Tips for app development
@jlipps · cloudgrey.io

Recommended for you

Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure

Recent advancements in the NIST-JARVIS infrastructure: JARVIS-Overview, JARVIS-DFT, AtomGPT, ALIGNN, JARVIS-Leaderboard

jarvisjarvis-dftalignn
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...

Slide of the tutorial entitled "Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Emerging Trends" held at UMAP'24: 32nd ACM Conference on User Modeling, Adaptation and Personalization (July 1, 2024 | Cagliari, Italy)

user modelinguser profilinguser model
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx

MuleSoft Meetup on APM and IDP

mulesoftai
Add labels to any element that might be used in testing (i.e., pretty much every
element)
Add labels as “Accessibility ID” on iOS and “Content Description” on Android—and make
them the same!
As much as possible within the product design requirements, keep user flows the same
across apps
Build a test version of your app that has all kinds of state set-up goodies
Make debug versions of builds
Tips for app development
@jlipps · cloudgrey.io
Add labels to any element that might be used in testing (i.e., pretty much every
element)
Add labels as “Accessibility ID” on iOS and “Content Description” on Android—and make
them the same!
As much as possible within the product design requirements, keep user flows the same
across apps
Build a test version of your app that has all kinds of state set-up goodies
Make debug versions of builds
iOS Use Wildcard App IDs in Provisioning Profiles (so WebDriverAgent can be built
using a custom Bundle ID that works with the profile)
Tips for app development
@jlipps · cloudgrey.io
Tips for the testsuite
@jlipps · cloudgrey.io
Use a Page Object Model strategy (or similar), to keep differences between platforms
encapsulated
Tips for the testsuite
@jlipps · cloudgrey.io

Recommended for you

What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024

This is a powerpoint that features Microsoft Teams Devices and everything that is new including updates to its software and devices for May 2024

microsoft teamsmicrosoft
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers

The integration of programming into civil engineering is transforming the industry. We can design complex infrastructure projects and analyse large datasets. Imagine revolutionizing the way we build our cities and infrastructure, all by the power of coding. Programming skills are no longer just a bonus—they’re a game changer in this era. Technology is revolutionizing civil engineering by integrating advanced tools and techniques. Programming allows for the automation of repetitive tasks, enhancing the accuracy of designs, simulations, and analyses. With the advent of artificial intelligence and machine learning, engineers can now predict structural behaviors under various conditions, optimize material usage, and improve project planning.

programmingcodingcivil engineering
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation

Java Servlet programs

Use a Page Object Model strategy (or similar), to keep differences between platforms
encapsulated
Test step code should be totally platform-agnostic. Only your runner and your object
model should know about platform
Tips for the testsuite
@jlipps · cloudgrey.io
Use a Page Object Model strategy (or similar), to keep differences between platforms
encapsulated
Test step code should be totally platform-agnostic. Only your runner and your object
model should know about platform
Avoid XPath in favor of cross-platform locator strategies
Tips for the testsuite
@jlipps · cloudgrey.io
Use a Page Object Model strategy (or similar), to keep differences between platforms
encapsulated
Test step code should be totally platform-agnostic. Only your runner and your object
model should know about platform
Avoid XPath in favor of cross-platform locator strategies
Dynamically update test name for reports to include platform name or other details, for
easier debugging
Tips for the testsuite
@jlipps · cloudgrey.io
@jlipps · cloudgrey.io
More tips like these sent by e-mail every week
Subscribe at appiumpro.com

Recommended for you

Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence

Our Linux Web Hosting plans offer unbeatable performance, security, and scalability, ensuring your website runs smoothly and efficiently. Visit- https://onliveserver.com/linux-web-hosting/

cheap linux hosting
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges

accommodate the strengths, weaknesses, threats and opportunities of autonomous vehicles

automotive self-driving car technology
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...

Have you noticed the OpenSSF Scorecard badges on the official Dart and Flutter repos? It's Google's way of showing that they care about security. Practices such as pinning dependencies, branch protection, required reviews, continuous integration tests etc. are measured to provide a score and accompanying badge. You can do the same for your projects, and this presentation will show you how, with an emphasis on the unique challenges that come up when working with Dart and Flutter. The session will provide a walkthrough of the steps involved in securing a first repository, and then what it takes to repeat that process across an organization with multiple repos. It will also look at the ongoing maintenance involved once scorecards have been implemented, and how aspects of that maintenance can be better automated to minimize toil.

dartflutteropenssf
Thank You!
Your free weekly Appium newsletter:
appiumpro.com
Jonathan Lipps • Founding Principal • Cloud Grey


@AppiumDevs • @cloudgrey_io • @jlipps • appiumpro.com
Questions?
Your free weekly Appium newsletter:
appiumpro.com
Jonathan Lipps • Founding Principal • Cloud Grey


@AppiumDevs • @cloudgrey_io • @jlipps • appiumpro.com

More Related Content

What's hot

Helm.pptx
Helm.pptxHelm.pptx
Helm.pptx
SISTechnologies
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and Camel
Claus Ibsen
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
Applitools
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
Erez Cohen
 
Appium basics
Appium basicsAppium basics
Appium basics
Syam Sasi
 
Cypress first impressions
Cypress first impressionsCypress first impressions
Cypress first impressions
Hans Emmel
 
DevOps and Splunk
DevOps and SplunkDevOps and Splunk
DevOps and Splunk
Splunk
 
Terraform
TerraformTerraform
Terraform
Otto Jongerius
 
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Amazon Web Services
 
Introduction to Firebase from Google
Introduction to Firebase from GoogleIntroduction to Firebase from Google
Introduction to Firebase from Google
Manikantan Krishnamurthy
 
React native
React nativeReact native
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. Selenium
Lyudmil Latinov
 
Appdynamics Training Session
Appdynamics Training SessionAppdynamics Training Session
Appdynamics Training Session
CodvaTech Labs
 
Appium overview
Appium overviewAppium overview
Appium overview
Abhishek Yadav
 
React Interview Questions and Answers | React Tutorial | React Redux Online T...
React Interview Questions and Answers | React Tutorial | React Redux Online T...React Interview Questions and Answers | React Tutorial | React Redux Online T...
React Interview Questions and Answers | React Tutorial | React Redux Online T...
Edureka!
 
Appium: Automation for Mobile Apps
Appium: Automation for Mobile AppsAppium: Automation for Mobile Apps
Appium: Automation for Mobile Apps
Sauce Labs
 
Introduction to react native
Introduction to react nativeIntroduction to react native
Introduction to react native
Dani Akash
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
Mindfire Solutions
 
Cloud Monitoring with Prometheus
Cloud Monitoring with PrometheusCloud Monitoring with Prometheus
Cloud Monitoring with Prometheus
QAware GmbH
 
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the Containers
Ryan Hodgin
 

What's hot (20)

Helm.pptx
Helm.pptxHelm.pptx
Helm.pptx
 
Integrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and CamelIntegrating systems in the age of Quarkus and Camel
Integrating systems in the age of Quarkus and Camel
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
 
Introduction to Integration Testing With Cypress
Introduction to Integration Testing With CypressIntroduction to Integration Testing With Cypress
Introduction to Integration Testing With Cypress
 
Appium basics
Appium basicsAppium basics
Appium basics
 
Cypress first impressions
Cypress first impressionsCypress first impressions
Cypress first impressions
 
DevOps and Splunk
DevOps and SplunkDevOps and Splunk
DevOps and Splunk
 
Terraform
TerraformTerraform
Terraform
 
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
Using HashiCorp’s Terraform to build your infrastructure on AWS - Pop-up Loft...
 
Introduction to Firebase from Google
Introduction to Firebase from GoogleIntroduction to Firebase from Google
Introduction to Firebase from Google
 
React native
React nativeReact native
React native
 
QA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. SeleniumQA Challenge Accepted 4.0 - Cypress vs. Selenium
QA Challenge Accepted 4.0 - Cypress vs. Selenium
 
Appdynamics Training Session
Appdynamics Training SessionAppdynamics Training Session
Appdynamics Training Session
 
Appium overview
Appium overviewAppium overview
Appium overview
 
React Interview Questions and Answers | React Tutorial | React Redux Online T...
React Interview Questions and Answers | React Tutorial | React Redux Online T...React Interview Questions and Answers | React Tutorial | React Redux Online T...
React Interview Questions and Answers | React Tutorial | React Redux Online T...
 
Appium: Automation for Mobile Apps
Appium: Automation for Mobile AppsAppium: Automation for Mobile Apps
Appium: Automation for Mobile Apps
 
Introduction to react native
Introduction to react nativeIntroduction to react native
Introduction to react native
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
Cloud Monitoring with Prometheus
Cloud Monitoring with PrometheusCloud Monitoring with Prometheus
Cloud Monitoring with Prometheus
 
Docker Overview - Rise of the Containers
Docker Overview - Rise of the ContainersDocker Overview - Rise of the Containers
Docker Overview - Rise of the Containers
 

Similar to Advanced Appium Tips & Tricks with Jonathan Lipps

“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares
“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares
“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares
rayvillares
 
Building Mobile Optimized Websites
Building Mobile Optimized WebsitesBuilding Mobile Optimized Websites
Building Mobile Optimized Websites
haxorize
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Applitools
 
Certified Professional Appium for Mobile Testing
Certified Professional Appium for Mobile TestingCertified Professional Appium for Mobile Testing
Certified Professional Appium for Mobile Testing
Agile Testing Alliance
 
Mastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita PuramMastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita Puram
QA or the Highway
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestColorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latest
Onur Baskirt
 
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrum
Syam Sasi
 
Uber's new mobile architecture
Uber's new mobile architectureUber's new mobile architecture
Uber's new mobile architecture
Dhaval Patel
 
Platform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch EventPlatform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch Event
Fokke Zandbergen
 
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileBuilding Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile
Wee Witthawaskul
 
API Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIsAPI Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIs
Apigee | Google Cloud
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talk
Imam Raza
 
Pyramid tutorial
Pyramid tutorialPyramid tutorial
Pyramid tutorial
Carlos de la Guardia
 
Mastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with AppiumMastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with Appium
Perfecto by Perforce
 
Appium testing api
Appium testing apiAppium testing api
Appium testing api
b4usolution .
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Applitools
 
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
Brad Stoner
 
JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) upload
Russ Fustino
 
AngularJS App In Two Weeks
AngularJS App In Two WeeksAngularJS App In Two Weeks
AngularJS App In Two Weeks
Peter Chittum
 
移动端Web app开发
移动端Web app开发移动端Web app开发
移动端Web app开发
Zhang Xiaoxue
 

Similar to Advanced Appium Tips & Tricks with Jonathan Lipps (20)

“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares
“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares
“Building Mobile Optimized Websites,” Nick Bourgeois / Ray Villares
 
Building Mobile Optimized Websites
Building Mobile Optimized WebsitesBuilding Mobile Optimized Websites
Building Mobile Optimized Websites
 
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
Shifting landscape of mobile automation, and the future of Appium - Jonathan ...
 
Certified Professional Appium for Mobile Testing
Certified Professional Appium for Mobile TestingCertified Professional Appium for Mobile Testing
Certified Professional Appium for Mobile Testing
 
Mastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita PuramMastering the Art of Mobile Testing by Akshita Puram
Mastering the Art of Mobile Testing by Akshita Puram
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestColorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latest
 
Appium workshop technopark trivandrum
Appium workshop technopark trivandrumAppium workshop technopark trivandrum
Appium workshop technopark trivandrum
 
Uber's new mobile architecture
Uber's new mobile architectureUber's new mobile architecture
Uber's new mobile architecture
 
Platform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch EventPlatform 4.0 Meetup Launch Event
Platform 4.0 Meetup Launch Event
 
Building Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed AgileBuilding Mobile (app) Masterpiece with Distributed Agile
Building Mobile (app) Masterpiece with Distributed Agile
 
API Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIsAPI Services: Building State-of-the-Art APIs
API Services: Building State-of-the-Art APIs
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talkGoogle Developer Group(GDG) DevFest Event 2012 Android talk
Google Developer Group(GDG) DevFest Event 2012 Android talk
 
Pyramid tutorial
Pyramid tutorialPyramid tutorial
Pyramid tutorial
 
Mastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with AppiumMastering Mobile Test Automation with Appium
Mastering Mobile Test Automation with Appium
 
Appium testing api
Appium testing apiAppium testing api
Appium testing api
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
 
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
AppSphere 2016 - Automate performance testing with AppDynamics using continuo...
 
JavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) uploadJavaScript for ASP.NET programmers (webcast) upload
JavaScript for ASP.NET programmers (webcast) upload
 
AngularJS App In Two Weeks
AngularJS App In Two WeeksAngularJS App In Two Weeks
AngularJS App In Two Weeks
 
移动端Web app开发
移动端Web app开发移动端Web app开发
移动端Web app开发
 

More from Perfecto by Perforce

Is BDD Worth It? Considerations for Advanced Test Automation
Is BDD Worth It? Considerations for Advanced Test AutomationIs BDD Worth It? Considerations for Advanced Test Automation
Is BDD Worth It? Considerations for Advanced Test Automation
Perfecto by Perforce
 
Yoda debunks the top 5 challenges of continuous testing in the cloud
Yoda debunks the top 5 challenges of continuous testing in the cloudYoda debunks the top 5 challenges of continuous testing in the cloud
Yoda debunks the top 5 challenges of continuous testing in the cloud
Perfecto by Perforce
 
5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing
Perfecto by Perforce
 
How to Scale Digital App Testing With Jenkins & Automation You Can Trust
How to Scale Digital App Testing With Jenkins & Automation You Can TrustHow to Scale Digital App Testing With Jenkins & Automation You Can Trust
How to Scale Digital App Testing With Jenkins & Automation You Can Trust
Perfecto by Perforce
 
Mastering Cross-Browser Test Automation With Cypress and Selenium
Mastering Cross-Browser Test Automation With Cypress and SeleniumMastering Cross-Browser Test Automation With Cypress and Selenium
Mastering Cross-Browser Test Automation With Cypress and Selenium
Perfecto by Perforce
 
Cloud Testing Has Never Been Easier or More Accessible
Cloud Testing Has Never Been Easier or More AccessibleCloud Testing Has Never Been Easier or More Accessible
Cloud Testing Has Never Been Easier or More Accessible
Perfecto by Perforce
 
Cognitive Engineering - Shifting Right with Gated.AI Testing - DevOps Next
Cognitive Engineering - Shifting Right with Gated.AI Testing - DevOps NextCognitive Engineering - Shifting Right with Gated.AI Testing - DevOps Next
Cognitive Engineering - Shifting Right with Gated.AI Testing - DevOps Next
Perfecto by Perforce
 
The Rise and Benefits of Robotic Process Automation (RPA) - DevOps Next
The Rise and Benefits of Robotic Process Automation (RPA) - DevOps NextThe Rise and Benefits of Robotic Process Automation (RPA) - DevOps Next
The Rise and Benefits of Robotic Process Automation (RPA) - DevOps Next
Perfecto by Perforce
 
The New Categories of Software Defects in the Era of AI and ML - DevOps Next
The New Categories of Software Defects in the Era of AI and ML - DevOps NextThe New Categories of Software Defects in the Era of AI and ML - DevOps Next
The New Categories of Software Defects in the Era of AI and ML - DevOps Next
Perfecto by Perforce
 
Moving to Modern DevOps with Fuzzing and ML - DevOps Next
Moving to Modern DevOps with Fuzzing and ML - DevOps NextMoving to Modern DevOps with Fuzzing and ML - DevOps Next
Moving to Modern DevOps with Fuzzing and ML - DevOps Next
Perfecto by Perforce
 
Leveraging AI and ML in Test Management Systems - DevOps Next
Leveraging AI and ML in Test Management Systems - DevOps NextLeveraging AI and ML in Test Management Systems - DevOps Next
Leveraging AI and ML in Test Management Systems - DevOps Next
Perfecto by Perforce
 
How Does AIOps Benefit DevOps Pipeline and Software Quality? - DevOps Next
How Does AIOps Benefit DevOps Pipeline and Software Quality? - DevOps NextHow Does AIOps Benefit DevOps Pipeline and Software Quality? - DevOps Next
How Does AIOps Benefit DevOps Pipeline and Software Quality? - DevOps Next
Perfecto by Perforce
 
Classification of Advanced AI and ML Testing Tools - DevOps Next
Classification of Advanced AI and ML Testing Tools - DevOps NextClassification of Advanced AI and ML Testing Tools - DevOps Next
Classification of Advanced AI and ML Testing Tools - DevOps Next
Perfecto by Perforce
 
Automated Code Reviews with AI and ML - DevOps Next
Automated Code Reviews with AI and ML - DevOps NextAutomated Code Reviews with AI and ML - DevOps Next
Automated Code Reviews with AI and ML - DevOps Next
Perfecto by Perforce
 
Advancing the State of The Art in AI and Testing - DevOps Next
Advancing the State of The Art in AI and Testing - DevOps NextAdvancing the State of The Art in AI and Testing - DevOps Next
Advancing the State of The Art in AI and Testing - DevOps Next
Perfecto by Perforce
 
How to Prepare Your Apps for iOS 14 - Test Strategy, Coverage, & Best Practices
How to Prepare Your Apps for iOS 14 - Test Strategy, Coverage, & Best PracticesHow to Prepare Your Apps for iOS 14 - Test Strategy, Coverage, & Best Practices
How to Prepare Your Apps for iOS 14 - Test Strategy, Coverage, & Best Practices
Perfecto by Perforce
 
How to Create a Risk Based Testing Strategy With Simulators, Emulators, and R...
How to Create a Risk Based Testing Strategy With Simulators, Emulators, and R...How to Create a Risk Based Testing Strategy With Simulators, Emulators, and R...
How to Create a Risk Based Testing Strategy With Simulators, Emulators, and R...
Perfecto by Perforce
 
Fast Data, Fast Delivery: How Smart Analysis Accelerates App Testing
Fast Data, Fast Delivery: How Smart Analysis Accelerates App TestingFast Data, Fast Delivery: How Smart Analysis Accelerates App Testing
Fast Data, Fast Delivery: How Smart Analysis Accelerates App Testing
Perfecto by Perforce
 
Best Practices for Shifting Left Performance and Accessibility Testing
Best Practices for Shifting Left Performance and Accessibility TestingBest Practices for Shifting Left Performance and Accessibility Testing
Best Practices for Shifting Left Performance and Accessibility Testing
Perfecto by Perforce
 
Deliver Flawless Mobile Apps Faster with CI/CD & CT
Deliver Flawless Mobile Apps Faster with CI/CD & CTDeliver Flawless Mobile Apps Faster with CI/CD & CT
Deliver Flawless Mobile Apps Faster with CI/CD & CT
Perfecto by Perforce
 

More from Perfecto by Perforce (20)

Is BDD Worth It? Considerations for Advanced Test Automation
Is BDD Worth It? Considerations for Advanced Test AutomationIs BDD Worth It? Considerations for Advanced Test Automation
Is BDD Worth It? Considerations for Advanced Test Automation
 
Yoda debunks the top 5 challenges of continuous testing in the cloud
Yoda debunks the top 5 challenges of continuous testing in the cloudYoda debunks the top 5 challenges of continuous testing in the cloud
Yoda debunks the top 5 challenges of continuous testing in the cloud
 
5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing5 Mobile App Trends & What They Mean for Dev & Testing
5 Mobile App Trends & What They Mean for Dev & Testing
 
How to Scale Digital App Testing With Jenkins & Automation You Can Trust
How to Scale Digital App Testing With Jenkins & Automation You Can TrustHow to Scale Digital App Testing With Jenkins & Automation You Can Trust
How to Scale Digital App Testing With Jenkins & Automation You Can Trust
 
Mastering Cross-Browser Test Automation With Cypress and Selenium
Mastering Cross-Browser Test Automation With Cypress and SeleniumMastering Cross-Browser Test Automation With Cypress and Selenium
Mastering Cross-Browser Test Automation With Cypress and Selenium
 
Cloud Testing Has Never Been Easier or More Accessible
Cloud Testing Has Never Been Easier or More AccessibleCloud Testing Has Never Been Easier or More Accessible
Cloud Testing Has Never Been Easier or More Accessible
 
Cognitive Engineering - Shifting Right with Gated.AI Testing - DevOps Next
Cognitive Engineering - Shifting Right with Gated.AI Testing - DevOps NextCognitive Engineering - Shifting Right with Gated.AI Testing - DevOps Next
Cognitive Engineering - Shifting Right with Gated.AI Testing - DevOps Next
 
The Rise and Benefits of Robotic Process Automation (RPA) - DevOps Next
The Rise and Benefits of Robotic Process Automation (RPA) - DevOps NextThe Rise and Benefits of Robotic Process Automation (RPA) - DevOps Next
The Rise and Benefits of Robotic Process Automation (RPA) - DevOps Next
 
The New Categories of Software Defects in the Era of AI and ML - DevOps Next
The New Categories of Software Defects in the Era of AI and ML - DevOps NextThe New Categories of Software Defects in the Era of AI and ML - DevOps Next
The New Categories of Software Defects in the Era of AI and ML - DevOps Next
 
Moving to Modern DevOps with Fuzzing and ML - DevOps Next
Moving to Modern DevOps with Fuzzing and ML - DevOps NextMoving to Modern DevOps with Fuzzing and ML - DevOps Next
Moving to Modern DevOps with Fuzzing and ML - DevOps Next
 
Leveraging AI and ML in Test Management Systems - DevOps Next
Leveraging AI and ML in Test Management Systems - DevOps NextLeveraging AI and ML in Test Management Systems - DevOps Next
Leveraging AI and ML in Test Management Systems - DevOps Next
 
How Does AIOps Benefit DevOps Pipeline and Software Quality? - DevOps Next
How Does AIOps Benefit DevOps Pipeline and Software Quality? - DevOps NextHow Does AIOps Benefit DevOps Pipeline and Software Quality? - DevOps Next
How Does AIOps Benefit DevOps Pipeline and Software Quality? - DevOps Next
 
Classification of Advanced AI and ML Testing Tools - DevOps Next
Classification of Advanced AI and ML Testing Tools - DevOps NextClassification of Advanced AI and ML Testing Tools - DevOps Next
Classification of Advanced AI and ML Testing Tools - DevOps Next
 
Automated Code Reviews with AI and ML - DevOps Next
Automated Code Reviews with AI and ML - DevOps NextAutomated Code Reviews with AI and ML - DevOps Next
Automated Code Reviews with AI and ML - DevOps Next
 
Advancing the State of The Art in AI and Testing - DevOps Next
Advancing the State of The Art in AI and Testing - DevOps NextAdvancing the State of The Art in AI and Testing - DevOps Next
Advancing the State of The Art in AI and Testing - DevOps Next
 
How to Prepare Your Apps for iOS 14 - Test Strategy, Coverage, & Best Practices
How to Prepare Your Apps for iOS 14 - Test Strategy, Coverage, & Best PracticesHow to Prepare Your Apps for iOS 14 - Test Strategy, Coverage, & Best Practices
How to Prepare Your Apps for iOS 14 - Test Strategy, Coverage, & Best Practices
 
How to Create a Risk Based Testing Strategy With Simulators, Emulators, and R...
How to Create a Risk Based Testing Strategy With Simulators, Emulators, and R...How to Create a Risk Based Testing Strategy With Simulators, Emulators, and R...
How to Create a Risk Based Testing Strategy With Simulators, Emulators, and R...
 
Fast Data, Fast Delivery: How Smart Analysis Accelerates App Testing
Fast Data, Fast Delivery: How Smart Analysis Accelerates App TestingFast Data, Fast Delivery: How Smart Analysis Accelerates App Testing
Fast Data, Fast Delivery: How Smart Analysis Accelerates App Testing
 
Best Practices for Shifting Left Performance and Accessibility Testing
Best Practices for Shifting Left Performance and Accessibility TestingBest Practices for Shifting Left Performance and Accessibility Testing
Best Practices for Shifting Left Performance and Accessibility Testing
 
Deliver Flawless Mobile Apps Faster with CI/CD & CT
Deliver Flawless Mobile Apps Faster with CI/CD & CTDeliver Flawless Mobile Apps Faster with CI/CD & CT
Deliver Flawless Mobile Apps Faster with CI/CD & CT
 

Recently uploaded

Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
Awais Yaseen
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
Larry Smarr
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 

Recently uploaded (20)

Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
Best Programming Language for Civil Engineers
Best Programming Language for Civil EngineersBest Programming Language for Civil Engineers
Best Programming Language for Civil Engineers
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
The Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU CampusesThe Increasing Use of the National Research Platform by the CSU Campuses
The Increasing Use of the National Research Platform by the CSU Campuses
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 

Advanced Appium Tips & Tricks with Jonathan Lipps

  • 1. Advanced Appium Tips & Tricks Jonathan Lipps • Founding Principal • Cloud Grey 
 @AppiumDevs • @cloudgrey_io • @jlipps • appiumpro.com Perfecto Mobile Webinar · The Internet April 24, 2018
  • 2. © 2015, Perfecto Mobile Ltd. All Rights Reserved. Housekeeping • Please participate in our live poll and end-of-webinar survey • Ask us questions in the QA panel • We will send you the recording and slides 4/21/2018 2
  • 3. Founding Principal Architect, Maintainer Jonathan Lipps • Founding Principal • Cloud Grey 
 @AppiumDevs • @cloudgrey_io • @jlipps • appiumpro.com
  • 5. AppiumConf! @jlipps · cloudgrey.io Watch the videos at appiumconf.com Stay tuned for next year. Thanks for sponsoring, Perfecto!
  • 6. What’s new in Appium 1.8? @jlipps · cloudgrey.io
  • 7. W3C WebDriver spec support What’s new in Appium 1.8? @jlipps · cloudgrey.io
  • 8. W3C WebDriver spec support App management features What’s new in Appium 1.8? @jlipps · cloudgrey.io
  • 9. W3C WebDriver spec support App management features Improved screen-related primitives What’s new in Appium 1.8? @jlipps · cloudgrey.io
  • 10. W3C WebDriver spec support App management features Improved screen-related primitives Clipboard management features What’s new in Appium 1.8? @jlipps · cloudgrey.io
  • 11. W3C WebDriver spec support App management features Improved screen-related primitives Clipboard management features Auxiliary app support via otherApps capability What’s new in Appium 1.8? @jlipps · cloudgrey.io
  • 12. W3C WebDriver spec support App management features Improved screen-related primitives Clipboard management features Auxiliary app support via otherApps capability iOS Screen Recording What’s new in Appium 1.8? @jlipps · cloudgrey.io
  • 13. W3C WebDriver spec support App management features Improved screen-related primitives Clipboard management features Auxiliary app support via otherApps capability iOS Screen Recording iOS Performance data gathering via Instruments What’s new in Appium 1.8? @jlipps · cloudgrey.io
  • 14. W3C WebDriver spec support App management features Improved screen-related primitives Clipboard management features Auxiliary app support via otherApps capability iOS Screen Recording iOS Performance data gathering via Instruments Android Broadcast device logs for log streaming What’s new in Appium 1.8? @jlipps · cloudgrey.io
  • 15. W3C WebDriver spec support App management features Improved screen-related primitives Clipboard management features Auxiliary app support via otherApps capability iOS Screen Recording iOS Performance data gathering via Instruments Android Broadcast device logs for log streaming Android Support ‘Instant Apps’ What’s new in Appium 1.8? @jlipps · cloudgrey.io
  • 16. W3C WebDriver spec support App management features Improved screen-related primitives Clipboard management features Auxiliary app support via otherApps capability iOS Screen Recording iOS Performance data gathering via Instruments Android Broadcast device logs for log streaming Android Support ‘Instant Apps’ Many, many bugfixes and performance/stability improvements What’s new in Appium 1.8? @jlipps · cloudgrey.io
  • 17. @jlipps · cloudgrey.io npm install -g appium
  • 18. © 2015, Perfecto Mobile Ltd. All Rights Reserved. Poll Question What feature would you most want to see Implemented in Appium? • Support for network virtualization (3G, 4G, packet loss %, etc.) • Support for visual testing (barcode scanning, check deposit use cases) • Support for gesture like Face ID, Finger Print, and more • Better Cross platform automation for all platforms including smartwatch, iOS, Android • Support for audio and video testing (chatbots, MOS, 
 etc.) • Other 4/21/2018 8
  • 19. Today’s tips: recent selections from appiumpro.com @jlipps · cloudgrey.io
  • 20. Finding elements with greater speed and stability Today’s tips: recent selections from appiumpro.com @jlipps · cloudgrey.io
  • 21. Finding elements with greater speed and stability Using deep links to speed up tests and reduce flakiness Today’s tips: recent selections from appiumpro.com @jlipps · cloudgrey.io
  • 22. Finding elements with greater speed and stability Using deep links to speed up tests and reduce flakiness Testing app upgrade scenarios Today’s tips: recent selections from appiumpro.com @jlipps · cloudgrey.io
  • 23. Finding elements with greater speed and stability Using deep links to speed up tests and reduce flakiness Testing app upgrade scenarios Cross-platform testing best practices Today’s tips: recent selections from appiumpro.com @jlipps · cloudgrey.io
  • 28. Locator Strategy From Support in Appium class name Selenium Yes id Selenium Yes name Selenium Yes xpath Selenium Yes accessibility id Appium Yes -ios predicate string Appium Yes -ios class chain Appium Yes -android uiautomator Appium Yes -ios uiautomation Appium Deprecated css selector Selenium No link text Selenium No partial link text Selenium No tag name Selenium No @jlipps · cloudgrey.io
  • 29. Why use XPath? @jlipps · cloudgrey.io
  • 30. It allows for the formulation of complex queries (for example, using the @contains function) Why use XPath? @jlipps · cloudgrey.io
  • 31. It allows for the formulation of complex queries (for example, using the @contains function) It can identify any element in the UI hierarchy available to Appium Why use XPath? @jlipps �� cloudgrey.io
  • 32. It allows for the formulation of complex queries (for example, using the @contains function) It can identify any element in the UI hierarchy available to Appium … Why use XPath? @jlipps · cloudgrey.io
  • 33. It allows for the formulation of complex queries (for example, using the @contains function) It can identify any element in the UI hierarchy available to Appium … that’s about it Why use XPath? @jlipps · cloudgrey.io
  • 34. Why not to use XPath @jlipps · cloudgrey.io
  • 35. Why not to use XPath @jlipps · cloudgrey.io Path-based selectors are brittle
  • 36. Why not to use XPath @jlipps · cloudgrey.io Path-based selectors are brittle It is often expensive to generate an XML representation of the UI
  • 37. Why not to use XPath @jlipps · cloudgrey.io Path-based selectors are brittle It is often expensive to generate an XML representation of the UI It is often expensive to map XML elements found by XPath to native element objects
  • 38. Why not to use XPath @jlipps · cloudgrey.io Path-based selectors are brittle It is often expensive to generate an XML representation of the UI It is often expensive to map XML elements found by XPath to native element objects XPath selectors are not cross-platform
  • 40. Preferred locator strategies @jlipps · cloudgrey.io MobileBy.AccessibilityId Cross-platform locator strategy, will find elements by Accessibility Id (or Name) on iOS, and Content Description on Android
  • 41. Preferred locator strategies @jlipps · cloudgrey.io MobileBy.AccessibilityId Cross-platform locator strategy, will find elements by Accessibility Id (or Name) on iOS, and Content Description on Android By.id Cross-platform locator strategy, will find elements by Id (and a set of other unique identifiers) on iOS, and android:id on Android
  • 43. “Advanced” locator strategies @jlipps · cloudgrey.io MobileBy.iOSNsPredicateString iOS-only locator strategy that allows complex element lookups based on attributes
  • 44. “Advanced” locator strategies @jlipps · cloudgrey.io MobileBy.iOSNsPredicateString iOS-only locator strategy that allows complex element lookups based on attributes MobileBy.iOSClassChain iOS-only locator strategy that allows complex element lookups based on attributes and hierarchy
  • 45. “Advanced” locator strategies @jlipps · cloudgrey.io MobileBy.iOSNsPredicateString iOS-only locator strategy that allows complex element lookups based on attributes MobileBy.iOSClassChain iOS-only locator strategy that allows complex element lookups based on attributes and hierarchy MobileBy.AndroidUIAutomator Android-only locator strategy that allows use the UiSelector API to chain element finding restrictions
  • 46. iOS Predicate String example @jlipps · cloudgrey.io MobileBy.iOSNsPredicateString( "type == 'XCUIElementTypeButton' AND value BEGINSWITH[c] 'foo' AND visible == 1" );
  • 47. iOS Class Chain example @jlipps · cloudgrey.io MobileBy.iOSClassChain( "**/XCUIElementTypeCell[`name BEGINSWITH “C"`]/XCUIElementTypeButton[10]" );
  • 48. Android UiAutomator example @jlipps · cloudgrey.io MobileBy.AndroidUIAutomator( 'new UiSelector().className("ScrollView").getChildByText(new UiSelector().className("android.widget.TextView"), "Tabs")' );
  • 52. @jlipps · cloudgrey.io 30 seconds x 50 tests = 25 minutes
  • 53. Strategies to set up app state instantly @jlipps · cloudgrey.io
  • 54. Android Start the test with custom intents to navigate directly to the right place Use intentAction and optionalIntentArguments parameters to driver.startActivity Strategies to set up app state instantly @jlipps · cloudgrey.io
  • 55. Android Start the test with custom intents to navigate directly to the right place Use intentAction and optionalIntentArguments parameters to driver.startActivity iOS Start the app with custom arguments using Appium capabilities Use the processArguments capability when starting a session Strategies to set up app state instantly @jlipps · cloudgrey.io
  • 56. Android Start the test with custom intents to navigate directly to the right place Use intentAction and optionalIntentArguments parameters to driver.startActivity iOS Start the app with custom arguments using Appium capabilities Use the processArguments capability when starting a session Cross-platform Use deep linking Implement a custom url scheme in your app, then simply use driver.get Strategies to set up app state instantly @jlipps · cloudgrey.io
  • 60. @jlipps · cloudgrey.io 5 seconds x 50 tests = ~4 minutes
  • 62. App upgrades on Android @jlipps · cloudgrey.io
  • 63. Get paths to two versions of your app App upgrades on Android @jlipps · cloudgrey.io
  • 64. Get paths to two versions of your app Start an Appium session using the older version of the app (via the app capability) App upgrades on Android @jlipps · cloudgrey.io
  • 65. Get paths to two versions of your app Start an Appium session using the older version of the app (via the app capability) Install the new app using driver.installApp App upgrades on Android @jlipps · cloudgrey.io
  • 66. Get paths to two versions of your app Start an Appium session using the older version of the app (via the app capability) Install the new app using driver.installApp Trigger the new app to relaunch by using driver.startActivity App upgrades on Android @jlipps · cloudgrey.io
  • 68. App upgrades on iOS @jlipps · cloudgrey.io
  • 69. Get paths to two versions of your app App upgrades on iOS @jlipps · cloudgrey.io
  • 70. Get paths to two versions of your app Start an Appium session using the older version of the app (via the app capability) App upgrades on iOS @jlipps · cloudgrey.io
  • 71. Get paths to two versions of your app Start an Appium session using the older version of the app (via the app capability) Stop the current app using mobile: terminateApp App upgrades on iOS @jlipps · cloudgrey.io
  • 72. Get paths to two versions of your app Start an Appium session using the older version of the app (via the app capability) Stop the current app using mobile: terminateApp Install the new app using mobile: installApp App upgrades on iOS @jlipps · cloudgrey.io
  • 73. Get paths to two versions of your app Start an Appium session using the older version of the app (via the app capability) Stop the current app using mobile: terminateApp Install the new app using mobile: installApp Trigger the new app to relaunch by using mobile: launchApp App upgrades on iOS @jlipps · cloudgrey.io
  • 76. Tips for app development @jlipps · cloudgrey.io
  • 77. Add labels to any element that might be used in testing (i.e., pretty much every element) Tips for app development @jlipps · cloudgrey.io
  • 78. Add labels to any element that might be used in testing (i.e., pretty much every element) Add labels as “Accessibility ID” on iOS and “Content Description” on Android—and make them the same! Tips for app development @jlipps · cloudgrey.io
  • 79. Add labels to any element that might be used in testing (i.e., pretty much every element) Add labels as “Accessibility ID” on iOS and “Content Description” on Android—and make them the same! As much as possible within the product design requirements, keep user flows the same across apps Tips for app development @jlipps · cloudgrey.io
  • 80. Add labels to any element that might be used in testing (i.e., pretty much every element) Add labels as “Accessibility ID” on iOS and “Content Description” on Android—and make them the same! As much as possible within the product design requirements, keep user flows the same across apps Build a test version of your app that has all kinds of state set-up goodies Tips for app development @jlipps · cloudgrey.io
  • 81. Add labels to any element that might be used in testing (i.e., pretty much every element) Add labels as “Accessibility ID” on iOS and “Content Description” on Android—and make them the same! As much as possible within the product design requirements, keep user flows the same across apps Build a test version of your app that has all kinds of state set-up goodies Make debug versions of builds Tips for app development @jlipps · cloudgrey.io
  • 82. Add labels to any element that might be used in testing (i.e., pretty much every element) Add labels as “Accessibility ID” on iOS and “Content Description” on Android—and make them the same! As much as possible within the product design requirements, keep user flows the same across apps Build a test version of your app that has all kinds of state set-up goodies Make debug versions of builds iOS Use Wildcard App IDs in Provisioning Profiles (so WebDriverAgent can be built using a custom Bundle ID that works with the profile) Tips for app development @jlipps · cloudgrey.io
  • 83. Tips for the testsuite @jlipps · cloudgrey.io
  • 84. Use a Page Object Model strategy (or similar), to keep differences between platforms encapsulated Tips for the testsuite @jlipps · cloudgrey.io
  • 85. Use a Page Object Model strategy (or similar), to keep differences between platforms encapsulated Test step code should be totally platform-agnostic. Only your runner and your object model should know about platform Tips for the testsuite @jlipps · cloudgrey.io
  • 86. Use a Page Object Model strategy (or similar), to keep differences between platforms encapsulated Test step code should be totally platform-agnostic. Only your runner and your object model should know about platform Avoid XPath in favor of cross-platform locator strategies Tips for the testsuite @jlipps · cloudgrey.io
  • 87. Use a Page Object Model strategy (or similar), to keep differences between platforms encapsulated Test step code should be totally platform-agnostic. Only your runner and your object model should know about platform Avoid XPath in favor of cross-platform locator strategies Dynamically update test name for reports to include platform name or other details, for easier debugging Tips for the testsuite @jlipps · cloudgrey.io
  • 88. @jlipps · cloudgrey.io More tips like these sent by e-mail every week Subscribe at appiumpro.com
  • 89. Thank You! Your free weekly Appium newsletter: appiumpro.com Jonathan Lipps • Founding Principal • Cloud Grey 
 @AppiumDevs • @cloudgrey_io • @jlipps • appiumpro.com
  • 90. Questions? Your free weekly Appium newsletter: appiumpro.com Jonathan Lipps • Founding Principal • Cloud Grey 
 @AppiumDevs • @cloudgrey_io • @jlipps • appiumpro.com