Said PyDec. 26, 2021, 12:22 p.m.

Python: How to Test Internet Speed

Probably, you have used the speedtest website before, but did you know that speedtest has a python library.
In this tutorial, We will learn to use the speedtest library to test your internet Speed. We'll also learn how to use speedtest command lines.

Let's get started.

Speedtest instalation

To install speedtest via pip, follow this command:

pip install speedtest-cli

Test internet speed (script)

After installing the speedtest package. Now, let's see how to use it with the code.

In the following code, I'll test my internet download speed.

import speedtest

# Speed test
st = speedtest.Speedtest()

# Download Speed
ds = st.download()

print(ds)

let me explain.
First, we import the speedtest package. Then, called Speedtest() class. Next, test my download speed using the download() method. Finally, print the result.

Output:

3422459.073187817

As you can see, the internet speed is in Bytes . To make it readable, we'll use the following function.

def humansize(nbytes):
    suffixes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']
    i = 0
    while nbytes >= 1024 and i < len(suffixes)-1:
        nbytes /= 1024.
        i += 1
    f = ('%.2f' % nbytes).rstrip('0').rstrip('.')
    return '%s %s' % (f, suffixes[i])

#Readable
print(humansize(ds))


Output:

3.56 MB

Now, let's test our upload speed using the upload() method.

import speedtest

# Speed test
st = speedtest.Speedtest()

# Upload speed
us = st.upload()

print(us)

#Readable
print(humansize(us))

Output:

386382.6586620888
301.51 KB

Speedtest command lines

Speedtest also provides the command lines for testing our internet speed.

Usage:

Help command:

speedtest-cli -h

Output:

usage: speedtest-cli [-h] [--no-download] [--no-upload] [--single] [--bytes]
                     [--share] [--simple] [--csv]
                     [--csv-delimiter CSV_DELIMITER] [--csv-header] [--json]
                     [--list] [--server SERVER] [--exclude EXCLUDE]
                     [--mini MINI] [--source SOURCE] [--timeout TIMEOUT]
                     [--secure] [--no-pre-allocate] [--version]

Command line interface for testing internet bandwidth using speedtest.net.

Test Internet Speed:

speedtest-cli

Output:

Retrieving speedtest.net configuration...
Testing from xxx Telecom (196.89.30.99)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by xxx Telecom (xxx) [394.57 km]: 29.1 ms
Testing download speed................................................................................
Download: 8.30 Mbit/s
Testing upload speed......................................................................................................
Upload: 10.33 Mbit/s

This command above tests ping , download speed, and upload speed.

Test Internet Speed: with the share link:

speedtest-cli --share

Output:

Retrieving speedtest.net configuration...
Testing from xxx Telecom (196.89.30.99)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by xxx Telecom (xxx) [394.57 km]: 28.131 ms
Testing download speed................................................................................
Download: 3.74 Mbit/s
Testing upload speed......................................................................................................
Upload: 0.39 Mbit/s
Share results: http://www.speedtest.net/result/12339819892.png

As you can see, we've got a URL of the results. Let's open it in the browser.

Result:

Speed Test Result

We hope this is easy to understand. See you later.

References:

https://pypi.org/project/speedtest-cli/
speedtest example (PyOnlyCode)
Speedtest-cli Example (PyOnlyCode)

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Comments

Only authorized users can post comments.
Please, Log in or Sign up
Fornex

Let me recommend you a great European Fornex hosting.

Fornex has proven itself to be a stable host over the years.

For Django projects I recommend VPS hosting

Following the link you will receive a 5% discount on shared hosting services, dedicated servers, VPS and VPN

View Hosting
Share on social networks
Donate

The EVILEG project has switched to a non-commercial basis and will develop solely on the enthusiasm of the site creator, the enthusiasm of users, donations and the hosting referral system

Thank you for your support

Available ways to support the project

PayPal

PatreonYandex.MoneyMore
ni

C++ - Test 001. The first program and data types

  • Result:33points,
  • Rating points-10
ni

C++ - Тест 003. Условия и циклы

  • Result:35points,
  • Rating points-10
AK

C++ - Test 005. Structures and Classes

  • Result:66points,
  • Rating points-1
Popular publications in the last 90 Days
Last comments

Qt/C++ - Lesson 027. Polymorphism in Qt by the example of geometric shapes in QGraphicsScene

Ну не видя вашего кода, сказать, где у вас ошибка невозможно. А что касается перетаскивания и разных манипуляций, то можете распотрошить код векторного редактора из этой статьи Qt/C++…
K
  • Kolja
  • May 22, 2022, 6:32 a.m.

Qt/C++ - Lesson 027. Polymorphism in Qt by the example of geometric shapes in QGraphicsScene

Крутой урок! Но как только захотел добавить функцию выделение объекта ( подразумевается перемещение и изменение размера) ничего не получается . Читал что нужно включить флаги ItemIsSelected и It…

Django - Tutorial 023. Like Dislike system using GenericForeignKey

Недостаток GenericForeignKey в том, что они достаточно плохо оптимизируются, поэтому я решил это с помощью кэширования. Собственно говоря, эти проблемы и послужили возникновению специальног…

PyQt5 - Tutorial 009. Using QThread with MoveToThread

Попробуйте принудительно вызывать сигнал started у потока. Это является потокобезопасным. И в данном случае вызов сигнала started должно запустить выполнения метода run, а потом продолжить выпол…
O
  • Otaku
  • May 16, 2022, 11:33 a.m.

PyQt5 - Tutorial 009. Using QThread with MoveToThread

Решение хорошее, сейчас так и делаю. Но все равно остается открытым вопрос подвязки ивента из вне. Проще говоря, не хочется гонять вечный цикл в run, постоянго проверяя изменения очереди (пусть …
Now discuss on the forum
AB

Sorting the added QML elements in the ListModel

I am writing an alarm clock in QML, I am required to sort the alarms in ascending order (depending on the date or time (if there are several alarms on the same day). I've done the sorting …
EK

HTTP server на Qt

Давно было, уже не помню как, но разрулил. Спасибо :)

Django MPTT вывод дерева категорий

Здраствуйте похоже я так и не понял всю суть Django-MPTT батарейки. Так как не могу решить простую задачу с выводом категорий. По этому обращаюсь к вам за помощью. Начну с начала. Изначальн…
AC

QScrollArea и автоматическая прокрутка при обходе элементов формы

Отвечаю сам на свой вопрос. Кому интересно: к примеру в scrollArea_organs_internal есть элементы QLineEdit = spleen_parenchyma (при обходе элементов формы д…
d
  • danya
  • April 26, 2022, 8:13 a.m.

Как вставить видео в QT6 6.3.0?

Я абсолютный новичок в Qt. Столкнулся с проблемой вставки видео. В прошлых версиях надо было подключть к про файлу multimedia. Сейчас пишет ошибку, что multimedia нет. Можете на просто…
About
Services
© EVILEG 2015-2022
Recommend hosting TIMEWEB