Exemple #1
0
 public function testResults()
 {
     $pageSpeed = new \PageSpeed\Insights\Service();
     $url = 'https://github.com/sgrodzicki/pagespeed';
     $results = $pageSpeed->getResults($url);
     $keys = array('kind', 'id', 'responseCode', 'title', 'ruleGroups', 'pageStats', 'formattedResults', 'version');
     foreach ($keys as $key) {
         $this->assertArrayHasKey($key, $results);
     }
     $this->assertEquals($url, $results['id']);
     $this->assertEquals(200, $results['responseCode']);
     $this->assertStringStartsWith('sgrodzicki/pagespeed', $results['title']);
     $this->assertStringEndsWith('GitHub', $results['title']);
     $this->assertTrue(is_array($results['pageStats']));
     $this->assertTrue(is_array($results['formattedResults']));
     $this->assertTrue(is_array($results['version']));
     $this->assertEquals(1, $results['version']['major']);
 }
include_once __DIR__ . "/../vendor/autoload.php";
if (count($argv) < 6) {
    echo "\n    PageSpeedScorer - Version ##development##";
    die("\n\n    Usage: PageSpeedScorer.phar url options [system_identifier] [project_api_key] [koalamonserver]\n\n");
}
$url = $argv[1];
$options = json_decode($argv[2]);
if (!is_null($options) && $options !== false && property_exists($options, 'limit')) {
    $limit = $options->limit;
}
$system = $argv[3];
$apiKey = $argv[4];
$koalamonServer = $argv[5];
$componentId = $argv[6];
$reporter = new \Koalamon\Client\Reporter\Reporter('', $apiKey, new \GuzzleHttp\Client(), $koalamonServer);
$pageSpeed = new \PageSpeed\Insights\Service();
try {
    $psResult = $pageSpeed->getResults($url);
} catch (\Exception $e) {
    echo "\nError: " . $e->getMessage();
    exit(1);
}
$pageSpeedScore = $psResult["ruleGroups"]["SPEED"]["score"];
$pageSpeedUrl = "https://developers.google.com/speed/pagespeed/insights/?url=" . $url;
if ($pageSpeedScore < $limit) {
    $status = \Koalamon\Client\Reporter\Event::STATUS_FAILURE;
    $message = "Page Speed Score low (" . $pageSpeedScore . ").";
} else {
    $status = \Koalamon\Client\Reporter\Event::STATUS_SUCCESS;
    $message = "Page Speed Score is " . $pageSpeedScore . ".";
}