用例的主要步骤如下:
1. 开机到主界面
2. 使 屏幕灭 执行 adb shell input keyevent 223
3. 查看屏幕状态。应显示off 执行 adb shell "dumpsys power | grep 'Display Power' "
4. 使 屏幕亮 执行 adb shell input keyevent 224
5. 查看屏幕状态。应显示on 执行 adb shell "dumpsys power | grep 'Display Power' "
6.重复步骤2-5
#!/bin/bash
i=""
SN=$1
number=$2
adb_command10(){
for a in `seq $number`
do
adb -s $SN shell input keyevent 223
sleep 3
adb -s $SN shell "dumpsys power | grep 'Display Power' "
sleep 3
adb -s $SN shell input keyevent 224
sleep 3
adb -s $SN shell "dumpsys power | grep 'Display Power' "
echo "第$a轮测试完成"
sleep 3
done
}
if [ "$number" != "$i" ] && [ $number -gt 0 ]
then
start_time=`date +%s`
adb_command10
end_time=`date +%s`
echo "测试时长:$(($end_time-$start_time))"
else
number=200
start_time=`date +%s`
adb_command10
end_time=`date +%s`
echo "测试时长:$(($end_time-$start_time))"
fi
exec bash
嫌弃手动一台台执行太慢,又异常枯燥,写成一个循环调用方法的sh脚本,可以多台机器一起跑 ./SleepAndWake.sh DSN 200 :
使用if控制语句,调用函数,函数内使用for循环。
现在写完再看,真的是过于简单的一个脚本。
还有测试人员实际操作,想把adb devices也省了,不用复制粘贴机台号。emmm.....
新写一个sh脚本,就是对之前脚本的调用:
#/bin/bash
string=$(adb devices | cut -b 1-16)
DSN=(`echo $string | tr ' ' ' '`)
num=$1
str_command="gnome-terminal "
for ((i=3;i<${#DSN[@]};i++))
do
str_command=${str_command}"--title=${DSN[$i]} --window -e \"./SleepAndWake.sh ${DSN[$i]} ${num}\" "
done
#echo $str_command
#gnome-terminal --title=A机台号 --window -e "./SleepAndWake.sh A机台号 1" --title=B机台号 --window -e "./SleepAndWake.sh B机台号 1" ......
echo `eval $str_command`
这里用了cut和 tr 指令对adb devices的执行结果字符串进行按列分割、按字符替换,得到字符串数组DSN。
我们现在测试用设备机台号都是16位。按1到16位切割,再用空格替换空格(感觉像Java中split分割方法,一样得到数组)。
cut可以指定使用参数-b,按字符列进行切割;
tr指令只能对单字符进行替换。
从DSN[3]开始,存储的就是机台号了;0~2是List,of和devices;
使用for循环拼接字符串命令,gnome-terminal命令是Ubuntu自带,可以开子线程控制台。--title指定子线程标题,--window 开新窗口 -e 执行指定命令。
eval :转换字符串->可执行指令
反单引号执行命令:`eval ${str_command}`
把新脚本放到原来的脚本同级目录下,调用新脚本只需一个参数:执行次数
比如 休眠息屏888次: ./SleepAndWake2.0.sh 888
本文介绍了如何使用shell脚本自动化控制多台Android设备进行屏幕的熄灭和点亮操作,以提高效率。脚本通过adb命令与设备交互,并提供了将设备名自动提取和批量执行的功能,利用gnome-terminal在Ubuntu环境下开新窗口运行子线程。通过eval命令将字符串转换为可执行指令,简化了多设备操作流程。
410

被折叠的 条评论
为什么被折叠?



