Speedtest
A ruby gem for speedtest.net results
Adapted from https://github.com/lacostej/speedtest.rb
Installation
$ gem install speedtest
or put it in your Gemfile
gem 'speedtest'
and install with
$ bundle install
Usage:
require it in your script
require 'logger'
require 'speedtest'
Configure a new test with whatever options you want—all are optional:
- minimum_transfer_secs - The transfers will continue for at least that many seconds
- num_threads - The number of threads to perform the transfers in parallel
- ping_runs - The number of ping attempts to establish latency
- download_size - jpg dimensions (must be one or more of
[350, 500, 750, 1000, 1500, 2000, 2500, 3000, 3500, 4000]
) - upload_size - Size of the randomly generated file in bytes
- logger
speedtest = Speedtest::Test.new(min_transfer_secs: 5,
download_size: 500,
upload_size: 10_000,
num_threads: 4,
logger: Logger.new(STDOUT),
skip_servers: "http://www.github.com")
)
=> #<Speedtest::Test:0x007fac5ac9dca0 @download_runs=4, @upload_runs=4, @ping_runs=4, @download_sizes=[750, 1500], @upload_sizes=[10000, 400000], @debug=true>
test.run() returns some results:
results = test.run
With logger set, this produces:
Your IP: 97.126.32.16
Your coordinates: [47.4356, -122.1141]
Automatically selected server: http://lg.sea-z.fdcservers.net - 32.985 ms
Server http://lg.sea-z.fdcservers.net
starting download tests:
downloading: http://lg.sea-z.fdcservers.net/speedtest/random1500x1500.jpg
downloading: http://lg.sea-z.fdcservers.net/speedtest/random750x750.jpg
downloading: http://lg.sea-z.fdcservers.net/speedtest/random1500x1500.jpg
downloading: http://lg.sea-z.fdcservers.net/speedtest/random750x750.jpg
downloading: http://lg.sea-z.fdcservers.net/speedtest/random750x750.jpg
downloading: http://lg.sea-z.fdcservers.net/speedtest/random750x750.jpg
downloading: http://lg.sea-z.fdcservers.net/speedtest/random1500x1500.jpg
downloading: http://lg.sea-z.fdcservers.net/speedtest/random1500x1500.jpg
Took 6.10022 seconds to download 22345012 bytes in 8 threads
Download: 27.95 Mbps
starting upload tests:
uploading size 10000: http://lg.sea-z.fdcservers.net/speedtest/upload.php
uploading size 10000: http://lg.sea-z.fdcservers.net/speedtest/upload.php
uploading size 10000: http://lg.sea-z.fdcservers.net/speedtest/upload.php
uploading size 10000: http://lg.sea-z.fdcservers.net/speedtest/upload.php
uploading size 400000: http://lg.sea-z.fdcservers.net/speedtest/upload.php
uploading size 400000: http://lg.sea-z.fdcservers.net/speedtest/upload.php
uploading size 400000: http://lg.sea-z.fdcservers.net/speedtest/upload.php
uploading size 400000: http://lg.sea-z.fdcservers.net/speedtest/upload.php
Took 3.437126 seconds to upload 1644080 bytes in 8 threads
Upload: 3.65 Mbps
=> #<Speedtest::Result:0x007fac5ac1e680 @server="http://lg.sea-z.fdcservers.net", @latency=32.985, @download_size=22345012, @upload_size=1644080, @download_time=6.10022, @upload_time=3.437126>