This is the next post of our blog series where we introduce the capabilities of the Piwik platform (our previous post was How to create a command). This time you’ll learn how to generate test data.

Developers are developing on their local Piwik instance which usually does not contain useful data compared to a real Piwik installation in production (only a few test visits and a few tests users and websites). The ‘VisitorGenerator’ plugin lets you generate any number of visits, websites, users, goals and more. The generator makes sure there will be data for each report so you can easily test anything.

Getting started

In this series of posts, we assume that you have already installed Piwik. If not, visit the Piwik Developer Zone where you’ll find the Installation guide for developers.

Installing the VisitorGenerator plugin

The easiest way to install the plugin is by using the Marketplace in Piwik itself. It is accessible via Settings => Marketplace => Get new functionality. There you’ll find the plugin “VisitorGenerator” which you can install and activate in one click.

If your Piwik instance is not connected to the internet you can download the plugin from the VisitorGenerator page on the Marketplace. Afterwards you can install the plugin by going to Settings => Marketplace => Uploading a plugin and uploading the previously downloaded ZIP file.

If you have already installed the plugin make sure it is activated by going to Settings => Plugins.

Generating websites

After you have installed the plugin you can add as many websites as you need. This is useful for instance when you want to test something that affects many websites such as the ‘All Websites’ dashboard or the Websites manager. To generate any number of websites use the following command:

./console visitorgenerator:generate-website --limit=10

This will generate 10 websites. If you need more websites simply specify a higher limit. In case you are wondering the names and URLs of the websites are randomly generated by the Faker PHP library.

Generating goals

In case you want to test anything related to Goals you should execute the following command:

./console visitorgenerator:generate-goals --idsite=1

This will generate a few goals for the specified site. The generated goals are defined in a way to make sure there will be conversions when generating the visits in the next step.

Generating visits

To generate visits there are two possibilities. Either via the Piwik UI by going to Settings => Visitor Generator or by using the command line. The UI is a bit limited in generating visits so we recommend to use the command line. There you can generate visits as follows:

./console visitorgenerator:generate-visits --idsite=1

This will generate many different visits for the current day. Don’t worry if it takes a while, it will insert quite a few visits by default.

In case you want to generate visits for multiple days in the past as well you can specify the --days option.

./console visitorgenerator:generate-visits --idsite=1 --days=5

Providing your own logs

Half of the generated visits are randomly generated and half of the visits are based on real logs to make sure there is data for each report. If you want to generate visits based on your own logs for a more realistic testing just place your log files in the plugins/VisitorGenerator/data folder and make sure the file name ends with .log. You can find a few examples in the VisitorGenerator data folder.

To generate visits based only on real log files then use the --no-fake option.

./console visitorgenerator:generate-visits --idsite=1 --no-fake

All generated visits will come from the logs and no random visits nor random fake data will be used.

Advanced features

We are regularly adding new commands, tools and runtime checks to make your life as a developer easier. For instance you can also generate users and annotations. In the future we want to extend the plugin to create visits in the background to make sure there will be constantly new actions in the real time report.

Are you missing any kind of generator or any other feature to make your life as a developer easier? Let us know by email, we are listening!

Would you like to know more about the Piwik platform? Go to our Piwik Developer Zone where you’ll find guides and references on how to develop plugin and themes.


Thomas Steur

Thomas is a Lead developer for Piwik. He created and maintains our Piwik Mobile app used by dozens of thousands users every week. Thomas has a passion for making Piwik mobile better and improving the Piwik platform by providing simple APIs and clean code.


Any questions?

Many answers and more information about Piwik You can find here:

We are social

Follow us: