benchpress icon indicating copy to clipboard operation
benchpress copied to clipboard

looser coupling between running and reporting UIs

Open jeffbcross opened this issue 11 years ago • 3 comments

Currently, the build process compiles the markup from main.html with the benchpress harness html in template.html, outputting it as a single index.html in the build folder. Because the code under test and the reporting UI are all in the same context, certain constraints are placed on the reporting UI that make it difficult to make great. For example:

  • The reporting app can't be an Angular app, because it can't rely on a certain version of Angular being loaded, which adds up to a lot of imperative JavaScript to make the UI interactive. This also makes testing of the app difficult.
  • Same with using other libraries like jQuery, bootstrap, etc.
  • CSS used for the reporting dashboard is also applied to the markup under test, potentially impacting performance

It would make the development experience of benchpress better if the benchmark code could be executed in an iframe with only the code under test + more limited version of the bp.js lib. This would require a more intelligent server component to run the benchmarks, which could manage messaging between the runner and the reporting app.

jeffbcross avatar Aug 18 '14 18:08 jeffbcross

Jeff, I already set up an external server for this (for AngularDart) which is agnostic to the repo or the frontend.  Let's talk on using that one – or upgrading it to support these use cases.

chirayuk avatar Nov 10 '14 21:11 chirayuk

Can you point me to the source for this?

jeffbcross avatar Nov 10 '14 22:11 jeffbcross

Per some discussion with @tbosch yesterday, the reporting/control application should by default execute the benchmarks in an iframe, but should give the user the option of running each new run (not each sample) in its own new incognito window.

jeffbcross avatar Dec 10 '14 17:12 jeffbcross