#!/usr/bin/python
# -*- coding: GBK -*-
import os
import time
import datetime
import uiautomator2 as u2
import subprocess
from threading import Timer
import numpy as np
from PIL import ImageGrab
pi = subprocess.Popen("adb devices", shell=True, stdout=subprocess.PIPE)
devicesId = str(pi.stdout.read())[30:38]
d = u2.connect_usb(devicesId)
engineering_camera_waitTime = 1
screenshot_waitTime = 3
Power_waitTime = 6
bat_path = "bat" + os.sep
def is_awake():
d.screen_on()
time.sleep(1)
d.swipe_points([(0.497, 0.885), (0.515, 0.191)], 0.01) # 滑动解锁界面
print("解锁成功")
def kill_command(p):
"""终止命令的函数"""
p.kill()
print("终止命令的函数进程")
def execute(command, timeout):
# 执行shell命令
p = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# 设置定时器去终止这个命令
timer = Timer(timeout, kill_command, [p])
try:
timer.start()
stdout, stderr = p.communicate()
return_code = p.returncode
print(return_code)
print(stdout, stderr)
# cunt = 0
# while:
if return_code != 0:
p
except Exception as e:
print(e)
finally:
timer.cancel()
def engineering_camera():
# 输入*#809#
d.app_stop("com.oplus.engineercamera")
d.app_stop("com.android.contacts")
d.app_start("com.android.contacts")
time.sleep(1)
d(text="拨号").click()
time.sleep(1)
d.xpath('//*[@resource-id="com.android.contacts:id/star"]/android.widget.LinearLayout[1]').click()
d.xpath('//*[@resource-id="com.android.contacts:id/pound"]/android.widget.LinearLayout[1]').click()
d.xpath(
'//*[@resource-id="com.android.contacts:id/eight"]/android.widget.LinearLayout[1]/android.widget.ImageView[1]').click()
d.xpath(
'//*[@resource-id="com.android.contacts:id/zero"]/android.widget.LinearLayout[1]/android.widget.ImageView[1]').click()
d.xpath(
'//*[@resource-id="com.android.contacts:id/nine"]/android.widget.LinearLayout[1]/android.widget.ImageView[1]').click()
d.xpath('//*[@resource-id="com.android.contacts:id/pound"]/android.widget.LinearLayout[1]').click()
print("进入工程相机")
time.sleep(engineering_camera_waitTime)
def mipi_bypass():
try:
# 设置参数
print("mipi_bypass场景开始测试")
# os.system("MIPI_bypass.bat")
execute(command=bat_path + "MIPI_bypass.bat", timeout=60)
engineering_camera()
# 打开后置相机预览
d(text="后置相机预览").click()
time.sleep(screenshot_waitTime)
d.screenshot('./log_img/mipi_bypass-1.png')
time.sleep(Power_waitTime)
d.press("back")
time.sleep(engineering_camera_waitTime)
# 打开后置副相机预览
d(text="后置副相机预览").click()
time.sleep(screenshot_waitTime)
d.screenshot('./log_img/mipi_bypass-2.png')
time.sleep(Power_waitTime)
d.press("back")
time.sleep(engineering_camera_waitTime)
# 打开第三颗摄像头预览
d(text="后置第三颗摄像头预览").click()
time.sleep(screenshot_waitTime)
d.screenshot('./log_img/mipi_bypass-3.png')
time.sleep(Power_waitTime)
d.press("back")
time.sleep(engineering_camera_waitTime)
# 打开第四颗摄像头预览
d(text="后置第四颗摄像头预览").click()
time.sleep(screenshot_waitTime)
d.screenshot('./log_img/mipi_bypass-4.png')
time.sleep(Power_waitTime)
d.press("back")
time.sleep(engineering_camera_waitTime)
# 打开前置相机预览
d(text="前置相机预览").click()
time.sleep(screenshot_waitTime)
if not os.path.exists("log_img"):
os.makedirs("log_img")
d.screenshot('./log_img/mipi_bypass-5.png')
time.sleep(Power_waitTime)
d.press("back")
print("mipi_bypass场景测试结束")
except Exception as e:
print(e)
def ultra_dark():
try:
# 设置参数
print("ultra_dark场景开始测试")
# os.system("ultra_dark.bat")
execute(command=bat_path + "UD.bat", timeout=60)
engineering_camera()
# 打开后置相机预览
d(text="后置相机预览").click()
time.sleep(screenshot_waitTime)
if not os.path.exists("log_img"):
os.makedirs("log_img")
d.screenshot('./log_img/ultra_dark.png')
time.sleep(Power_waitTime)
d.press("back")
print("ultra_dark场景测试结束")
except Exception as e:
print(e)
def super_night1dol():
try:
# 设置参数
print("super_night1dol场景开始测试")
# os.system("super_night1dol.bat")
execute(command=bat_path + "SN_1dol.bat", timeout=60)
engineering_camera()
# 打开后置相机预览
d(text="后置相机预览").click()
time.sleep(screenshot_waitTime)
if not os.path.exists("log_img"):
os.makedirs("log_img")
d.screenshot('./log_img/super_night1dol.png')
time.sleep(Power_waitTime)
d.press("back")
print("super_night1dol场景测试结束")
except Exception as e:
print(e)
def super_night2dol():
try:
# 设置参数
print("super_night2dol场景开始测试")
# os.system("super_night2dol.bat")
execute(command=bat_path + "SN_2dol.bat", timeout=60)
engineering_camera()
# 打开后置相机预览
d(text="后置相机预览").click()
time.sleep(screenshot_waitTime)
if not os.path.exists("log_img"):
os.makedirs("log_img")
d.screenshot('./log_img/super_night2dol.png')
time.sleep(Power_waitTime)
d.press("back")
print("super_night2dol场景测试结束")
except Exception as e:
print(e)
def normal1dol():
try:
# 设置参数
print("normal1dol场景开始测试")
# os.system("normal1dol.bat")
execute(command=bat_path + "Normal_1dol.bat", timeout=60)
engineering_camera()
# 打开后置相机预览
d(text="后置相机预览").click()
time.sleep(screenshot_waitTime)
if not os.path.exists("log_img"):
os.makedirs("log_img")
d.screenshot('./log_img/normal1dol.png')
time.sleep(Power_waitTime)
d.press("back")
print("normal1dol场景测试结束")
except Exception as e:
print(e)
def normal2dol():
try:
# 设置参数
print("normal2dol场景开始测试")
# os.system("normal2dol.bat")
execute(command=bat_path + "Normal_2dol.bat", timeout=60)
engineering_camera()
# 打开后置相机预览
d(text="后置相机预览").click()
time.sleep(screenshot_waitTime)
if not os.path.exists("log_img"):
os.makedirs("log_img")
d.screenshot('./log_img/normal2dol.png')
time.sleep(Power_waitTime)
d.press("back")
print("normal2dol场景测试结束")
except Exception as e:
print(e)
def camera_4k_1dol():
try:
# 设置参数
print("camera_4k_1dol场景开始测试")
# os.system("camera_4k60fps1.bat")
execute(command=bat_path + "4k_1dol.bat", timeout=60)
engineering_camera()
# 打开后置相机预览
d(text="后置相机预览").click()
time.sleep(screenshot_waitTime)
if not os.path.exists("log_img"):
os.makedirs("log_img")
d.screenshot('./log_img/camera_4k60fps1.png')
time.sleep(Power_waitTime)
d.press("back")
print("camera_4k_1dol场景测试结束")
except Exception as e:
print(e)
def camera_4k_2dol():
try:
# 设置参数
print("camera_4k_2dol场景开始测试")
# os.system("camera_4k60fps2.bat")
execute(command=bat_path + "4k_2dol.bat", timeout=60)
engineering_camera()
# 打开后置相机预览
d(text="后置相机预览").click()
time.sleep(screenshot_waitTime)
if not os.path.exists("log_img"):
os.makedirs("log_img")
d.screenshot('./log_img/camera_4k60fps2.png')
time.sleep(Power_waitTime)
d.press("back")
print("camera_4k_2dol场景测试结束")
except Exception as e:
print(e)
if __name__ == '__main__':
for i in range(100):
is_awake()
try:
a = datetime.datetime.now() # 时间标记
normal1dol()
normal2dol()
super_night1dol()
super_night2dol()
ultra_dark()
camera_4k_1dol()
camera_4k_2dol()
mipi_bypass()
b = datetime.datetime.now() # 时间标记
print("耗时:" + str((b - a).seconds) + "秒")
print("成功执行第" + str(i + 1) + "次")
except Exception as e:
print(e)
相机工程模式测试
最新推荐文章于 2022-08-26 10:37:03 发布