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 . "."; }