Mobile e2e tests using WebdriverIO and Appium

This page summarizes the projects mentioned and recommended in the original post on

Our great sponsors
  • Appwrite - The Open Source Firebase alternative introduces iOS support
  • Scout APM - Less time debugging, more time building
  • - Download’s Tech Salary Report
  • SonarLint - Clean code begins in your IDE with SonarLint
  • Quick

    The Swift (and Objective-C) testing framework.

    These tests are responsible for validating that a single unit is working properly. You can think of a unit as a class or function. These tests are written in an isolated fashion. I mean, if the rest of the system is full of bugs and nothing else work, if this unit work, the test will pass. They are also repeatable. They don't depend on anything else, really. Anytime you run the test, if the code hasn't changed, the test will report the same result. These tests are intimately related to the code quality of your project. If your code is clean, these tests should be relatively easy to write. When writing unit tests in iOS, you usually use XCTest or Quick

  • ToBeAutomated

    An example for an e2e automation article.

    Well, enough theory for now. I've prepared a quick, small example so you can understand hands-on how all of this work. So, go and clone/download the code in this repo. This is the simplest app you could think of. It's a Counter app, that has a label in the center of the screen, a button to "add" and a button to "sub". As simple as that. A think that could draw your attention is this fragment:

  • Appwrite

    Appwrite - The Open Source Firebase alternative introduces iOS support. Appwrite is an open source backend server that helps you build native iOS applications much faster with realtime APIs for authentication, databases, files storage, cloud functions and much more!

  • appium-desktop

    Appium Server in Desktop GUIs for Mac, Windows, and Linux

    Now, download Appium Desktop from this link.

  • nvm

    Node Version Manager - POSIX-compliant bash script to manage multiple active node.js versions

    If you were able to follow up until now, well done! You've just run Appium for the first time, and inspected your app in the Appium Inspector. Now, stop the Appium Desktop server, and let's start with the actual tests. Before going on, you'll need to install nodejs, preferably by using nvm, although that's out of the scope for this tutorial. Once you've that installed, let's create a new folder and open the terminal inside it. We need to start a new Nodejs app, so I'll run npm init -y to accept the default arguments.

  • WebdriverIO

    Next-gen browser and mobile automation test framework for Node.js

    So this is new for me. I normally write posts explaining things I've been doing in a daily basis for many years. However, I started working for a new client somethings like a month ago. I'll talk about the team organization at some point, in another post, because I really like how these guys work. However, this post is about end-to-end tests. In the team I'm now taking part of, everyone is responsible for writing e2e tests for iOS/Android/Web. I've never done that before, I have to confess. I've done Unit tests many many times, but I've never written so many integration tests. Appium, WebdriverIO and Jasmine are the tools this team has chosen to write these tests, and for good reasons. Let's first distinguish briefly among the different types of automated tests. Particularly between e2e and unit tests.

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts