Git Product home page Git Product logo

perf-test's Introduction

Web Page Load Performance Tester

CLI to test performance page load trials on Chromium, Firefox, and WebKit.

Uses the beautiful playwright package underneath.

Note: This package is still in pre-release and subject to possible change.

Install

Install globally using NPM.

npm install -g @kyle-west/perf-test

Usage

The perf CLI simply needs a URL to test against, and a count for the number of trials to run (defaults to 3).

perf <url> [<number of trials>]

Example

Running: perf https://github.com/kyle-west 3 will test 3 page load trials of loading github.com. It will output something of the following:

Time Trials for https://github.com/kyle-west on Thu Jul 09 2020


Time Trials for Chromium Browser
┌─────────┬─────────────┬────────────────┬──────────────────────────┬──────────────┐
│ (index) │ responseEnd │ domInteractive │ domContentLoadedEventEnd │ loadEventEnd │
├─────────┼─────────────┼────────────────┼──────────────────────────┼──────────────┤
│    0    │    2269     │      2420      │           2420           │     2772     │
│    1    │     388     │      553       │           554            │     891      │
│    2    │     372     │      675       │           675            │     841      │
└─────────┴─────────────┴────────────────┴──────────────────────────┴──────────────┘
Chromium Averages
┌──────────────────────────┬────────────────────┐
│         (index)          │       Values       │
├──────────────────────────┼────────────────────┤
│       responseEnd        │ 1009.6666666666666 │
│      domInteractive      │        1216        │
│ domContentLoadedEventEnd │ 1216.3333333333333 │
│       loadEventEnd       │ 1501.3333333333333 │
└──────────────────────────┴────────────────────┘


Time Trials for Firefox Browser
┌─────────┬─────────────┬────────────────┬──────────────────────────┬──────────────┐
│ (index) │ responseEnd │ domInteractive │ domContentLoadedEventEnd │ loadEventEnd │
├─────────┼─────────────┼────────────────┼──────────────────────────┼──────────────┤
│    0    │     532     │      906       │           910            │     1096     │
│    1    │     542     │      916       │           920            │     1105     │
│    2    │     546     │      920       │           947            │     1129     │
└─────────┴─────────────┴────────────────┴──────────────────────────┴──────────────┘
Firefox Averages
┌──────────────────────────┬───────────────────┐
│         (index)          │      Values       │
├──────────────────────────┼───────────────────┤
│       responseEnd        │        540        │
│      domInteractive      │        914        │
│ domContentLoadedEventEnd │ 925.6666666666666 │
│       loadEventEnd       │       1110        │
└──────────────────────────┴───────────────────┘


Time Trials for WebKit Browser
┌─────────┬─────────────┬────────────────┬──────────────────────────┬──────────────┐
│ (index) │ responseEnd │ domInteractive │ domContentLoadedEventEnd │ loadEventEnd │
├─────────┼─────────────┼────────────────┼──────────────────────────┼──────────────┤
│    0    │     305     │      502       │           502            │     828      │
│    1    │     315     │      529       │           529            │     846      │
│    2    │     304     │      497       │           498            │     819      │
└─────────┴─────────────┴────────────────┴──────────────────────────┴──────────────┘
WebKit Averages
┌──────────────────────────┬───────────────────┐
│         (index)          │      Values       │
├──────────────────────────┼───────────────────┤
│       responseEnd        │        308        │
│      domInteractive      │ 509.3333333333333 │
│ domContentLoadedEventEnd │ 509.6666666666667 │
│       loadEventEnd       │        831        │
└──────────────────────────┴───────────────────┘

Run a script

perf --script <filename> [--engine <chromium|firefox|webkit>]

Scripts must be modules of the form:

module.exports = async () => {
  // page, browser, engine, engineName, context available globally
  await page.goto("https://google.com")
}

Record Video

Include the --record-video in the arguments list to save a local file. Note this feature only works in script mode for Chromium browsers

perf --script <filename> --record-video <video-name>

File will be saved to <video-name>.mp4

perf-test's People

Contributors

kyle-west avatar dependabot[bot] avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.