WebPagetest API 教程及示例

在了解更多关于 Webpagetest API 之前,让我们先来理解一下——

什么是 WebPagetest?

Webpagetest 是衡量网页性能最流行且免费的工具之一。Webpagetest 允许您从世界各地的多个不同位置,使用多种不同的浏览器对您的网站运行网页性能测试。

WebPagetest API

输入您的网站地址,然后点击“开始测试”。接下来,您将看到如下所示的输出窗口。

WebPagetest API

在此页面,您可以找到您网页以下参数的值:

  • 加载时间 – 页面加载所需的时间
  • 首次响应时间 – 您的请求开始执行的时间
  • 页面大小 – 您网页的总大小
  • 请求数 – 您的网页发起的请求数量。

WebPagetest API

Webpagetest 有两个主要 API:

  1. 运行测试 – http://www.webpagetest.org/runtest.php
  2. 检查测试状态 – http://www.webpagetest.org/testStatus.php
  3. 获取测试结果 – http://www.webpagetest.org/testStatus.php

运行测试

  • 要运行测试,您可以向 http://www.webpagetest.org/runtest.php 发送 GET 或 POST 请求。
  • 作为响应,您将要么被重定向到结果页面,要么收到 XML 响应(取决于是否请求了 XML)。
  • 您需要 API KEY 才能使用 Webpagetest API,并且您必须联系 wepagetest.org 获取您的 API KEY。使用此 API 密钥,您每天最多可以提交 100 个测试;更多测试需要私有实例。对于私有实例 – 在您自己的服务器上设置测试环境。
  • 示例 – http://www.webpagetest.org/runtest.php?url=guru99.com&runs=1&f=xml&k=<your-api-key>

设置参数

  • URL – 要测试的 URL
  • runs – 测试运行次数
  • fvonly – 设置为 1 以跳过重复视图测试
  • f – 响应格式。设置为 XML 请求 XML 编码的响应,或 JSON 请求 JSON 编码的响应
  • k – API 密钥(公共实例必需)

检查测试状态

  • 提交测试后,您将收到以下 XML 响应。

Check Test Status

  • 在响应中检查 testId 字段并记下它。
  • Webpagetest 是一个免费且流行的工具,为确保公平使用,您的请求必须排队等待。
  • 您可以通过向 http://www.webpagetest.org/testStatus.php 发送 GET 请求并附带您的 test id 来检查测试状态。
  • 示例 – http://www.webpagetest.org/testStatus.php?f=xml&test=141107_12_BXZ

Check Test Status

这些信息包括测试 ID、开始时间、请求测试的运行次数等。

检查测试结果

将测试 ID 传递给 API – http://www.webpagetest.org/xmlResult/141107_12_BXZ/

您将看到如下所示的 XML 格式的测试结果。

Check Test Results

使用 Webpagetest API 的 PHP 代码示例

	<?php
	$url = <a href=https://guru99.com.cn //url to test
	$api_key = "<your-copy-api-key>"; // your api key
	  $webpagetest = "http://www.webpagetest.org/runtest.php?url=$url&runs=1&f=xml&k=$api_key"; 
	$xmlres = simplexml_load_file($webpagetest);
	$testid = $xmlres->data->testId;        
	echo "Test id : ".$testid." For url : ".$url;
	?>
  • 稍后再次调用 API 以获取测试结果。
 <?php
	$test_id = "<test-id-you-got-from-request-call>";
	$weburl = "http://www.webpagetest.org/xmlResult/$test_id/";
	 $xmlres = simplexml_load_file($weburl);
	 if($xmlres){
	$loadtime = ($xmlres->data->average->firstView->loadTime)/1000;
	echo "WebPage loadtime is : ".$loadtime;
	}
	?>