Skip to content
loadtestgo edited this page May 27, 2017 · 8 revisions

Q: Can I setup a Continuous Integration (CI) job to show performance over time?

For sure. Check out the Jenkins-Setup. Bamboo probably works very similar to this but we haven't tried yet.

Q: How does this project differ from Selenium / WebDriver?

The main thing is PizzaScript captures page load performance metrics and can modify/examine HTTP requests during the test. You could use a proxy with Selenium to do this, but doing so can cause subtle changes to how requests are made (e.g. packet timings, http concurrency, http headers, http version, SSL protocol).

Other differences include:

  • The PizzaScript API is simple and use case driven. We want you to be able write tests without the API getting in your way. We're not trying to make the API overly Object Orientated, or limiting what you can automate to what a real user would do.
  • It works with modern dynamic apps without requiring complex wait logic and retry wrapper functions.
  • You can trigger script failures on HTTP status codes.
  • The source code is much much smaller and much more understandable.
  • Element visibility errors are more detailed, making certain failures easier to debug.
  • There's a built-in IDE for debugging and running scripts.

There are things Selenium does better though, not least of which is its compressive browser support. If you want to run scripts on a wide range of browser Selenium based testing is a better choice.

Q: Is there a script recorder?

There's an IDE for writing and debugging scripts. CSS selectors can be generated for HTML elements by clicking on them. This makes it very efficient to write scripts once you have a basic understanding of the API.

Q: What browsers are supported?

Currently only Chrome is supported.

Q: When does PizzaScript consider a page loaded

Basically when the spiny icon in the browser stops spinning.

More technically (but still not the whole story by a long shot unfortuantly), there two states that happen in order:

  1. domComplete

    All javascript / css / images currently known about are downloaded and parsed.

  2. onload

    All JavaScript code currently known about is downloaded, parsed, executed for the first time, any onload callbacks are complete.

    The 'currently known about' can be the kicker, as some http items (especially 3rd party content) can reference other further http items. There can also be timing issues where sometimes the last onload callback is executed before others get a chance to register their own onload callbacks and sometimes it isn't.

Clone this wiki locally