Book Image

UI Testing with Puppeteer

By : Dario Kondratiuk
Book Image

UI Testing with Puppeteer

By: Dario Kondratiuk

Overview of this book

Puppeteer is an open source web automation library created by Google to perform tasks such as end-to-end testing, performance monitoring, and task automation with ease. Using real-world use cases, this book will take you on a pragmatic journey, helping you to learn Puppeteer and implement best practices to take your automation code to the next level! Starting with an introduction to headless browsers, this book will take you through the foundations of browser automation, showing you how far you can get using Puppeteer to automate Google Chrome and Mozilla Firefox. You’ll then learn the basics of end-to-end testing and understand how to create reliable tests. You’ll also get to grips with finding elements using CSS selectors and XPath expressions. As you progress through the chapters, the focus shifts to more advanced browser automation topics such as executing JavaScript code inside the browser. You’ll learn various use cases of Puppeteer, such as mobile devices or network speed testing, gauging your site’s performance, and using Puppeteer as a web scraping tool. By the end of this UI testing book, you’ll have learned how to make the most of Puppeteer’s API and be able to apply it in your real-world projects.
Table of Contents (12 chapters)

What this book covers

Chapter 1, Getting started with Puppeteer, lays the foundation for the book. It will help you get started with Puppeteer by introducing you to the tool and getting you acquainted with the essentials. You will also learn how to write async code in JavaScript.

Chapter 2, Automated Testing and Test runners, covers end-to-end testing fundamentals and the difference between different types of tests. In the latter part of the chapter, we will cover creating and organizing a test project and getting started with test runners.

Chapter 3, Navigating through a website, sees you start coding your tests. You will learn how to launch a browser, navigate to a page, and make some assertions. Then, you will see how to publish your tests to the cloud to be tested.

Chapter 4, Interacting with a page, is all about interaction. Once you get to a page, how do you test it? How do you simulate user interaction? This chapter takes you through the most common ways of interacting with a page. This chapter also covers some basic HTML concepts, so you can take advantage of all the tools Puppeteer provides.

Chapter 5, Waiting for elements and network calls, teaches you how to wait for the different scenarios on the page you are testing—waiting for the page to load and be ready, waiting for a button to be enabled, waiting for an Ajax call to be completed, and so on. This chapter covers all the tools that Puppeteer offers to handle these scenarios.

Chapter 6, Executing and Injecting JavaScript, shows you one of the best features of Puppeteer: injecting JavaScript code easily. In this chapter, we will leave the end-to-end testing world for a moment and dive into web automation using a general-purpose tool.

Chapter 7, Generating Content with Puppeteer, expands on the usage of Puppeteer and shows you how we can create content using Puppeteer. We'll start by learning how screenshots are created and how they can be used for regression tests. Then, we will cover PDF generation, and finally, we will learn how to create pages on the fly.

Chapter 8, Environments emulation, explains all the tools Puppeteer provides to emulate different scenarios. It will show you how to emulate mobile devices, different screen resolutions, various network speeds, geolocation, and even things such as vision deficiency.

Chapter 9, Scraping tools, demystifies web scraping, showing you how it can be used to your advantage. You will learn how to create scrapers and run tasks in parallel using Puppeteer Cluster.

Chapter 10, Evaluating and Improving the Performance of a Website, shows you how Puppeteer can help developers to evaluate and improve the performance of their sites. We will learn how to extract and analyze all the performance metrics you can see on the Developer Tools. This chapter also has a great introduction to Google Lighthouse and how to automate its reports and integrate them into your tests.

I also want this book to fill your toolbox with more tools besides Puppeteer. During the course of this book, you will learn about other tools, such as GitHub Actions, Visual Studio Code, Checkly and its Puppeteer recorder, and many others.