Performance Regression testing

 

What is Reassure

  • Write maintainable performance tests for your React Native apps
  • Extend your existing RNTL tests into performance tests easily
  • Supported by React Native community and its core contributors

Importance of testing

Types of tests

  • Unit tests - tests individual components in isolation
  • Integration testing - test interaction between interconnected components/systems
  • E2E testing - tests the whole application
  • Performance Testing - testing the speed, stability, and responsiveness of app under a certain workload
  • Snapshot testing - captures of 'snapshot' of UI component and compares it
  • Regression Testing - Testing existing software functionalities after changes

Where does Reassure fit?

Intersection of Performance testing, Regression testing and snapshot testing

What Reassure can do?

Reassure works by measuring render characteristics – duration and count – of the testing scenario you provide and comparing that to the stable version. It repeats the scenario multiple times to reduce the impact of random variations in render times caused by the runtime environment. Then it applies statistical analysis to figure out whether the code changes are statistically significant or not. As a result, it generates a human-readable report summarizing the results and displays it on the CI or as a comment to your pull request.

Setting it up

yarn add --dev reassure
//jest.setup.ts

configure({testingLibrary: 'react-native'});

Run it with

yarn reassure

Set up initial baseline

yarn reassure --baseline

This will write baseline.perf file against which it will compare in subsequent runs

yarn reassure

Let's get into the code

Resources

Performance Regression testing with Reassure

By Vladimir Novick

Performance Regression testing with Reassure

  • 153