26
Automate your Appium tests like a pro Wednesday, April 27th

Automate you Appium test like a pro!

Embed Size (px)

Citation preview

Page 1: Automate you Appium test like a pro!

Automate your Appium tests like a pro

Wednesday, April 27th

Page 2: Automate you Appium test like a pro!

AboutQualiTest

QA and testing isall that we do!

World’s 2ndlargest pure play

TestingCompany

Over 2,700 testingprofessionalsworld wide

Business Assurance

QA &TestingFocus

ResultsBasedTesting(RBT)

Contractual guarantees forquality improvement &

cost reduction

ManagedTesting

Solutions(MTS)

Long term, SLA-based testingoutsourcing

Industry & Technology Expert

2

GlobalServiceDeliveryModel

Onshore, Near-Shore,Offshore and Crowd

Testing

Page 3: Automate you Appium test like a pro!

What is Appium?

| Android and iOS Devices Automation Toolkit

| Provides real device control on Native, Mobile Web and Hybrid apps

| Based on the hugely successful Selenium WebDriver technologies

3

Page 4: Automate you Appium test like a pro!

What are the benefits to Appium?

|Object-based recognition, more resilient to minor GUI changes than image-based

|No side-loaded software or libraries on the device

|Widely supported, time-tested foundations| Part of the WebDriver family of technologies

| Many of the concepts and approaches are already known to experienced WebDriver engineers

|Open-source project, minimal cost

4

Page 5: Automate you Appium test like a pro!

What are the disadvantages to Appium?

| Limited avenues for commercial or SLA support

| Code-heavy solutions

| Limited to Android and iOS testing

5

Page 6: Automate you Appium test like a pro!

How does Appium work?

| A lightweight, NodeJS server sits alongside mobile-vendor provided SDK

| For Android we leverage Google’s own Android Developer Tools

| For iOS we leverage Apple’s iOS SDK

| The server is listening for traffic coming in using WebDriver’s JSON wire protocol

| When traffic comes in, it passes through to a connected device using the SDK

6

Page 7: Automate you Appium test like a pro!

How Does Appium Work?

Appium Host Test Automation Suite

iOS/Android Device NodeJS ServerAndroid/iOS SDK RemoteWebDriverImplementation

Automation Scripts (Java, C#, Ruby, etc.)

JSON Wire Protocol

Can be same machine or separate

7

Page 8: Automate you Appium test like a pro!

How do we write Appium tests?

| Because Appium listens via neutral protocols, test developers can choose from a variety of languages to use.| Appium project provides language

bindings for Java, C#, Ruby, PHP, Python and JavaScript

| Developers can write their own bindings

8

Page 9: Automate you Appium test like a pro!

Knowing what to look for

| Traditional WebDriver tests use HTML structure details to interact with the page

| iOS and Android GUI elements can be located using identifiers, Xpath expressions and text just like web page elements

| We find these using mobile tools in Appium and SDKs rather than a browser

9

Page 10: Automate you Appium test like a pro!

10

So what does this mean?

|A standard app development environment is easily adapted to an Appium test environment

|We can take a lot of WebDriver’s principles and apply them to mobile testing

|Appium tests look and feel very like WebDriver web tests; but we point to a device not a browser.

|We can re-use lessons learnt, frameworks and best practices from WebDriver testing in Appium.

Page 11: Automate you Appium test like a pro!

11

Appium Test Best Practices

|De-couple test fixtures from test logic

|LoginPageObject.java

| Use page object patterns to keep tests resilient to application changes

Page 12: Automate you Appium test like a pro!

12

Appium Test Best Practices

|Test Scripts should be high-level |LoginTests.java

| Test Scripts document a Journey through a system

| Scripts call lower level functionality at business and page layers to drive interaction

| Use Data-Driven techniques to create scalable tests

Page 13: Automate you Appium test like a pro!

13

Appium Test Best Practices

| Invest in automation infrastructure| The faster and more regularly we run

automated tests, the faster they find problems, the faster we drive up quality

| Dedicated environments and software build phases are instrumental to this

Page 14: Automate you Appium test like a pro!

14

Appium Test Best Practices

|Automate from the bottom up| Appium tests are integration tests, covering

more functionality than unit tests, but are harder to set up and slower to run. If unit test coverage is high, we need less of them

| If unit test coverage is low, integration test failures become less-efficient at pinpointing defect areas

Page 15: Automate you Appium test like a pro!

15

Appium Test Best Practices

| Empower test developers| They should be provisioned with all they need

to run tests locally, instead of leaning on shared build- servers and environments to identify failure

| The software build should be chained not to run integration tests if unit tests failed

| There’s no point in running slow tests when fast tests already told us there’s a defect

| Test your tests!

Page 16: Automate you Appium test like a pro!

16

About the Demo: giffgaff

| giffgaff are a mobile telephone network based in the UK

| Founded in 2009 with a vision to disrupt the market

| Built around their core values of being lean, disruptive and driven by their members

| giffgaff is ’run by you’ with hundreds of implemented ideas generated by the ’community’

Page 17: Automate you Appium test like a pro!

17

About the Demo: giffgaff

| Some of the functionalities of the app include allowing users to:

| View their balance| Topup their phones

| Talk on the community

| Change their account settings

Page 18: Automate you Appium test like a pro!

18

About the Demo: The Tests

| The test cases implemented for this demonstration cover the following scenarios:

| Able to successfully log in and out as a giffgaff member

| Unable to log in with an invalid password

Page 19: Automate you Appium test like a pro!

19

About TestObject

Mobile Automated

Testing

Open sourceTesting

Frameworks

MobileManual Testing

2 Offices in Germany

App TestingSpecialists

Our Clients

200+Satisfied

Customers

Page 20: Automate you Appium test like a pro!

20

Typical Appium Test Script

Page 21: Automate you Appium test like a pro!

21

Typical Appium Test Script

| Not using abstraction to our advantage: low level and high level mixed together;

| Low readability;

| Low maintainability: bad news if you have a new release every two weeks.

Page 22: Automate you Appium test like a pro!

22

The PageObject Pattern

| The goal:| Enhancing test maintainability by increasing

readability and reducing code duplication.

| How to achieve it:| Every* page in a website / every* screen in an

app is represented by a class;| Every PageObject encapsulates the

interactions the user can have on said page/screen, hiding the underlying widgetry.

Page 23: Automate you Appium test like a pro!

23

The PageObject Pattern

Page 24: Automate you Appium test like a pro!

24

The PageObject Pattern

| If we have this in place…| tests become more readable (as you will see in

a moment – they will read as a sequence of user interactions on a screen) and high-level;

| if the UI changes for the page, all changes to support that new UI are located in one place (the PageObject class for that page).

Page 25: Automate you Appium test like a pro!

25

Questions and Answers