You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Websites/perf.webkit.org/ReadMe.md
+21-19
Original file line number
Diff line number
Diff line change
@@ -2,22 +2,22 @@
2
2
3
3
The WebKit performane dashboard is a website to track various performance metrics of WebKit: https://perf.webkit.org/
4
4
5
-
## Checking Out the Code and Installing Required Applications
5
+
## 1. Checking Out the Code and Installing Required Applications
6
6
7
7
The instructions assume you're using macOS as the host server and installing this application at `/Volumes/Data/perf.webkit.org`.
8
8
9
9
You can choose between using Server.app or install the required tools separately.
10
10
11
-
1. Install Server.app (if you don't want to use Server.app, install PostgreSQL: http://www.postgresql.org/download/macosx/)
11
+
1. Install Server.app but do **NOT** launch/open it. (if you don't want to use Server.app, install PostgreSQL: http://www.postgresql.org/download/macosx/)
12
12
2. Install node.
13
13
3. Install Xcode with command line tools (only needed for svn)
14
14
4.`svn co https://svn.webkit.org/repository/webkit/trunk/Websites/perf.webkit.org /Volumes/Data/perf.webkit.org`
15
15
5. Inside `/Volumes/Data/perf.webkit.org`, run `npm install pg` and `mkdir -m 755 public/data/`
16
16
17
-
## Testing Local UI Changes with Production Data
17
+
## 2. Testing Local UI Changes with Production Data
18
18
19
19
The front end has the capability to pull data from a production server without replicating the database locally on OS X Yosemite and later.
20
-
To use this feature, modify `config.json`'s `remoteServer` entry so that "remoteServer.url" points to your production server,
20
+
To use this feature to test local UI changes, modify `config.json`'s `remoteServer` entry so that "remoteServer.url" points to your production server,
21
21
and "remoteServer.basicAuth" specifies the username and the password that is used by the production sever.
22
22
23
23
Remove "basicAuth" entry for production servers that doesn't require a basic authentication (e.g. perf.webkit.org).
@@ -37,18 +37,20 @@ Then run `tools/remote-cache-server.py start`. This launches a httpd server on p
37
37
The script caches remote server's responses under `public/data/remote-cache` and never revalidates them (to allow offline work).
38
38
If you needed the latest content, delete caches stored in this directory by running `tools/remote-cache-server.py reset`.
39
39
40
-
## Running Tests
40
+
## 3. Running Tests
41
41
42
42
There are three kinds of tests in directories of the same name: `unit-tests`, `server tests`, and `browser-tests`.
43
43
44
44
-`unit-tests`: These tests various models and common JS code used in v3 UI and tools. They mock JSON APIs and model object.
45
45
-`server-tests`: Server tests use a real Apache server in accordance with `testServer` in `config.json` and a Postgres database by the name of `testDatabaseName` specified in `config.json`. They're functional tests and may test both the backend database schema, PHP, and corresponding front-end code although many of them directly queries and modifies the database.
46
46
-`browser-tests`: These are tests to be ran inside a Web browser, and tests v3 UI's interaction with browser's DOM API.
47
47
48
-
To run `unit-tests` and `server-tests`, simply run `./tools/run-tests.py` after installing dependencies and configuring the PostgreSQL.
48
+
To run `unit-tests` and `server-tests`, simply run `./tools/run-tests.py` after installing dependencies (1) and configuring the PostgreSQL (4).
49
+
If you've previously setup a remote cache server (3), then you have to stop the server before running the tests.
50
+
49
51
To run `browser-tests`, open `browser-tests/index.html` inside a Web browser.
50
52
51
-
## Configuring PostgreSQL
53
+
## 4. Configuring PostgreSQL
52
54
53
55
Run the following command to setup a Postgres server at `/Volumes/Data/perf.webkit.org/PostgresSQL` (or wherever you'd prefer):
@@ -76,17 +78,10 @@ Use `pg_dump` and `pg_restore` to backup and restore the database. If you're rep
76
78
- Making an abridged backup without `run_iterations` table: `/Applications/Server.app/Contents/ServerRoot/usr/bin/pg_dump -h localhost webkit-perf-db --format=directory --jobs=4 --no-owner --compress=7 --exclude-table=run_iterations --file=<path to backup directory>`
77
79
78
80
- Restoring the database: `/Applications/Server.app/Contents/ServerRoot/usr/bin/pg_restore --format=directory --jobs=4 --no-owner --host localhost --username=webkit-perf-db-user --dbname=webkit-perf-db <path to backup directory>`
79
-
80
-
## Configuring Apache
81
-
82
-
### Instructions if you're using Server.app
83
81
84
-
- Enable PHP web applications
85
-
- Go to Server Website / Store Site Files In, change it to `/Volumes/Data/perf.webkit.org/public/`
86
-
- Go to Server Website / Edit advanced settings, enable Allow overrides using .htaccess files
87
-
- httpd config file is located at `/Library/Server/Web/Config/apache2/sites/0000_any_80.conf` (and/or 0000_any_`PORT#`.conf)
82
+
## 5. Configuring Apache
88
83
89
-
### Instructions if you're not using Server.app
84
+
### Instructions if you've never launched Server.app as instructed
90
85
91
86
- Edit `/private/etc/apache2/httpd.conf`
92
87
@@ -100,6 +95,13 @@ Use `pg_dump` and `pg_restore` to backup and restore the database. If you're rep
100
95
- In El Capitan and later, you may need to comment out the `LockFile` directive in `/private/etc/apache2/extra/httpd-mpm.conf`
101
96
as the directive has been superseded by `Mutex` directive.
102
97
98
+
### Instructions if you've accidentally launched Server.app
99
+
100
+
- Enable PHP web applications
101
+
- Go to Server Website / Store Site Files In, change it to `/Volumes/Data/perf.webkit.org/public/`
102
+
- Go to Server Website / Edit advanced settings, enable Allow overrides using .htaccess files
103
+
- httpd config file is located at `/Library/Server/Web/Config/apache2/sites/0000_any_80.conf` (and/or 0000_any_`PORT#`.conf)
104
+
103
105
### Starting Apache
104
106
105
107
You can use apachectl to start/stop/restart apache server from the command line:
@@ -149,7 +151,7 @@ AuthUserFile "<Realm>"
149
151
Require valid-user
150
152
```
151
153
152
-
## Concepts
154
+
## 6. Concepts
153
155
154
156
-**Test** - A test is a collection of metrics such as frame rate and malloced bytes. It can have a children and a parent and form a tree of tests.
155
157
-**Metric** - A specific metric of a test such as frame rate, runs per second, and time. The list of supported metrics are:
@@ -180,7 +182,7 @@ Require valid-user
180
182
181
183
See [init-database.sql](init-database.sql) for the complete database schema.
182
184
183
-
## Data Models for Test Results
185
+
## 7. Data Models for Test Results
184
186
185
187
In the performance dashboard, each test can have a parent test or arbitrary many child tests or subtests. Each test can then have multiple metrics to measure a specific unit'ed value. For example, Speedometer benchmark has the top level score, which is computed by the total time of running subtests. As such, the top level test has two metrics: *Score* and *Time* which is the aggregated total sum of *Time* metrics of the subtests:
186
188
@@ -219,7 +221,7 @@ Each *test run* are related to one another via *builds* which is uniquely identi
219
221
+ Iteration 2: 395
220
222
+ ...
221
223
222
-
## Reporting Results
224
+
## 8. Reporting Results
223
225
224
226
To submit a new *build*, or a set of data points to an instance of the performance dashboard, you need to do the following:
0 commit comments