当前位置:
首页 > temp > python入门教程 >
-
python如何实现网络测试,了解一下speedtest-cli...
Speedtest CLI 专为软件开发人员、系统管理员和计算机爱好者等打造,是 Ookla® 提供技术支持的首款正式 Linux 本机 Speedtest 应用程序。
Speedtest CLI是使用python语言开发的,不仅可以直接在命令行运行。也可以作为python模块在python IDE中直接调用。
首先,看一下如何在python应用中进行调用,使用pip直接安装。
pip install speedtest-cli
将该模块直接导入到我们当前的代码块中。
import speedtest as spt
创建网络测试对象
spd = spt.Speedtest()
打印当前可用于测试的服务器列表
from pprint import pprint
pprint(spd.get_servers())
# {721.5702755019188: [{'cc': 'CN',
# 'country': 'China',
# 'd': 721.5702755019188,
# 'host': 'speedtest1.he.chinamobile.com:8080',
# 'id': '41912',
# 'lat': '38.0428',
# 'lon': '114.5149',
# 'name': '石家庄',
# 'sponsor': 'China Mobile Hebei Co., Ltd',
# 'url': 'http://speedtest1.he.chinamobile.com:8080/speedtest/upload.php'}],
# 776.2668436087947: [{'cc': 'CN',
# 'country': 'China',
# 'd': 776.2668436087947,
# 'host': '5gtest.shangdu.com:8080',
# 'id': '36646',
# 'lat': '34.7466',
# 'lon': '113.6253',
# 'name': 'Zhengzhou',
# 'sponsor': 'China Unicom HeNan 5G',
# 'url': 'http://5gtest.shangdu.com:8080/speedtest/upload.php'}],
# 1051.7168853741107: [{'cc': 'MN',
# 'country': 'Mongolia',
# 'd': 1051.7168853741107,
# 'host': 'speedtest.gemnet.mn:8080',
# 'id': '2853',
# 'lat': '47.9200',
# 'lon': '106.9200',
# 'name': 'Ulaanbaatar',
# 'sponsor': 'Gemnet LLC',
# 'url': 'http://speedtest.gemnet.mn:8080/speedtest/upload.php'},
# {'cc': 'MN',
# 'country': 'Mongolia',
# 'd': 1051.7168853741107,
# 'host': 'speedtest1.kewiko.mn:8080',
# 'id': '30772',
# 'lat': '47.9200',
# 'lon': '106.9200',
# 'name': 'Ulaanbaatar',
# 'sponsor': 'Kewiko LLC',
# 'url': 'http://speedtest1.kewiko.mn:8080/speedtest/upload.php'}],
# 1339.1170164273938: [{'cc': 'CN',
# 'country': 'China',
# 'd': 1339.1170164273938,
# 'host': '5gnanjing.speedtest.jsinfo.net:8080',
# 'id': '26352',
# 'lat': '32.0500',
# 'lon': '118.7667',
# 'name': 'Nanjing',
# 'sponsor': 'China Telecom JiangSu 5G',
# 'url': 'http://5gnanjing.speedtest.jsinfo.net:8080/speedtest/upload.php'}],
# 1340.7612716854985: [{'cc': 'CN',
# 'country': 'China',
# 'd': 1340.7612716854985,
# 'host': 'speedtest02.js165.com:8080',
# 'id': '13704',
# 'lat': '32.0602',
# 'lon': '118.7968',
# 'name': 'Nanjing',
# 'sponsor': 'China Unicom',
# 'url': 'http://speedtest02.js165.com:8080/speedtest/upload.php'}],
# 1381.9129755930571: [{'cc': 'CN',
# 'country': 'China',
# 'd': 1381.9129755930571,
# 'host': 'speedtest.zjmobile.com:8080',
# 'id': '17320',
# 'lat': '32.2069',
# 'lon': '119.4490',
# 'name': 'ZhenJiang',
# 'sponsor': 'China Mobile JiangSu 5G',
# 'url': 'http://speedtest.zjmobile.com:8080/speedtest/upload.php'}],
# 1489.08809618835: [{'cc': 'RU',
# 'country': 'Russia',
# 'd': 1489.08809618835,
# 'host': 'speedtest-ude.edinos.ru:8080',
# 'id': '36254',
# 'lat': '51.8336',
# 'lon': '107.5840',
# 'name': 'Ulan-Ude',
# 'sponsor': 'EDINOS',
# 'url': 'http://speedtest-ude.edinos.ru:8080/speedtest/upload.php'}],
# 1542.170901504592: [{'cc': 'RU',
# 'country': 'Russia',
# 'd': 1542.170901504592,
# 'host': 'speedtest.bteleport.ru:8080',
# 'id': '18543',
# 'lat': '52.2757',
# 'lon': '104.3087',
# 'name': 'Irkutsk',
# 'sponsor': 'Baikal Teleport',
# 'url': 'http://speedtest.bteleport.ru:8080/speedtest/upload.php'},
# {'cc': 'RU',
# 'country': 'Russia',
# 'd': 1542.170901504592,
# 'host': 'speedtest-irkutsk.fttb.beeline.ru:8080',
# 'id': '31472',
# 'lat': '52.2757',
# 'lon': '104.3087',
# 'name': 'Irkutsk',
# 'sponsor': 'Beeline',
# 'url': 'http://speedtest-irkutsk.fttb.beeline.ru:8080/speedtest/upload.php'}]}
获取当前最佳的测试服务器
spd.get_best_server()
print('测试开始,请稍等...')
获得当前的下载速度
download = int(spd.download() / 1024 / 1024)
获得当前的上传速度
upload = int(spd.upload() / 1024 / 1024)
print(f'当前下载速度为:{str(download)} MB/s')
print(f'当前上传速度为:{str(upload)} MB/s')
print('测试已完成!')
打印出最终的返回结果
测试开始,请稍等...
当前下载速度为:12 MB/s
当前上传速度为:13 MB/s
测试已完成!
出处:https://www.cnblogs.com/lwsbc/p/16191801.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数