---
title: Angular UI Testing | Testing Resources
description: Learn more about using Visual UI Testing in combination with Cypress
  to test Angular UI apps.
source_url:
  html: https://testingbot.com/resources/articles/angular-ui-testing
  md: https://testingbot.com/resources/articles/angular-ui-testing.md
---

![Angular UI Testing](https://testingbot.com/assets/resources/articles/21.webp)

# Angular Visual Regression Testing

Learn more about using Visual UI Testing in combination with Cypress to test Angular UI apps.

By [Jochen D.](https://testingbot.com/about/jochen-d)2023-03-26

 Share on Facebook 

 Share on Twitter 

 Post on Reddit 

 Share link 

Visual Comparison Testing with [Angular](https://angular.io/), together with the power of Cypress, is a good method to improve your test suite.

By taking screenshots of your Angular app, you can compare your UI with baseline images. If a screenshot is different from the original screenshot, a (visual) bug could have slipped in your UI.

Using the extensive browser grid of TestingBot, it's possible to test your Angular UI on various browsers and platforms.

## Table of Contents

- [Advantages of Visual Comparison Testing](https://testingbot.com#advantages)
- [Angular Visual Regression Testing with Cypress](https://testingbot.com#angular)
- [Angular Visual UI Testing Example](https://testingbot.com#example)

## Advantages of Visual Comparison Testing

Visual UI testing is a method of taking screenshots, comparing these to baseline images and triggering an error when there's a difference detected.

UI testing can be used as part of your test suite in your CI/CD environment, next to functional tests, unit tests and more.

There are several advantages to using Visual Comparison Testing. Below are the most popular advantages.

- **Automation** : 

These tests are done automatically, which means they can be repeated whenever you want and how many times you like. In combination with a CI/CD system, this is much more efficient than going through every UI change manually.

- **Quality** : 

A pixel comparison algorithm will detect the slightest UI change. Compared with a human tester, the algorithm will detect changes faster and more efficient.

- **Scalability** : 

Because this is an automated verification, you can choose to run the algorithm in parallel on a wide variety of configurations. You can choose to run the checks on different viewport sizes, screen resolutions, operating systems, browsers and (mobile) devices.

## Angular Visual Regression Testing with Cypress

Cypress is a popular test framework, used by developers and QA to write tests in clear syntax.   
 With the power of plugins, Cypress can be extended with various enhancements to improve your test suite.

One plugin is called [cypress-image-snapshot](https://github.com/jaredpalmer/cypress-image-snapshot) which allows you to take screenshots during a Cypress test.

Under the hood, the plugin uses the [jest-image-snapshot](https://github.com/americanexpress/jest-image-snapshot) image diffing logic, which uses [pixelmatch](https://github.com/mapbox/pixelmatch) under the hood.

Once you've used Angular to create your website, you can use Cypress to test the webpages on a variety of browsers, versions and devices.

## Angular Visual UI Testing Example

To get started, let's assume that you have an existing Angular project that you want to test visually. If you don't have an Angular project, you can create one using the Angular CLI by running the following command:

```bash
ng new demo-app
```

Once you have an Angular project, you can add Cypress and cypress-image-snapshot to your project by running the following commands:

```bash
npm install cypress cypress-image-snapshot --save-dev
```

Now that you have Cypress and cypress-image-snapshot installed, you can start writing visual UI tests. Below is an example on how to do visual UI testing with Cypress and cypress-image-snapshot:

```javascript
describe('Visual UI testing', () => {
  it('should check the main page', () => {
    cy.visit('https:/testingbot.com/')
    cy.wait(500) // Wait for UI to settle
    cy.get('body').toMatchImageSnapshot() // Verify screenshot
  })
})
```

The first time that you will run this test, Cypress will take a screenshot of the entire page and save it as a baseline image. On the next run, Cypress will take another screenshot and compare it to the baseline image. If differences are detected, the Cypress test will fail and display a visual diff of the two images. The diff is useful to visually compare what has changed.

Using Cypress in combination with cypress-image-snapshot for visual UI testing is a useful method to ensure that your Angular application's UI remains consistent and bug free.

Visual UI testing can be very beneficial early in the development process, to make sure any visual defects are detected early.

## Sidebar

### TestingBot Cloud Testing

Run automated, manual and visual tests on remote browsers and devices. Sign up for a free trial.

[Free Trial](https://testingbot.com/users/sign_up)

### Latest articles

[![Visual Regression Testing with Python](https://testingbot.com/assets/resources/articles/20-823a333072d87c93f6d75a502e3073e32bd0bee1d3142540ce0b42da6fa7ccf0.webp)](https://testingbot.com/resources/articles/python-visual-testing)

#### [Visual Regression Testing with Python](https://testingbot.com/resources/articles/python-visual-testing)

Find out how to do automated visual UI testing with the p...

[Read article →](https://testingbot.com/resources/articles/python-visual-testing)

[![Android Espresso Tutorial](https://testingbot.com/assets/resources/articles/19-fe4971eb8049097c25f2cc2fce95b71b94f3bb342e094c219b2404c09374f015.webp)](https://testingbot.com/resources/articles/android-espresso-testing)

#### [Android Espresso Tutorial](https://testingbot.com/resources/articles/android-espresso-testing)

Learn more about Android Espresso Testing in this tutorial

[Read article →](https://testingbot.com/resources/articles/android-espresso-testing)

[![Page Object Model (POM) and Page Factory with Appium](https://testingbot.com/assets/resources/articles/18-d5ebe90196feee55fbf779752565bb813e5ff45ba7329882b5bdd38225f35581.webp)](https://testingbot.com/resources/articles/page-object-model-appium)

#### [Page Object Model (POM) and Page Factory with Appium](https://testingbot.com/resources/articles/page-object-model-appium)

Learn more about the Page Object Model and how to use it ...

[Read article →](https://testingbot.com/resources/articles/page-object-model-appium)

## Other Articles

[![Visual Regression Testing with Python](https://testingbot.com/assets/resources/articles/20-823a333072d87c93f6d75a502e3073e32bd0bee1d3142540ce0b42da6fa7ccf0.webp)](https://testingbot.com/resources/articles/python-visual-testing "Visual Regression Testing with Python")

### [Visual Regression Testing with Python](https://testingbot.com/resources/articles/python-visual-testing)

Find out how to do automated visual UI testing with the power of Python and TestingBot.

[Read article →](https://testingbot.com/resources/articles/python-visual-testing)

[![Android Espresso Tutorial](https://testingbot.com/assets/resources/articles/19-fe4971eb8049097c25f2cc2fce95b71b94f3bb342e094c219b2404c09374f015.webp)](https://testingbot.com/resources/articles/android-espresso-testing "Android Espresso Tutorial")

### [Android Espresso Tutorial](https://testingbot.com/resources/articles/android-espresso-testing)

Learn more about Android Espresso Testing in this tutorial.

[Read article →](https://testingbot.com/resources/articles/android-espresso-testing)

[![Page Object Model (POM) and Page Factory with Appium](https://testingbot.com/assets/resources/articles/18-d5ebe90196feee55fbf779752565bb813e5ff45ba7329882b5bdd38225f35581.webp)](https://testingbot.com/resources/articles/page-object-model-appium "Page Object Model (POM) and Page Factory with Appium")

### [Page Object Model (POM) and Page Factory with Appium](https://testingbot.com/resources/articles/page-object-model-appium)

Learn more about the Page Object Model and how to use it with Appium.

[Read article →](https://testingbot.com/resources/articles/page-object-model-appium)

[![Getting Started with Appium](https://testingbot.com/assets/resources/articles/17-0f1ccf4b98b8ad7a8deb4040a2d3f04ef1131418471be27b1c7d0b1b758880eb.webp)](https://testingbot.com/resources/articles/getting-started-with-appium "Getting Started with Appium")

### [Getting Started with Appium](https://testingbot.com/resources/articles/getting-started-with-appium)

Learn how to use Appium for automated testing. We will provide some tips and tricks, performance optimizations and ways to use Appium Inspector to troubleshoot your native mobile app testing.

[Read article →](https://testingbot.com/resources/articles/getting-started-with-appium)

## Ready to start testing?
[Start a free trial](https://testingbot.com/users/sign_up)
