0

GitHub - pichillilorenzo/mlab-speed-test: Test your download and upload speed us...

 1 year ago
source link: https://github.com/pichillilorenzo/mlab-speed-test
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

MLab Speed Test

Test your download and upload speed using speed.measurementlab.net

Getting started

To get started with this library, you need to install it and add it to your project.

Installation

# npm
npm install mlab-speed-test --save

# yarn
yarn add mlab-speed-test

Library Usage

API Reference available at https://pichillilorenzo.github.io/mlab-speed-test/.

import {MLabSpeedTest} from 'mlab-speed-test';
// or
const {MLabSpeedTest} = require('mlab-speed-test');

const speedTest = new MLabSpeedTest();
speedTest.on('server-chosen', (serverInfo) => {
   console.log(serverInfo.location);
});
speedTest.on('download-complete', downloadData => {
   const downloadSpeed = downloadData.LastClientMeasurement ? downloadData.LastClientMeasurement.MeanClientMbps.toFixed(2) : '0';
   console.log(downloadSpeed + 'Mb/s');
});
speedTest.on('upload-complete', uploadData => {
   const uploadSpeed = uploadData.LastServerMeasurement ?
           (uploadData.LastServerMeasurement.TCPInfo.BytesReceived / uploadData.LastServerMeasurement.TCPInfo.ElapsedTime * 8).toFixed(2) : '0';
   console.log(uploadSpeed + 'Mb/s');
});
const exitCode = await speedTest.run();

CLI Usage

Usage: mlab-speed-test [options]

Examples: 
  mlab-speed-test -a -p
  mlab-speed-test -a -p --json

Options:
  -p, --accept-privacy-policy  Accept M-Lab's Privacy Policy (https://www.measurementlab.net/privacy/) (default: false)
  -a, --autostart              Run speed test on command start. Requires --accept-privacy-policy (default: false)
  --json                       Output data in json format (default: false)
  --pretty                     If json should be pretty formatted (default: false)
  -h, --help                   display help for command

CLI Usage Example

Example 1

mlab-speed-test -a -p

Example output:


    M-Lab's Speed Test

    ⊠ Privacy Policy ( https://www.measurementlab.net/privacy/ )

    Test Server: 🖥  Milan, IT
  ⠸ 65.98 Mb/s ↓ / 17.04 Mb/s ↑
    Latency: 26 ms
    Loss: 1.81%

    Restart (enter) - Stop (delete)
    Decline Privacy Policy (a) - Quit (ctrl + q)

Example 2

mlab-speed-test -ap --json --pretty

Example output:

{
   "privacyPolicyAccepted": true,
   "running": true,
   "isDone": false,
   "downloadSpeed": "64.80",
   "downloadUnit": "Mb/s",
   "downloadCompleted": true,
   "downloadProgress": 1,
   "uploadSpeed": "16.97",
   "uploadUnit": "Mb/s",
   "uploadCompleted": false,
   "uploadProgress": 0.6515323619008064,
   "latencyUnit": "ms",
   "lossUnit": "%",
   "location": {
      "city": "Milan",
      "country": "IT"
   },
   "latency": "51",
   "loss": "6.57"
}

Contributors

Any contribution is appreciated. You can get started with the steps below:

  1. Fork this repository (learn how to do this here).

  2. Clone the forked repository.

  3. Make your changes and create a pull request (learn how to do this) .

  4. I will attend to your pull request and provide some feedback.

License

This repository is licensed under the ISC License.

This project is strongly inspired by the fast-cli package.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK