在进行自动化测试时,经常会有让你一个人提着电脑去压力测试数台设备的情况,这种时候连着一个个运行会觉得很麻烦,数量少还好说,三四台一个个跑就行了,要是三四十台,不得把人累死。
长话短说,直接开始说明脚本编写的思路和步骤。
在运行adb来操作多个安卓设备,首先要知道这些机器的SN号,输入adb devices获得所有连接设备的sn号,然后一个个启动脚本再输入SN号。并且通过这种方式获取的SN号没法提取出来直接使用,所以可以写个代码一键提取出来。
import os
import re
a = os.popen('adb devices').read()
test = re.split('\t|\n',a)
s=[]
for ad in test:
d = 'XX' in ad
if d == True:
s.append(ad)
这里的XX是指SN码的前缀,通过re.split使用\t,\n分割成一个字符串列表,再通过‘XX’ in ad 判断是否为要求的SN码,再加入进新的列表中,这样就能把SN提取出来,后面再来编写一个sh脚本来进行操作。
sh要接收python的返回值的话,需要使用sys.exit(xxxx),这里的xxxx是函数名,所以要把上边的代码弄成函数的形式再写上去,之后通过
#!/bin/bash
# 运行Python脚本并获取返回值
result=$(python test.py)
result_array=(${result//,/ })
for item in "${result_array[@]}"; do
python auto_xxxx.py $item &
done
这样可以把python输出的内容转化到sh脚本中来使用并且由这些SN码来同时启动多个设备,实战就不演示了,用的公司设备不太好展示。