最近接到个任务,就是需要对手机T卡进行压力测试。然后就想解决方案,采取自动化方法,对手机不停的执行复制黏贴操作、读取T卡文件、对文件管理器执行Monkey操作等,以此来模仿人们手工操作T卡和手机。
好了,废话不多说,直接贴代码:
#!/bin/bash
trap "" HUP
echo "starts test"
i=1
min=1
max=10000
while [ $min -le $max ]
do
echo $min
cp -f /sdcard/0.apk /storage/sdcard1/0.apk
echo "copy 0.apk"
cp -f /sdcard/00.apk /storage/sdcard1/00.apk
echo "copy 00.apk"
cp -f /sdcard/0001.apk /storage/sdcard1/0001.apk
echo "copy 0001.apk"
cp -f /sdcard/001.apk /storage/sdcard1/001.apk
echo "copy 001.apk"
echo "copy cpuEx"
# cp -a /sdcard/cpuEx /storage/sdcard1/
sleep 1
monkey -p zte.com.cn.filer -s 20 --monitor-native-crashes -v -v --throttle 600 2000
sleep 1
rm -f /storage/sdcard1/0.apk
rm -f /storage/sdcard1/00.apk
rm -f /storage/sdcard1/0001.apk3
rm -f /storage/sdcard1/001.apk
cat /sdcard/cpuEx/charger_monitor.txt | while read LINE
do
echo $LINE
done
# rm -rf /storage/sdcard1/cpuEx
min=$(($min + 1))
done
echo "end test"
上述代码直接保存到run文件中,第一行代码主要是告诉手机该文件为shell脚本。
最关键的一行为:
trap "" HUP
这个主要是让手机离线执行,拔掉数据线之后,该shell脚本会一直在手机上独立运行。
然后将该shell脚本push到手机上:
adb push run /data/local/tmp/
执行完之后,对该run文件添加执行(X)权限:
adb shell chmod 777 /data/local/tmp/run
这样就可以了,然后就可以执行该shell脚本了:adb shell source /data/local/tmp/run
这样就结束了,手机就可以自动的进行压力测试,此时也可以拔掉数据线,让其离线执行这些操作。