Periodic Builds constitute a unique Synthetic Monitoring technique.
They allow you to simulate regularly a given set of actions or path that an end-user
would take on your site. Each scenario step triggering back-end code execution
(PHP or Python) automatically generates a profile of that code.
Each profile is being tested against your custom assertions as well as Blackfire
Only publicly accessible websites can be targeted by Blackfire to run scheduled scenarios. As such you need to properly configure your environment by setting an accessible endpoint.
This can be done in the Settings tab of your environment.
If your environment is configured as a development environment, you may need to use our SDK.
Please note that, for now, only the PHP SDK enables you to trigger builds.
There are 2 ways to configure periodic builds:
You then need to enable the periodic builds:
Builds can be run in the following intervals (only one can be chosen):
You may specify advanced settings such as:
This is the simplest way to start periodic builds.
In your Environment Dashboard, scroll down until you see the
Configuration panel, and click on the edit icon to add URLs to test:
The tests defined in your .blackfire.yaml file will be run for each configured URL.
If no tests are defined, Blackfire will only evaluate recommendations. However, these recommendations will not make your build fail.
In this mode, you are only able to test URLs using HTTP
The most comprehensive way to run builds is to define your scenarios in your .blackfire.yaml file.
Writing scenarios gives you total control over the test browser behavior, to use other HTTP methods than GET, to click on buttons, and to check elements in resulted pages (JSON and HTML are supported).
When using builds, it is possible to compare one build to another, with the help of percent() and diff() functions in your assertions.
The comparison is always made between the current build and a reference build. As for periodic builds, the reference build is the last successful build in the same environment.