背景
使用webpagetest进行性能分析,需要一个一个url的去执行,需要人为去等,比较繁琐。而api很好的解决了这个问题,可以通过命令行等执行测试,也可以写成一个常规脚本,针对每个版本的常规url进行测试
 
 
安装webpagetest的npm包
 
npm install webpagetest -g
 
安装好后,可以用node.js引用webpagetest包来进行操作,也可以通过命令行直接操作。我这里使用的命令行进行操作
 
常用命令行操作
 
命令行格式:webpagetest [options] [command]
[options]包含-s、-h、-V等
 
1.webpagetest -help
查看webpagetest的api
 
2.webpagetest -s <server服务器地址> locations
查看当前已经连接到server的所有locations
 
3.webpagetest -s <server服务器地址> testers
返回server的所有locations,以及连接状态,"status": "OFFLINE"表示没有连接上
 
4.发送请求: webpagetest  -s <server服务器地址> test <url要测试的地址> -L <label标签> -l <locations>
实例:webpagetest  -s http://127.0.0.1 test "http://baidu.com" -L testlabel -l Android_Chrome
 
说明:url最好用双引号括起来,如果是简单的百度链接还好,如果url中有很多参数(参数里会包含?&;等字符),有可能会报错
 
返回结果如下:
{
  "statusCode": 200,
  "statusText": "Ok",
  "data": {
    "testId": "161026_0Z_2",
    "ownerKey": "0892939f735f030fc81e0bbf40db52ac838340b5",
    "jsonUrl": "http://127.0.0.1/jsonResult.php?test=161026_0Z_2",
    "xmlUrl": "http://127.0.0.1/xmlResult.php?test=161026_0Z_2",
    "userUrl": "http://127.0.0.1/results.php?test=161026_0Z_2",
    "summaryCSV": "http://127.0.0.1/csv.php?test=161026_0Z_2",
    "detailCSV": "http://127.0.0.1/csv.php?test=161026_0Z_2&amp;requests=1"
  }
 
返回的testId用来标识该条测试,可用来查询测试的状态、测试的结果等。api文档里所有<id>用的就是testId
jsonUrl等可以用来查询测试结果,测试执行结束后可以直接访问查询。
 
 
5.获得请求的状态:webpagetest  -s <server服务器地址>  status <testId> 
实例:webpagetest -s http://127.0.0.1  status 161026_0Z_2
查询出来该条测试是否完成,以及开始时间和结束时间等
 
6.获得请求结果:webpagetest  -s <server服务器地址>  results <testId> 
实例:webpagetest -s http://127.0.0.1  results 161026_0Z_2
返回了测试比较详细的结果,我还不太懂各项值,还是直接看网址的结果页面比较方便
 
7.获得历史天数内的结果:webpagetest  -s <server服务器地址> history <天数>
实例:webpagetest -s http://127.0.0.1 history 10
查询服务器下N天内的测试结果
 
返回结果如下:
[
  {
    "Date/Time": "10/26/16 03:22:10",
    "Location": "android-chrome_label - android",
    "Test ID": "161026_EZ_3",
    "URL": "http://www.zhuanzhuan.com",
    "Label": "testlabel"
  }
]
 
 
更多api可以参考下面链接:

使用命令行执行webpagetest进行测试的更多相关文章

  1. Pytest命令行执行测试

    Pytest命令行执行测试 from collections import namedtuple Task = namedtuple('Task', ['summary','owner','done' ...

  2. 命令行执行php脚本 中$argv和$argc

    在实际工作中有可能会碰到需要在nginx命令行执行php脚本的时候,当然你可以去配置一个conf用外网访问. 在nginx命令行中 使用 php index.php 就可以执行这个index.php脚 ...

  3. yii2 命令行执行php命令 commands(命令)

    YII2可以在命令行执行php命令,作为半路出家的撩妹君可谓是抠脚福音.作为一个屌丝级的程序员必须要有智能提示代码的IDE,比如PHPstorm.至于如何免费使用嘛..... 首先明白YII2自带的c ...

  4. 使用命令行执行jmeter的方法

    1. 简介 使用非 GUI 模式,即命令行模式运行 JMeter 测试脚本能够大大缩减所需要的系统资 本文介绍windows下以命令行模式运行的方法. 1.1. 命令介绍 jmeter -n -t & ...

  5. JMeter 十二:命令行执行

    参考文档:http://jmeter.apache.org/usermanual/get-started.html#non_gui 真正开始跑压力测试时,我们就不能使用GUI模式了.这时候需要采用命令 ...

  6. 命令行执行php脚本中的$argv和$argc配置方法

    在实际工作中有可能会碰到需要在nginx命令行执行php脚本的时候,当然你可以去配置一个conf用外网访问. 在nginx命令行中 使用 php index.php 就可以执行这个index.php脚 ...

  7. Jmeter(6)命令行执行

    Jmeter执行方式有2种:GUI和非GUI模式 GUI:在Windows电脑上运行,图形化界面,可直接查看测试结果,但是消耗压力机资源较高 非GUI:通过命令行执行,无图形化界面,不方便查看测试结果 ...

  8. linux命令行执行db2存储过程

    存储过程代码如下: CREATE PROCEDURE proc_sum2(IN n INT,OUT sum INT,OUT j INT) BEGIN DECLARE i INT; ; ; ; WHIL ...

  9. mysql命令行执行外部文件

    mysql命令行执行外部文件

随机推荐

  1. jenkins中submodule的使用

    尝试过各种插件配置都不行. 最后只好通过命令来更新Submodule了. 首先把Git更新到最新,为什么要更新等会儿再说. 项目里的Submodule要配置好,这是基本的. (检查是否配置好的方法: ...

  2. 如何让NGUI的对象在3D模型之上

    假设场景中有两台摄像机, 一台是NGUI的摄像机, 另外一台是投影摄像机. 投影摄像机看的是3D模型, Depth比NGUI的摄像机要大, Clear Flags设置的是Depth only. 现在想 ...

  3. vmware 修改IP 提示子网掩码错误~

    我打开[编辑]->[虚拟网络编辑器]菜单 修改网络设置 提示 子网掩码错误 如下图所示 上网查询,使用如下方法解决问题 这个虚拟网络编辑器是给你添加网卡的,你添加vmnet1就是在你真实的电脑上 ...

  4. 转:SAAS 测试

    基于SaaS云计算网络性能测试指标研究 来源:中国软件评测中心  作者:马子明  投稿时间:2011-04-02 1.基于SaaS的云计算 SaaS(Software as a Service,软件即 ...

  5. canvas生成二维码,并下载保存为本地的图片

    function getTicket(id,salt){//qrcode生成canvas二维码 $(".zc-mask").show(); $(".edit-box&qu ...

  6. 安装fast cgi

    1. 下载 在HTTPD主页,找到"mod_fcgid" 下载“mod_fcgid-2.3.9-crlf.zip” 2. 生成so文件 首先,设置APACHE2_HOME系统变量. ...

  7. linux下RDP客户端及服务器

    tsclient redsktop remmina   -->对ubuntu支持的非常不错 XRdp 集合vnc作为rdp服务器端使用;

  8. bash 相关的一些小代码片断

    批量修改文件名: for i in *.html; do mv $i ${i/oldstring/newstring}; done; 批量替换文件内容: sed -i "s/oldstrin ...

  9. leetcode 191

    191. Number of 1 Bits Write a function that takes an unsigned integer and returns the number of ’1' ...

  10. 笔试常考的Java基础

    1. Socket编程:ServerSocket (int port) :Creates a server socket, bound to the specified port. Socket(In ...