What you’ll learn

In a nutshell

Cypress is a next generation front end testing tool built for the modern web. We address the key pain points teams face when testing modern applications and maintaining test suites.

Our users are typically developers, QA engineers, and teams looking to build web applications and increase the quality of their existing applications.

Cypress provides solutions for:

Cypress can test anything that runs in a browser and surface insights into how to improve the health of your test suite and the quality of your application.

Products

Cypress is a robust solution that can improve the quality of your application.

Features

Below are listed some of the key features of each product.

Cypress App

Cypress Cloud

UI Coverage

Cypress Accessibility

Solutions

Cypress can be used to ensure several different types of test. This can provide even more confidence that your application under test is working as intended and accessible to all users.

End-to-end Testing

Cypress was originally designed to run end-to-end (E2E) tests on anything that runs in a browser. A typical E2E test visits the application in a browser and performs actions via the UI just like a real user would.

it('adds todos', () => {
cy.visit('https://example.cypress.io/')
cy.get('[data-cy="new-todo"]').type('write tests{enter}')
// confirm the application is showing one item
cy.get('[data-cy="todos"]').should('have.length', 1)
})

Component Testing

Cypress Component Testing provides a component workbench for you to quickly build and test components from multiple front-end UI libraries — no matter how simple or complex.

Learn more about how to test components for ReactAngularVue, and Svelte.

import Button from './Button'

it('uses custom text for the button label', () => {
cy.mount(<Button>Click me!</Button>)
// Assert that a button component has the correct text
cy.get('button').should('contains.text', 'Click me!')
})

Accessibility Testing

You can write Cypress tests to check the accessibility of your application, and use plugins to run broad accessibility scans. When combined with Cypress Accessibility in Cypress Cloud, insights can be surfaced when specific accessibility standards are not met through your testing – with no configuration required. See our Accessibility Testing guide for more details.

it('adds todos', () => {
cy.visit('https://example.cypress.io/')
cy.get('img#logo')
// Assert that an image has the correct alt text
.should('have.attr', 'alt', 'Cypress Logo')
})
A graphic showing the Cypress Accessibility dashboard including list of rules, views, and the user interface showing how devtools can be used

UI Coverage

You can increase release confidence by closing testing gaps in critical app flows using UI Coverage. Leverage data-driven insights to cover untested areas, reduce incidents, and improve app quality.

UI Coverage demo showing UI of Cloud product

Other

Cypress can perform arbitrary HTTP calls, thus you can use it for API testing.

it('adds a todo', () => {
cy.request('POST', '/todos', { title: 'Write API Tests' })
.its('body')
.should('contain', { title: 'Write API Tests' })
})

And through a large number of official and 3rd party plugins you can write many other types of tests!

Our mission

Our mission is to build a thriving testing solution that enhances productivity, makes testing an enjoyable experience, and generates developer happiness. We hold ourselves accountable to champion a testing process that actually works.

We believe our documentation should be approachable. This means enabling our readers to understand fully not just the what but the why as well.

We want to help developers build a new generation of modern applications faster, better, and without the stress and anxiety associated with managing tests. We aim to elevate the art of software development by leveraging test results to generate actionable insights for long-term stability by proactively identifying areas for improvement.

We know that in order for us to be successful we must enable, nurture, and foster an ecosystem that thrives on open source. Every line of test code is an investment in your codebase, it will never be coupled to us as a paid service or company. Tests will be able to run and work independently, always.

We believe testing needs a lot of ❤️ and we are here to build a tool, a service, and a community that everyone can learn and benefit from. We’re solving the hardest pain points shared by every developer working on the web. We believe in this mission and hope that you will join us to make Cypress a lasting ecosystem that makes everyone happy.

One Response

Leave a Reply

Your email address will not be published. Required fields are marked *