您的位置:首页 > 技术中心 > 其他 >

怎么利用Python实现网络测试

时间:2023-05-18 06:34

Speedtest CLI 专为软件开发人员、系统管理员和计算机爱好者等打造,是 Ookla® 提供技术支持的首款正式 Linux 本机 Speedtest 应用程序。

Python语言编写的Speedtest CLI可在命令行直接运行,实现网络速度测试。也可以作为python模块在python IDE中直接调用。

首先,看一下如何在python应用中进行调用,使用pip直接安装。

pip install speedtest-cli

将该模块直接导入到我们当前的代码块中。

import speedtest as spt

创建网络测试对象

spd = spt.Speedtest()

打印当前可用于测试的服务器列表

from pprint import pprintpprint(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
测试已完成!

以上就是怎么利用Python实现网络测试的详细内容,更多请关注Gxl网其它相关文章!

本类排行

今日推荐

热门手游