本人需求:
网络不是很好,打游戏总是断网,怀疑路由器或者光猫有问题,但是断流是偶现的,极其不方便捕捉,所以做一个长时间测延迟的软件
软件说明:
使用python开发, 主要是利用了其中的yaml的解析配置模块和最重要的matplotlib来生成图片,可以支持长时间有人/无人值守测网通,生成折线图
主要是封装了ping命令,由于cls命令会导致闪烁,python层面的双缓冲自带bug(调用系统命令会盖掉双缓冲的管道),所以使用c写了gotoxy函数,避免闪烁
使用说明:
下载使用即可,下面是yaml中配置参数,yaml格式中和了xml和json的优点,可读性好,空间占用少,#后面是备注,可以根据自己的需求灵活配置,如果ping超时,会把y轴坐标置为-1,设置range参数时一定注意!
range参数会做一个简单的判断,原型就是python中的lambda函数,如果不满足lambda条件,记录会打印在屏幕,但是不会被记录在折线图统计中!
软件分为有人/无人值守模式,通过yaml配置,有人值守模式测速中途可捕捉回车键,按下回车键后立即停止测速并生成折线图,且测速后并不会自动退出,需要按任意键退出
无人值守模式不会捕捉键盘事件,且运行完成后自动退出
注意事项:
由于导入的matplotlib模块功能极其强大,且python性能较低
所以软件在启动加载过程会假死几秒
软件结束绘图也会花费数秒时间(如果时间跨度极大,作图时间也呈线性增长)
由于可能有人有超长时间的测速需求,那么折线图的样式就需要配置一下。
主要注意事项是在配置文件,请仔细阅读!
target_ip: # 目标域名/ip
'baidu.com'
count: # 测试次数
10
protocol: # 协议,目前只支持icmp,勿动
- 'icmp'
cell: # 测试间隔,单位秒
1
row_num: # 保留最近n行记录
5
string_length: # 行长度,避免出现脏字符,出现脏字符就加长
100
show_pic: # 是否展示折线图,1代表展示,0代表不展示
0
pic_dir: # 生成折线图保存的文件夹
'./output'
datail_graph: # 是否开启精确刻度,开启可使时间刻度不重叠,关闭可显著缩小图片宽度,低于1600条每条刻度都显示,超过1600条刻度会合并处理
0
range: # 简单的判断,满足此条件则记录至画布,因为超时会置为-1,所以-1的情况也要考虑
'i != 0'
unattended: # 是否为无人值守,有人值守时,按回车键可强制停止测速且生成图片后且点击任意键退出,无人值守不可中途停止,且结束自动退出
1
运行截图:
下载地址:
https://wwr.lanzoui.com/ie4hKvvms1i密码:3z9s
源码地址:https://github.com/zhaoxinyuan996/continued-net-test
打包方式:
test.c编译成cprint.so,放在so文件夹中
新建output文件夹(默认输出文件夹)
config.yaml文件
可选:static中存放的是图标文件
pyinstaller打包