Iperf3测试安卓设备的WiFi
摘要本文详细介绍如何使用 Iperf3 在安卓设备上进行 WiFi 网络性能测试。文章从 Iperf3 的下载与安装讲起系统梳理了常用命令参数如服务端/客户端区分、报告间隔、测试时长、协议与带宽设置、上下行、多线程、双向并发、缓冲区等并依次演示 TCP 与 UDP 的上传、下载、压力测试方法及结果解读。此外还给出 WiFi 基本信息查询、信道计算方式以及测试数据是否正常的判断方法和常见问题排查思路帮助读者快速掌握安卓 WiFi 吞吐率测试的完整流程。文章目录前言一、测试前准备1、Iperf3下载2、Iperf3安装二、Iperf3常用命令与用法三、WiFi基本信息查询四、TCP测试五、UDP测试六测试常见问题答疑总结前言在安卓设备的开发与测试工作中WiFi 网络性能是衡量设备体验的重要指标之一。无论是日常应用的数据传输、在线视频播放还是视频会议、云盘同步等场景都离不开稳定且高效的无线网络支撑。而如何客观、准确地评估一台安卓设备的 WiFi 吞吐率是很多开发者和测试工程师都会遇到的问题。Iperf3 是一款轻量、开源且跨平台的网络性能测试工具能够灵活地测量 TCP 与 UDP 协议下的上传、下载速率并支持多线程、双向并发、压力测试等多种场景是进行 WiFi 吞吐率测试的常用选择。本文将从 Iperf3 的下载与安装讲起系统梳理常用命令参数的含义与用法并依次演示 TCP 与 UDP 的上传、下载、压力测试方法及结果解读。此外文章还会介绍如何通过 adb 命令查询 WiFi 基本信息、计算信道以及如何判断测试数据是否正常、遇到速率偏低时如何排查。希望通过本文能够帮助读者快速掌握安卓 WiFi 吞吐率测试的完整流程并在实际工作中灵活运用。一、测试前准备1、Iperf3下载windows端应用和安卓端源码找到以下地址可直接下载windows端应用下载地址https://files.budman.xyz/https://iperf.fr/iperf-download.php已在CSDN上传APK文件、Windows应用、安卓二进制文件资源下载地址https://download.csdn.net/download/2301_77563065/934838762、Iperf3安装电脑端和安卓APK直接解压使用即可二进制文件需要push进去并给对应权限才能使用//拷贝二进制文件到tmp目录 adb push iperf3.21 /data/local/tmp/ //给777权限 adb shell su cd /data/local/tmp/ chmod 777 iperf3.21 setenforce 0问题为什么有APK不用要用二进制文件网上能找到的已编译好的APK文件基本都不兼容最新的几个安卓版本所以直接用二进制文件更方便否则的话需要下载源码自行编译APK解决兼容性问题注意事项给了权限之后如果重启设备权限会失效需要重新给权限。二、Iperf3常用命令与用法服务端和客户端区分192.168.1.15为服务端IP地址//服务端 iperf3 -s //客户端 iperf3 -c 192.168.1.15报告输出间隔-i 1表示1秒输出一次数据一般设置为1-5秒//仅客户端使用 iperf3 -c 192.168.1.15 -i 1测试持续时间-t 30表示测试时长为30秒一般测试吞吐率设置为30秒压力测试设置为60秒以上不设置-t参数默认为10秒//仅客户端使用 iperf3 -c 192.168.1.15 -i 1 -t 30协议设置-u表示为UDP协议不加时默认为TCP协议//仅客户端使用 iperf3 -c 192.168.1.15 -u -i 1 -t 30带宽设置//仅客户端使用 iperf3 -c 192.168.1.15 -u -b 80M -i 1 -t 3080M表示带宽设置为80M目前WiFi协议支持的带宽为20M、40M、80M、160M、320M具体设置为多少与路由器上的带宽设置为一致即可。需注意测试UDP协议时如果不设置带宽那么默认带宽为1M例802.11bWiFi1、802.11aWiFi2、802.11gWiFi3带宽只能设置为20M802.11nWiFi4支持20M和40M802.11acWiFi5、802.11axWiFi6、WiFi6E支持20、40、80、160802.11beWiFi7支持20、40、80、160、320上下行设置-R表示反向模式不加-R时默认测试的是上行速率加了-R后则测试的是下行速率注意R为大写字母//仅客户端使用 iperf3 -c 192.168.1.15 -R -i 1 -t 30多线程设置-P表示测试多线程4表示为4线程注意P为大写字母//仅客户端使用 iperf3 -c 192.168.1.15 -P 4 -i 1 -t 30什么情况下需要测试多线程AI给出了4步判断法实际如何判断把单线程和多线程测试数据拿出来对比一下即可双向并发能力测试用于模拟实际使用场景例视频会议、直播连麦一边云盘同步数据一边看在线视频//仅客户端使用 iperf3 -c 192.168.0.2 -i 1 -t 30 --bidir设置缓冲区大小当实测数据 协商速率的40%时可设置大缓冲区后再次测试//仅客户端使用 //4M表示缓冲器设置为4M iperf3 -c 192.168.0.2 -w 4M -i 1 -t 30三、WiFi基本信息查询1、WiFi信息查询命令adb shell cmd wifi status2、结果重点内容解析Tx Link speed96Mbps上传协商速率可与实测结果对比正常情况下实测数据 协商速率的40%Rx Link speed57Mbps下载协商速率可与实测结果对比正常情况下实测数据 协商速率的40%Frequency2462MHz WiFi频段2.4GHz信道2462-2407➗5 11Wi-Fi standard: 11n WiFi协议802.11n3、WiFi信道计算方式2.4G信道 频段 - 2407➗55G信道 频段 - 5000➗56G信道 频段 - 5950➗5四、TCP测试1、TCP上传速率测试服务器端直接在iperf3.exe的目录鼠标右键打开cmd窗口然后执行命令iperf3.exe -s客户端被测试的安卓设备iperf3 -c 192.168.0.15 -i 1 -t 30客户端执行结果如下2、TCP下载速率测试服务器端与上传测试一样客户端被测试的安卓设备命令增加 -Riperf3 -c 192.168.0.15 -R -i 1 -t 30客户端执行结果如下3、TCP压力测试压力测试只需增加-t后面的时间即可可自由设置上传压力测试下载压力测试同时上传下载压力测试命令如下服务器端命令不变客户端//上传压力测试3600为1个小时 iperf3 -c 192.168.0.15 -i 1 -t 3600 //下载压力测试 iperf3 -c 192.168.0.15 -R -i 1 -t 3600 //同时上传和下载压力测试 iperf3 -c 192.168.0.15 -i 1 -t 3600 --bidir4、TCP测试结果说明如上图所示ID线程ID测试单线程时只有1个ID多线程就会有多个Interval测试时长Transfer上传/接收到的数据总量Bitrate上传/接收速率Retr重传次数sender客户端上传数据汇总receiver服务端接收到的数据汇总测试上传时sender行的Bitrate数据为上传速率测试下载时receiver行的Bitrate数据为下载速率速率转换94.1Mbits/sec ✖ 128 12044.8kb/s12044.8kb/s ➗1024 11.7625M/s五、UDP测试1、UDP上传速率测试服务器端与TCP测试一样客户端被测安卓设备-u表示测试UDP不加-u默认为TCP-b 20M表示测试带宽为20M不加-b参数默认为1Miperf3 -c 192.168.0.2 -u -b 20M -i 1 -t 30测试结果如下2、UDP下载速率测试服务器端与TCP测试一样客户端被测安卓设备同样与TCP测试一样增加-Riperf3 -c 192.168.0.2 -R -u -b 20M -i 1 -t 30测试结果如下3、UDP压力测试服务器端与TCP测试一样客户端被测安卓设备同样与TCP测试一样增加-R需注意iperf3.21版本测试UDP时无法同时上传和下载其他版本需自行探索//上传压力测试3600为1个小时 iperf3 -c 192.168.0.100 -u -b 20M -i 1 -t 3600 //下载压力测试 iperf3 -c 192.168.0.100 -R -u -b 20M -i 1 -t 36004、UDP测试结果说明测试结果解释如上图所示IDIntervalTransfersenderreceiver这5个参数的含义与TCP测试一样Bitrate带宽Jitter抖动数据包到达时间间隔的变化单位是毫秒(ms)。数值越小网络越稳定Lost/Total Datagrams丢包/总包数比例也就是丢包率测试上传时receiver行的Jitter为上传抖动Lost/Total Datagrams为上传丢包率测试下载时sender行的Jitter为下载抖动Lost/Total Datagrams为下载丢包率测试参考标准来自AI抖动标准丢包率标准六测试常见问题答疑如何确认测试的数据是否正常1、实测速率与协商速率对比如TCP实测速率 协商速率的40%则不正常2、多线程对比如TCP单线程实测速率 多线程速率说明CPU单核已跑满影响了测试结果3、设置不同缓冲区对比如实测结果 加大缓冲区后测试结果说明缓冲区太小影响了测试结果4、UDP测试对比如TCP测试速率 UDP测试速率说明TCP默认设置或协议栈为瓶颈5、更换服务端的端口对比如默认端口测试速率 修改端口后的数据说明默认端口被限速影响了测试结果TCP实测速率 协商速率的40%怎么办1、尝试在客户端设置-w 4M后测试看数据是否达标2、如4M设置后报错遇到以上问题输入以下命令解决3、如测试的协商速率100M检查服务端网卡是否支持百兆以上检查服务端与路由器连接的端口是否支持百兆以上4、测试过程中使用top命令查看CPU单核是否跑满如已经跑满则尝试设置多线程再次测试对比多线程测试的结果5、使用 -P 5002命令更换测试端口后再次测试对比结果查看是否端口限速总结本文围绕安卓设备 WiFi 吞吐率测试系统介绍了使用 Iperf3 的完整流程。首先讲解了 Iperf3 的下载与安装方式并说明了为何优先选用二进制文件而非 APK随后梳理了常用命令参数包括服务端/客户端区分、报告间隔、测试时长、协议与带宽设置、上下行、多线程、双向并发以及缓冲区大小等。在此基础上依次演示了 TCP 与 UDP 协议下的上传、下载、压力测试方法并详细解读了测试结果中各项指标的含义如 Bitrate、Jitter、丢包率等。此外文章还介绍了通过 adb 命令查询 WiFi 基本信息与信道计算方式并给出了判断测试数据是否正常的方法以及实测速率偏低时的排查思路包括调整缓冲区、检查网卡与端口、对比多线程结果等。掌握以上内容即可在实际工作中高效完成安卓设备的 WiFi 吞吐率评估与问题定位。