Have you ever discovered a bug in a web app? Yuck! Almost everyone has. Bugs look bad, interrupt the user’s experience, and cheapen the web app’s value. Severe bugs can incur serious business costs and tarnish the provider’s reputation. So, how can we prevent these bugs from reaching users? The best way to catch bugs is to test the web app. However, web UI testing can be difficult: it requires more effort than unit testing, and it has a bad rap for being flaky.
Never fear! This tutorial will make web UI testing easy. We will build a simple yet robust web UI test solution using Python, pytest, and Selenium WebDriver. We will learn strategies for good test design as well as patterns for good automation code. By the end of the tutorial, you’ll be a web test automation champ! Your Python test project can be the foundation for your own test cases, too.
- Set Your Test Automation Goals (Chapter 1)
- Create A Python Test Automation Project Using Pytest (Chapter 2)
- Installing Selenium WebDriver Using Python and Chrome (Chapter 3)
- Write Your First Web Test Using Selenium WebDriver, Python and Chrome (Chapter 4)
- Develop Page Object Selenium Tests Using Python (Chapter 5)
- How to Read Config Files in Python Selenium Tests (Chapter 6)
- Take Your Python Test Automation To The Next Level (Chapter 7)
- Create Pytest HTML Test Reports (Chapter 7.1)
- Parallel Test Execution with Pytest (Chapter 7.2)
- Scale Your Test Automation using Selenium Grid and Remote WebDrivers (Chapter 7.3)
- Test Automation for Mobile Apps using Appium and Python (Chapter 7.4)
- Create Behavior-Driven Python Tests using Pytest-BDD (Chapter 7.5)
As part of this tutorial, we will create an example test project with a few basic tests for the DuckDuckGo search engine. All instructions and code will be provided in the chapters. I strongly recommend creating and building this example project on your own machine as you progress through the tutorial.
The example project requires basic Python programming skills. Make sure your machine has an up-to-date version of Python 3 installed (not Python 2). You can download the latest version from Python.org. The example code will be written in Python 3.7.3. Command line examples will use UNIX (but they will be similar for other operating systems). I also recommend a good Python IDE like PyCharm or Visual Studio Code.
The completed example project code is hosted in GitHub at https://github.com/testproject-io/python-webui-testing. Each chapter has a branch corresponding to the new example code covered by the chapter. The master branch holds the final version. If you get stuck, compare your code to the GitHub project’s code.