我正在连接手机进行一些吞吐量测试,我正在尝试确定平均带宽。它将是Mbits / sec
中的某个值我在服务器端运行以下命令(手机连接在我的电脑上):
adb shell setprop android.telephony.apn-restore 10000000;
export PATH=/data/busybox:$PATH#;
export PATH=/data:$PATH#;
chmod 777 /data/iperf
adb shell /data/iperf -s -p 5199 -B 172.20.184.121 -u -i 1
adb shell exit
exit
其中172.20.184.121
是我设备的IP。
在客户端,我有这个:
iperf -c 172.20.184.121 -p 5199 -u -b 300M -t 60 -i 1
现在,我所做的是,我将上面的adb shell命令编写到一个小的.bat文件中,我调用该bat文件,并试图将其输出管道输出到.txt文件,以便我可以得到输出实际的UDP传输。我希望看到带宽等。我使用Perl脚本中的系统命令调用adbcommands.bat
。所以我的脚本会在命令提示符下启动批处理文件:
start adbcommands.bat > output.txt
但是我的.txt文件中没有任何内容。该文件为空。正如您所看到的最后一条指令是exit
,因此打开以运行adb shell命令的新命令窗口将自行关闭,我希望当它关闭时,我的.txt文件将具有数据传输信息。不。
那么,我尝试使用这样的tee.exe
命令:
start adbcommands.bat | tee output.txt
仍然没有。所以现在我没有子弹,想要一些帮助。有没有人知道如何获得吞吐量信息?
对于那些好奇的人,如果我没有将输出传递给文件,并且如果我运行上面的adbcommands.bat
文件,则输出如下所示:
adb shell /data/iperf -s -p 5115 -B 172.20.184.121 -u -i 1
------------------------------------------------------------
Server listening on UDP port 5115
Binding to local address 172.20.184.121
Receiving 1470 byte datagrams
UDP buffer size: 224 KByte (default)
------------------------------------------------------------
[ 3] local 172.20.184.121 port 5115 connected with 172.20.98.85 port 51948
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0- 1.0 sec 148 KBytes 1.21 Mbits/sec 7.762 ms 38211/38314 (88%)
[ 3] 2.0- 3.0 sec 159 KBytes 1.31 Mbits/sec 5.820 ms 743/ 854 (87%)
[ 3] 3.0- 4.0 sec 159 KBytes 1.31 Mbits/sec 6.762 ms 756/ 867 (87%)
.....
.....
[ 3] 0.0-166.2 sec 54.5 MBytes 2.75 Mbits/sec 7.700 ms 4506398/4545298 (99%)
我需要的是最后一行:2.75 Mbits/sec
。这是我的吞吐量。我试图管道到.txt文件,以便我的脚本可以解析它并找到该值。
答案 0 :(得分:1)
根据您在问题中描述的内容,如果您运行
adb shell /data/iperf -s -p 5199 -B 172.20.184.121 -u -i 1 > output.txt
您应该能够将输出重定向到文件。