Backend: An App Engine app for storing test run metadata and serving HTML
Frontend: Polymer elements for loading and visualizing test results
Setting up your environment
You'll need Docker. With Docker installed, build the base image and development image, and start a development server instance:
docker build -t wptd-dev . ./util/docker-dev/run.sh
This starts a Docker instance named
Once the instance is running, you can fire up the web server in another terminal:
This will build dependencies and start the Google App Engine development server inside
With the webserver running, you'll also need to populate the app datastore with some initial data. In another terminal,
execute the script which leverages
util/populate_dev_data.go by running:
See CONTRIBUTING.md for more information on local development.
Filesystem and network output
- This script will only write files under
- One run will write approximately 111MB to the filesystem.
- If --upload is specified, it will upload that 111MB of results to GCS.
- To upload results, you must be logged in with
Using the data
All test result data is public. Please use our APIs to explore the data. For example, use the results API to download result summaries, and use the runs API to query runs and their metadata, which include links to other data like raw full reports.
There is no public API for TestRuns, so if you need to access only the most recent results, looking at the main page will give you the latest test SHAs. If you need to access earlier results, an exhaustive search is the only way to do that (see issue #73 and #43).
WPT documentation page for each browser
- Chromium: https://chromium.googlesource.com/chromium/src/+/master/docs/testing/web_platform_tests.md
- Firefox: https://wiki.mozilla.org/Auto-tools/Projects/web-platform-tests
- WebKit: https://trac.webkit.org/wiki/WebKitW3CTesting
Location of the WPT in each browser’s source tree
You can run almost any WPT test on w3c-test.org
This doesn't work with some HTTPS tests. Also be advised that the server is not intended for frequent large-scale test runs.
Sources of inspiration
- ECMAScript 6 compatibility table - https://kangax.github.io/compat-table/es6/
These are the keys in
webapp/browsers.json. They're used to identify a tuple (browser name, browser version, os name, os version).