相机工程模式测试

#!/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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_38185649

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值