How to Empower Continuous Testing with Puppeteer
Send me Nitor Infotech's Monthly Blog Newsletter!
×
nitor logo
  • Company
    • About
    • Leadership
    • Partnership
  • Resource Hub
  • Blog
  • Contact
nitor logo
Add more content here...
Artificial intelligence Big Data Blockchain and IoT
Business Intelligence Careers Cloud and DevOps
Digital Transformation Healthcare IT Manufacturing
Mobility Product Modernization Software Engineering
Thought Leadership
Aastha Sinha Abhijeet Shah Abhishek Suranglikar
Abhishek Tanwade Abhishek Tiwari Ajinkya Pathak
Amit Pawade Amol Jadhav Ankita Kulkarni
Antara Datta Anup Manekar Ashish Baldota
Chandra Gosetty Chandrakiran Parkar Deep Shikha Bhat
Dr. Girish Shinde Gaurav Mishra Gaurav Rathod
Gautam Patil Harish Singh Chauhan Harshali Chandgadkar
Kapil Joshi Madhavi Pawar Marappa Reddy
Milan Pansuriya Minal Doiphode Mohit Agarwal
Mohit Borse Nalini Vijayraghavan Neha Garg
Nikhil Kulkarni Omkar Ingawale Omkar Kulkarni
Pooja Dhule Pranit Gangurde Prashant Kamble
Prashant Kankokar Priya Patole Rahul Ganorkar
Ramireddy Manohar Ravi Agrawal Robin Pandita
Rohan Chavan Rohini Wwagh Sachin Saini
Sadhana Sharma Sambid Pradhan Sandeep Mali
Sanjeev Fadnavis Saurabh Pimpalkar Sayanti Shrivastava
Shardul Gurjar Shravani Dhavale Shreyash Bhoyar
Shubham Kamble Shubham Muneshwar Shubham Navale
Shweta Chinchore Sidhant Naveria Souvik Adhikary
Sreenivasulu Reddy Sujay Hamane Tejbahadur Singh
Tushar Sangore Vasishtha Ingale Veena Metri
Vidisha Chirmulay Yogesh Kulkarni
Software Engineering | 26 Aug 2022 |   10 min

How to Empower ‘Continuous Testing’ with Puppeteer

featured image

When it comes to test automation, Selenium is the only tool in the open-source space which relies on executing JavaScript inside the browser. It has largely helped companies achieve good coverage of automation. However, in most cases, there are concerns due to its flakiness, synchronization, and speed.

However, testing types and tools are evolving with rise of Node platform and JavaScript based apps. New development frameworks with inbuilt support of testing libraries (For e.g.: Jest for React, Protractor for Angular etc.) are the order of the day. Additionally, multiple libraries for continuous testing as well as end-to-end UI testing are surfacing, such as PhantomJS, Puppeteer, Cypress, PollyJS.

Among these, Puppeteer has opened new possibilities in the realm of test automation with exposure to Chrome Dev Tools API. Today when it comes to automated web testing, Selenium & Puppeteer are two names that come to the fore- the latter making all the noise for the right reasons.

In this blog, I will introduce you to Puppeteer and shed light on how you can leverage it to transform the process continuous testing.

What exactly is Puppeteer?

Puppeteer is a Node library used to enable Chrome browser testing. In other words, Puppeteer runs headless Chrome or Chromium instances by default, which is why they are always mentioned in tandem. Nowadays, with the dominant use of SaaS based applications, Puppeteer-based testing holds a pivotal place.

Puppeteer provides a simple API to control Chromium instances. Through it, common tasks such as typing inputs, clicking buttons, testing usability of web pages, and even web scraping can be carried out easily. Puppeteer is a Chrome team official platform, and uses the Chrome Remote Debug Protocol, just as with Chrome Dev Tools. This library supports modern JavaScript syntax available in Google Chrome.

How can you get started with Puppeteer?

Installation

To use Puppeteer in your project, run: npm i puppeteer# or “yarn add puppeteer”

You should note that when you install Puppeteer, it downloads a recent version of Chromium (~170MB Mac, ~282MB Linux, ~280MB Win), a guaranteed API fit.

Environment Variables

Puppeteer looks for certain environment variables to aid its operations. If these variables aren’t found in the environment during the installation step, a lower cased variant of these variables will be used from the npm config.

  • HTTP_PROXY, HTTPS_PROXY, NO_PROXY – Use this to define HTTP proxy settings and to download & run Chromium
  • PUPPETEER_SKIP_CHROMIUM_DOWNLOAD – Do not download bundled Chromium during installation step
  • PUPPETEER_DOWNLOAD_HOST – Overwrite URL prefix used to download Chromium

At this juncture, you should note that this includes the protocol and might even include path prefix. It defaults to https://storage.googleapis.com.

  • PUPPETEER_CHROMIUM_REVISION – Specify a certain version of Chromium you’d like Puppeteer to use.
  • PUPPETEER_EXECUTABLE_PATH – Specify an executable path to be used in puppeteer.launch.

Now, you need to be aware about the fact that Puppeteer is only guaranteed to work with the bundled Chromium, so make sure to use at your own risk.

Puppeteer-core

Since version 1.7.0, we publish the puppeteer-core package, a version of Puppeteer that does not download Chromium by default. The npm i puppeteer-core# or “yarn add puppeteer-core” Puppeteer-core is intended to be a lightweight version of Puppeteer. You can use it either to launch an existing browser installation or to connect to a remote one.

It is important to check that the version of puppeteer-core you install is compatible with the browser you intend to connect.

What are the Features of Puppeteer?

While Puppeteer’s ability to launch a headless browser is one feature that has gained it some fame, that is not the only feature which makes it a go-to-choice for test automation. It also has other unique features that make it enhance the software testing process, let’s take a quick look at some of them.

Easy Automation:  While there are other tools that can be used for web automation, Puppeteer comes out on top. This is because it works best for one browser only – the Headless Chrome browser, therefore it carries out web automation tasks in the most efficient way possible. Puppeteer is also compatible with popular unit testing libraries such as Mocha and Jasmine.

Screenshot Testing:  This is a vital feature for any automated web testing task. Screenshots help keep track of the result of interactions with elements on a web page. Libraries such as Puppeteer-screenshot tester also exist in Puppeteer that allow the comparing of screenshots generated while testing. Besides generating test screenshots, Puppeteer can also help generate PDFs from tested web pages.

Performance Testing:  Chrome provides De Tools that allows the recording of the performance timeline of web pages, and Puppeteer takes advantage of this too. With Puppeteer, timeline traces of websites can be captured to examine performance issues. Due to the Puppeteer’s high-level API control over Chrome Developers Tools Protocol, it gives users the ability to control service workers and test caching of websites.

As you can see, Puppeteer is all set to the transform the era of automated testing. The success of Puppeteer with Chrome cannot be reduced only to its efficiency; the fact that it is Google-backed is also the reason why it has been accepted and recognized globally. Additionally, this software offers a high-level API to control the Chrome browser via the Dev Tools protocol. Leveraging Puppeteer for automation, we can develop solutions to solve problems, whether it is for quality assurance, productivity enhancements or data aggregation.

The foundation of success in today’s digital world lies in successful adoption of agile principles and DevOps processes, which are in turn dependent on faster and reliable feedback from testing pipeline.

Reach out to us to learn more about software testing and read our performance testing capability document to learn how we helped a client conduct performance testing for a healthcare application.

Related Topics

Artificial intelligence

Big Data

Blockchain and IoT

Business Intelligence

Careers

Cloud and DevOps

Digital Transformation

Healthcare IT

Manufacturing

Mobility

Product Modernization

Software Engineering

Thought Leadership

<< Previous Blog fav Next Blog >>
author image

Anup Manekar

Associate Director

Anup is an accomplished Tech-Functional Manager with 13+ years of experience and proven expertise in software design, development and testing on various technology platforms and business domains.

   

You may also like

featured image

10 Heuristic Principles in UX Engineering

Say, you’ve built a modern, cutting-edge application. It has a complex, multi-layered user interface (UI), that is the basis for some amazing features. Since you’re the one who has built the applic...
Read Blog


featured image

ETL Testing: A Detailed Guide

Just in case the term is new to you, ETL is defined from data warehousing and stands for Extract-Transform-Load. It covers the process of how the data is loaded from the multiple source system to t...
Read Blog


featured image

Getting Started with ArcGIS Online

GeoServer is an open-source server that facilitates the sharing, processing and editing of geospatial data. When we are dealing with a large set of geospatial d...
Read Blog


subscribe

Subscribe to our fortnightly newsletter!

We'll keep you in the loop with everything that's trending in the tech world.

Services

    Modern Software Engineering


  • Idea to MVP
  • Quality Engineering
  • Product Engineering
  • Product Modernization
  • Reliability Engineering
  • Product Maintenance

    Enterprise Solution Engineering


  • Idea to MVP
  • Strategy & Consulting
  • Enterprise Architecture & Digital Platforms
  • Solution Engineering
  • Enterprise Cognition Engineering

    Digital Experience Engineering


  • UX Engineering
  • Content Engineering
  • Peer Product Management
  • RaaS
  • Mobility Engineering

    Technology Engineering


  • Cloud Engineering
  • Cognitive Engineering
  • Blockchain Engineering
  • Data Engineering
  • IoT Engineering

    Industries


  • Healthcare
  • Retail
  • Manufacturing
  • BFSI
  • Supply Chain

    Company


  • About
  • Leadership
  • Partnership
  • Contact Us

    Resource Hub


  • White papers
  • Brochures
  • Case studies
  • Datasheet

    Explore More


  • Blog
  • Career
  • Events
  • Press Releases
  • QnA

About


With more than 16 years of experience in handling multiple technology projects across industries, Nitor Infotech has gained strong expertise in areas of technology consulting, solutioning, and product engineering. With a team of 700+ technology experts, we help leading ISVs and Enterprises with modern-day products and top-notch services through our tech-driven approach. Digitization being our key strategy, we digitally assess their operational capabilities in order to achieve our customer's end- goals.

Get in Touch


  • +1 (224) 265-7110
  • marketing@nitorinfotech.com

We are Social 24/7


© 2023 Nitor Infotech All rights reserved

  • Terms of Usage
  • Privacy Policy
  • Cookie Policy
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it. Accept Cookie policy