LoginSignup
9
8

More than 3 years have passed since last update.

【CLIツール探訪②】ブラウザを開かずに、コマンドのみでの通信速度測定に便利な「speedtest-cli」を試用。

Posted at
  • CLIの恩恵を更に浴びるべく、ひたすら魅惑のツールを追い求める記事第二弾。
  • 定期的な過去回想作業を実施したところ、最初と最新の記事の内容の変化の無さに、数秒間「時間の平等さ」を疑問視。
  • 今回は、コマンド上から通信速度の測定が可能な「speedtest-cli」を試用することにしよう。

概要

特徴

コマンドベースでの測定

  • ブラウザから速度測定サイトへいく必要がなく、ターミナル上からコマンド一発で測定することができる。
  • そのため、ブラウザ環境がないLinux環境でも通信測定が可能。

最寄りサーバーの自動検知

  • 最寄りのサーバーを指定する必要がなく、基本コマンドをうつと、自動で最寄りのサーバーを検知して、その拠点での測定をする。

サーバー指定

  • speedtest-cliで測定可能なサーバーリストから、直接サーバーIDを指定しての測定も可能。

共有画像の出力

  • 測定結果を共有する際に、画像URLとして出力してくれるため、容易な結果連携が可能。

結果

  • 下記の基本コマンドを入力すると、自動で近辺のサーバーに接続して、速度を測定できる。

test.png

  • また、速度結果に加えて、オプション指定で共有可能な画像URLを出力してくれる。

test2.png

hist.png

環境

  • Amazon Linux 2
  • speedtest-cliは、Python(pip,easy_install)やcurl等のインストールにも対応しているため、MacやWindowsでも可能。

インストール

Python(pip)でのインストール

  • Pythonのパッケージ管理ツールであるpipを利用してのインストールは、下記のコマンドをうつ。
$ sudo pip install speedtest-cli

Python(easy_install)でのインストール

  • Pythonのパッケージ管理ツールであるeasy_installを利用してのインストールは、下記のコマンドをうつ。
$ sudo easy_install speedtest-cli

curlでのインストール

  • curlを利用して直接ダウンロードしてくるには、下記のコマンドをうつ。
$ curl -Lo speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py

$ chmod +x speedtest-cli

その他でのインストール

  • 上記以外での方法のインストール方法は、こちらを参照。

インストール確認

  • 上記の方法でのインストールが完了したら、下記のコマンドをうち、speedtest-cliが利用可能か確認する。
# バージョン確認
$ speedtest-cli --version

基本操作一覧

  • 基本操作は、下記の一覧のように行う。
内容 コマンド
基本測定 speedtest-cli
ダウンロード測定をスキップした測定
アップロードテストでの測定
speedtest-cli --no-download
アップロード測定をスキップした測定
ダウンロードテストでの測定
speedtest-cli --no-upload
結果をバイト単位で出力する測定
※通常はビット単位
speedtest-cli --no-upload
共有画像URLも出力する測定 speedtest-cli --share
CSV形式での結果出力測定
詳細測定はスキップ
speedtest-cli --csv
JSON形式での結果出力測定
詳細測定はスキップ
speedtest-cli --json
接続サーバー一覧出力
※距離が近い順で並べられている。
speedtest-cli --list
※単体で行うと、膨大な出力結果になる。
そのため、grep Japan等で項目を絞る。
サーバー指定での測定 speedtest-cli --server サーバーID
※サーバーIDは、上記のspeedtest-cli --listで表示されるIDを指す。
HTTPS接続での測定 speedtest-cli --secure
バージョン確認 sppedtest-cli --version

操作例

  • 下記、いくつかの基本操作例。

基本測定と共有画像URL出力測定

# 基本測定
$ speedtest-cli

Retrieving speedtest.net configuration...
Testing from XXXXX
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by Consolidated XXXXX
Testing download speed................................................................................
Download: 364.06 Mbit/s
Testing upload speed................................................................................................
Upload: 355.05 Mbit/s

# 共有画像URL出力測定
$ speedtest-cli --share

・・・・・・・
Download: 377.33 Mbit/s
Testing upload speed................................................................................................
Upload: 294.77 Mbit/s
Share results: http://www.speedtest.net/result/XXXXX.png

CSVやJSON形式出力

# CSV出力
$ speedtest-cli --csv

7168,Time Warner Cable,"XXXXXX, XXXX",2019-07-31T12:09:42.XXXXX,2.XXXXXX,27.117,XXXXXX.XXXXXX,XXXXXX.XXXXXX,,XXXXXX

# JSON出力
# ※JSON整形コマンド「jq」との併用も可能。
$ speedtest-cli --json | jq

{
  "client": {
    "rating": "0",
    "loggedin": "0",
    "isprating": "3.7",
    "ispdlavg": "0",
    "ip": "XXXXXX",
    ・・・・・・
  }
}

サーバー指定での測定

# 接続先サーバー一覧(日本)の確認
# ※出力結果の一番左の「XXXXX)」のXXX部分がサーバーID
$ speedtest-cli --list | grep Japan

 XXXXX) Allied Telesis Capital Corporation (Misawa, Japan) [XXXX km]
 XXXX) SoftEther Corporation (Tsukuba, Japan) [XXX km]
XXX) IPA CyberLab (Bunkyo, Japan) [XXXX km]
XXX) OPEN Project (via 20G SINET) (Tokyo, Japan) [XXXX km]
XXXX) GLBB Japan (Tokyo, Japan) [XXXX km]
XXX) i3D.net (Tokyo, Japan) [XXXX km]
XXXX) Rakuten Mobile , Inc (Tokyo, Japan) [XXXX km]

# サーバーID指定での測定
# ※出力結果のHostedが指定サーバーへ変更していることを確認。
$ speedtest-cli --server サーバーID

Retrieving speedtest.net server list...
Retrieving information for the selected server...
Hosted by XXXX

まとめ

  • 今回は速度測定ということで、滅多に無い機会であるこの状況のせいか、終始高揚状態になりながら、記事を書く。
  • 「他者との比較での面白さ」という測定系の最大利点の、代替を必死に探索。
  • 通信系ツールにときめきを見出したため、次回も同様のツールを試してみることにしよう。

参考

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8