WebPageTest
This is the official repository for the performance-testing code that runs at webpagetest.org.
- 🥡 Install your own instance
- 📕 Documentation
- 🕒 Changelog
- 🌐 Cross-platform browser agent
- WPT website global header repo and documentation
- 💤 REST API examples:
- 🐘
/bulktest
: A PHP command-line tool that can submit a bulk set of tests, gather the results, and aggregate analyses. - 🐍
/batchtool
: A Python tool that can submit a bulk set of tests and gather the results.
- 🐘
Troubleshooting private instances
If your instance runs, but you’re having issues configuring agents, navigate to http://{your_instance’s_ip}/install
to check for a valid configuration.
Testing
WebPageTest uses PHPUnit for unit tests. To set up and run the unit tests:
- Install Composer
- Install apcu
- Add the line
apc.enable_cli='on'
to your php.ini - Run
composer install
- Run
composer test
Contributing
There are separate lines of development under different licenses (pull requests accepted to either):
- The
master
branch where most active development occurs has the Polyform Shield 1.0.0 license - The
apache
branch has the more permissive Apache 2.0 license
Code style
WebPageTest uses PSR12 coding conventions for PHP linting and formatting. For JavaScript and CSS formatting we use Prettier with its default configuration. Additionally we use Stylelint for CSS linting.
Before you send a pull request please make sure to run: composer lint && composer format
.
Alternatively you can run
composer lint:php && composer format:php
if you only touched PHP code, orcomposer lint:css && composer format:prettier
if you only touched CSS or JavaScript code
VSCode integration
If you use VSCode you might find it helpful to install Prettier and PHP Intelephence plugins and use these in your “settings.json”:
{
"[php]": {
"editor.tabSize": 4
},
// uncomment to reformat on every file save
//"editor.formatOnSave": true,
"phpcs.standard": "PSR12",
"files.trimTrailingWhitespace": true,
"files.eol": "\n",
"files.associations": {
"*.inc": "php"
}
}