真•业界第一个性能统计分析框架 -- Hiper

项目地址:https://github.com/pod4g/hiper 欢迎你们使用和starjavascript

介绍

咱们开发完一个项目或者给一个项目作完性能优化之后,如何来衡量这个项目的性能是否达标?咱们的常见方式是在Dev Tool中的performance和network中看数据,记录下几个关键的性能指标,而后刷新几回再看这些性能指标, 有时候咱们发现,因为样本太少,受当前「网络」、「CPU」、「内存」的繁忙程度的影响很重,有时优化后的项目反而比优化前更慢。若是有一个工具,一次性地请求N次网页,而后把各个性能指标取出来求平均值,咱们就能很是准确地知道这个优化是「正优化」仍是「负优化」。而且,也能够作对比,拿到「具体优化了多少」的准确数据。这个工具就是为了解决这个痛点的。java

同时,这个工具也是学习「浏览器加载渲染网页过程」和「性能优化」的一个利器,所以咱们也能够把他做为一个强大的学习辅助工具,不至于让咱们在样本过少的状况下获得错误的结论。git

安装

# install
npm i hiper -g

# or
yarn global add hiper
复制代码

使用

hiper --help

Usage: hiper [options] [url]

🚀 A statistical analysis tool for performance testing

Options:

   -v, --version                output the version number
   -n, --count <n>              指定加载次数(default: 20)
   -c, --config <path>          载入配置文件
   -u, --useragent <ua>         设置useragent
   -H, --headless [b]           是否使用无头模式(default: true-e, --executablePath <path>  使用指定的chrome浏览器
   --no-cache                   禁用缓存(default: false)
   --no-javascript              禁用javascript(default: false)
   --no-online                  离线模式(defalut: false)
   -h, --help                   output usage information
复制代码

用例

  1. 最简单的方式
hiper baidu.com
复制代码
  1. 指定加载次数
# 加载baidu.com 100次
hiper -n 100 baidu.com
复制代码
  1. 禁用缓存
hiper -n 100 baidu.com --no-cache
复制代码

配置

{
   // options 指向指定的chrome可执行程序,通常不用这项配置,除非你想测试特定版本的chrome
   "executablePath": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
   // required 测试的url
   "url": "http://www.didichuxing.com",
   // options 本次测试所须要的cookie。通常是登陆信息的cookie。 Array | Object
   "cookies": [{
      "name": "token",
      "value": "9+cL224Xh6VuRT",
      "domain": "example.com",
      "path": "/",
      "size": 294,
      "httpOnly": true
   }],
   // options default: 20 测试次数
   "count": 100,
   // options default: true 是否使用无头模式 
   "headless": true,
   // options default: false 是否禁用cache 
   "noCache": false,
   // options default: false 是否禁用javascript
   "noJavascript": false,
   // options default: false 是否离线
   "noOnline": false,
   // options 设置useragent信息
   "useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36",
   // options 设置viewport信息
   "viewport": {
      // options 视口宽度
      "width": 375,
      // options 视口高度
      "height": 812,
      // options default: 1 devicePixelRatio
      "deviceScaleFactor": 3,
      // options default: false 是否模拟成mobile
      "isMobile": false,
      // options default: false 是否支持touch事件
      "hasTouch": false,
      // options default: false 是不是横屏
      "isLandscape": false
   }
}
复制代码
# 载入上述配置文件
hiper -c /home/config.json
复制代码

输出

hiper
相关文章
相关标签/搜索