第一个用例编写就是蓝牙文件传输200次,当时第一个念头没想到下拉弹框利用控件来判断文件传输成功,而是用的adb命令来查看我每次传输结束以后,对应的文件夹内文件是否有新增文件。
方法思路还行就是稍显繁琐,下面就是一些代码的详细思路。
# 初始化记录文件夹中有几张照片
first_numbers = os.popen("adb -s " + {device_id} + " shell ls /storage/sdcard0/bluetooth").read().split()
print('初始化照片数量:'+str(len(first_numbers)))
# 传输结束之后在进行数量上的判断 并输出log
if len(png) != len(first_numbers) + 1:
# 输出log信息
f = open(r'C:Users sDesktop est.txt', 'w')
print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), file=f)
print('第' + str(i) + '次传输文件失败', file=f)
对蓝牙传输的判断我们不仅到判断数量,还得查看传输的文件大小是否缺失。
# 判断文件大小
size1 = os.popen("adb -s " + {device_id} + " shell ls -st /storage/sdcard0/bluetooth").read().split()
后来我就采用uiautormator的一些方法,用控件来判断。
其中,需要注意的是:
1.设备要有不一样的蓝牙address,否则在一群设备在实验室进行传输时会导致乱传(即使我是点击不同的传输名称)
2.蓝牙设备可能并不能每次都能发起传输到我们的辅助机器,这就需要我们多用循环加判断,来避免这些问题。
代码中用到一些原生uiautomator的方法:
# 下拉提示框
d.open_notification()
d.open_quick_settings()
# 设置蓝牙设备名称时
d(resourceId='resource_id').set_text('text')