filiphric / cypress-plugin-api

Cypress plugin to show your API information in the Cypress UI runner
ISC License
264 stars 35 forks source link

Test run crashes and performance issues when plugin API is rendered during 'run mode' in CI #135

Open jennifer-shehane opened 1 month ago

jennifer-shehane commented 1 month ago

We identified an issue with a customer of ours where the performance of their test run is impacted when using the cypress-plugin-api plugin - specifically the browser renderer crashes. The performance issue is more pronounced when recording with Test Replay, since Cypress is capturing the entirety of the DOM from the cypress-plugin-api plugin that is rendered (like the entire response body within prism.js).

There is no value in rendering the entirety of the UI during run mode / during CI - as noted in this issue you opened previously. The user cannot interact with it during the run and they cannot interact with it when reviewing test Replay. This rendering DOES impact performance of the test run as the browser resources have to render.

I also wanted to link to this performance issue as we feel it's likely related.

Ask

It would be great if these hidden HTML elements were not rendered during run mode. You could also offer a flag to turn this off conditionally, as this rendering still impacts performance during open mode as well. Ideally, this UI would have some sort of virtual rendering where it renders on 'click' so that it does not impact performance of Cypress in any situation.

Let us know if you need any additional information and if any next steps are planned here. Thanks!