赞
踩
公司里测试的产品,主要在APP端,软件出现异常时,APP有收集日志功能. 收集的日志,会自动传输到服务器上.
在填写BUG时,需要附上日志上传的截图. 经常的做法是:
1.通过软件拍照,同步到电脑上. 得到这张截图. 问题:手机画质和亮度影响,可能有不清晰的情况.
2.通过平板自身的截图功能,平板截图后,再导到电脑上(不管是有线USB传输文件,还是adb命令).
不管是哪个方式,都比较麻烦.且方式1会给手机内存造成一定负担,自己删除也麻烦.
adb截图命令:
adb shell screencap -p sdcard/screen/filename.png
adb将文件传到本机:
adb pull sdcard/screen/filename.png d: # 传到d盘根目录下
延伸:将本机文件传到平板上.
adb push d:\filename.png sdcard/screen/
import os import time def file_time(): # 返回当前的时间戳 2022-06-10_16_51_53 now_time = time.localtime() # [2022, 6, 10, 16, 3, 5, 0, 335, 0] date_1 = '-'.join(str(i).zfill(2) for i in now_time[:3]) time_1 = '_'.join(str(i).zfill(2) for i in now_time[3:6]) return date_1 + '_' + time_1 def get_devices(): # 获取所有连接设备的列表 all_devices = [] cmd = 'adb devices' result = os.popen(cmd).readlines()[1:] for item in result: if item != "\n": all_devices.append(str(item).split("\t")[0]) # print(get_time(),f"当前连接的设备有:{len(all_devices)}") return all_devices # 设备列表['device113','10.2.8.103:5555',3] def app_screenshot(device='', file_name=''): # 注意:logger是自己封装的log函数,这里报错时,请自己封装一个.或者直接用print替代. if not get_devices(): # 先检测当前电脑有没有连接设备 logger.warning("当前电脑没有连接任何一个Android设备,无法进行截屏操作.请检查设备连接情况.") return dir = "D:\AutomationScreen" # 创建存放截图的电脑文件夹,根据自己需要设置 if not os.path.exists(dir): os.makedirs("D:\AutomationScreen") # 还没有这个文件夹,就创建一个 path = '/sdcard/lxb_shoot' # 存放截图的平板文件夹,根据自己需要设置 if not file_name: file_name = 'ScreenShoot' + file_time() # 没有指定文本名称时,使用时间戳 try: os.system(f"adb shell mkdir -p {path}") # 先创建一个文件夹 except: pass if device: # 多设备的情况下,需要指定设备截图. # 指定设备 os.system(f"adb -s {device} shell screencap -p {path}/{file_name}.png") logger.debug(f"截图成功,截图存放位置:{path}/{file_name}.png") time.sleep(1) # 给个短暂等待,让图片正常生成. os.system(f"adb -s {device} pull {path}/{file_name}.png {dir}") logger.debug(f"截图下载到本机成功,截图存放位置:{dir}\\{file_name}.png") # windows是反斜杠. else: os.system(f"adb shell screencap -p {path}/{file_name}.png") logger.debug(f"截图成功,截图存放位置:{path}/{file_name}.png") time.sleep(1) os.system(f"adb pull {path}/{file_name}.png {dir}") logger.debug(f"截图下载到本机成功,截图存放位置:{dir}\\{file_name}.png") if __name__ == '__main__': app_screenshot()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。