Preface
- Who should read this book
- How to read this book
- Send me feedback
Introduction
- Test automation benefits
- Test Automation success factors
- Why traditional commercial testing tools all failed?
- Choose a right automation framework
- Appium + WindowsDriver is the solution, period
- Synergy of web app and native app testing
- Desktop App Automation is harder than Web’s
- Challenges with Appium + WindowsDriver
- Next action
First Appium Automation Script
- Appium’s Client-Server Architecture
- Set up the execution environment
- Set up Appium Server v3 with WinCore Driver
- Set up Appium Client
- Appium set up on Windows ARM64
- First Appium Desktop App Test
- Control Inspector
- Test Tools
- Review
Test Syntax Framework
- RSpec Framework
- Transform automation scripts to test scripts
- Run RSpec tests
- Alternative test syntax frameworks
Find App Window
- A closer look at the script
- Launch UWP App by AppId
- Launch Classic App by executable
- Launch app with arguments
- Attach an Appium session to an existing App Window
Appium Locators
- How to identify UI elements in native apps?
- Appium Inspector
- Other tools for inspecting Windows Native Apps
- Appium’s six locators
- Chain
find_elementto find child elements - Guide on selecting locator?
- Advice on performance
- Find multiple elements
- Review
Putting It All Together
- Get App and Element Information
- An End-To-End Notepad scenario
- Stablize
- Refine
- Wrap-up
Keyboard and Mouse
- Keyboard
- Mouse
- W3C Actions API
Assertions
- Assert Window title
- Assert Text in an Edit control
- Assert a control’s attributes
- Assert text present
- Assert CheckBox is checked
- Assert not …
- Assert RadioButton is checked
- Assert Disabled
- Assert ComboBox option
- Check equal of two elements
Review
- Syntax errors
- Waiting
- Set up source control
- GUI/Object map
- Custom libraries
- Debugging
- What is the best learning method?
- Wrap-up
Test Maintenance
- Linear test steps are difficult to maintain
- Maintainable automated test design
- Don’t Repeat Yourself
- Maintain with ease
- Wrap-up
Improve Efficiency
- Simple project structure
- Test execution
- Quick navigation
- Fast Editing with Snippets
- Script library
- Test refactoring
- Debug test scripts
- Wrap-up
Functional Test Refactoring
- Functional test refactoring
- Tool support
- Case study
- Wrap-up
Test Data
- Test data needs to be reusable
- Generate Test Data on the fly
- Retrieve data from Database
- Reset data
Case Study: Test TestWise IDE
- Launch App
- Dismiss the Splash Screen
- Launch TestWise cleanly
- App Version
- Custom execution with Environment Variables
- Common UI elements
- Launch App with Argument
- Reusable Test Data
- Open a specific test file
- Test Automation Support in App
- Context Click
- Drag and drop
- Verify a file moved
- Wrap-up
Continuous Testing
- CT Overview
- Prerequisite
- Continuous Testing Steps
- Parallel Test Execution with Build Agents
- Parallel Testing Lab
- Ongoing maintenance
- Test Stats or Reports
Appium in other languages
- Appium with Python
- Appium with C#
- Wrap-up
Afterword
- Practice makes perfect
- Successful Test Automation
Appendix 1 - Appium v1 set up
- Install and start Appium server v1
- Enable Developer mode on Windows 10
- Ruby Library for Appium v1 - appium_lib
Resources
- Books
- Web Sites
- Tools
- Blog