startOnWebpageTest(apiKey, testUrl, pingback) {
    const params = new URLSearchParams();
    params.set('k', apiKey);
    params.set('f', 'json');
    params.set('pingback', pingback); // The pingback is passed an "id" parameter of the test.
    // TODO: match emulation to LH settings.
    params.set('location', 'Dulles_Nexus5:Nexus 5 - Chrome Beta.3G_EM');
    // For native: Dulles_Linux:Chrome.Native
    // params.set('location', 'Dulles_MotoG4:Moto G4 - Chrome Beta.3GFast');
    params.set('mobile', 1); // Emulate mobile (for desktop cases).
    params.set('type', 'lighthouse'); // LH-only run.
    params.set('lighthouse', 1);
    params.set('url', testUrl);

    const wptUrl = new URL('https://www.webpagetest.org/runtest.php');
    wptUrl.search = params;

    return fetch(wptUrl.toString())
      .then(resp => resp.json())
      .catch(err => {
        throw err;
      });
  }
Uses WebPageTest's Rest API to run Lighthouse and score a URL.
See https://sites.google.com/a/webpagetest.org/docs/advanced-features/webpagetest-restful-apis
@param {!string} apiKey
@param {!string} testUrl URL to audit.
@param {!string} pingback URL for WPT to ping when result is ready.
@return {!Promise} json response from starting a WPT run.