- CLIの恩恵を更に浴びるべく、ひたすら魅惑のツールを追い求める記事第二弾。
- 定期的な過去回想作業を実施したところ、最初と最新の記事の内容の変化の無さに、数秒間「時間の平等さ」を疑問視。
- 今回は、コマンド上から通信速度の測定が可能な「speedtest-cli」を試用することにしよう。
概要
- 通信環境の回線速度をコマンド上で調べることが可能なPython製のCLIツール。
- 以前からある、回線速度測定サイトのspeedtest.netのコマンドライン版。
- 公式Github
- マニュアルページ
特徴
コマンドベースでの測定
- ブラウザから速度測定サイトへいく必要がなく、ターミナル上からコマンド一発で測定することができる。
- そのため、ブラウザ環境がないLinux環境でも通信測定が可能。
最寄りサーバーの自動検知
- 最寄りのサーバーを指定する必要がなく、基本コマンドをうつと、自動で最寄りのサーバーを検知して、その拠点での測定をする。
サーバー指定
- speedtest-cliで測定可能なサーバーリストから、直接サーバーIDを指定しての測定も可能。
共有画像の出力
- 測定結果を共有する際に、画像URLとして出力してくれるため、容易な結果連携が可能。
結果
- 下記の基本コマンドを入力すると、自動で近辺のサーバーに接続して、速度を測定できる。

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


環境
- 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
まとめ
- 今回は速度測定ということで、滅多に無い機会であるこの状況のせいか、終始高揚状態になりながら、記事を書く。
- 「他者との比較での面白さ」という測定系の最大利点の、代替を必死に探索。
- 通信系ツールにときめきを見出したため、次回も同様のツールを試してみることにしよう。
参考
-
https://computerlife.hateblo.jp/entry/speedtest-cli
→こちらの記事を参考にしました。大変お世話になりました。 -
https://qiita.com/CloudRemix/items/ad226ea4aa641427e682
→こちらの記事を参考にしました。