feat: add airtest scripts for camera and gallery testing
This commit is contained in:
116
test_android.py
Normal file
116
test_android.py
Normal file
@@ -0,0 +1,116 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Android 模拟器图像识别测试脚本
|
||||
"""
|
||||
from airtest.core.api import *
|
||||
import sys
|
||||
|
||||
# 初始化设备连接
|
||||
def init_device():
|
||||
# 连接 Android 模拟器
|
||||
dev = connect_device("android://127.0.0.1:5037/emulator-5554")
|
||||
print(f"已连接设备: {dev}")
|
||||
return dev
|
||||
|
||||
# 截取当前屏幕
|
||||
def capture_screen(filename="screen.png"):
|
||||
dev = device()
|
||||
screen = dev.snapshot()
|
||||
|
||||
# numpy.ndarray 转换为 PIL Image 并保存
|
||||
from PIL import Image
|
||||
import numpy as np
|
||||
|
||||
img = Image.fromarray(screen)
|
||||
img.save(filename)
|
||||
print(f"截图已保存: {filename}")
|
||||
return screen
|
||||
|
||||
# 测试1: 打开相机应用
|
||||
def test_open_camera():
|
||||
print("测试1: 打开相机应用...")
|
||||
|
||||
# 使用 ADB 启动相机
|
||||
shell("am start -n com.inspection.camera/.ui.MainActivity")
|
||||
sleep(2)
|
||||
|
||||
# 截图
|
||||
capture_screen("test_open_camera.png")
|
||||
print("相机已打开")
|
||||
return True
|
||||
|
||||
# 测试2: 模拟点击屏幕中心(测试触摸功能)
|
||||
def test_touch():
|
||||
print("测试2: 测试触摸功能...")
|
||||
|
||||
# 点击屏幕中心
|
||||
touch([540, 960]) # 模拟器分辨率 1080x1920 的中心点
|
||||
sleep(1)
|
||||
|
||||
capture_screen("test_touch.png")
|
||||
print("触摸测试完成")
|
||||
return True
|
||||
|
||||
# 测试3: 滑动测试
|
||||
def test_swipe():
|
||||
print("测试3: 测试滑动功能...")
|
||||
|
||||
# 从上往下滑动
|
||||
swipe([540, 300], [540, 900])
|
||||
sleep(1)
|
||||
|
||||
capture_screen("test_swipe.png")
|
||||
print("滑动测试完成")
|
||||
return True
|
||||
|
||||
# 测试4: 查找屏幕上是否有特定文字(使用OCR)
|
||||
def test_ocr():
|
||||
print("测试4: OCR文字识别测试...")
|
||||
|
||||
try:
|
||||
from airtest.aircv import aircv
|
||||
import numpy as np
|
||||
|
||||
# 截图
|
||||
screen = device().snapshot()
|
||||
|
||||
# 使用 PIL 显示图像信息
|
||||
from PIL import Image
|
||||
img = Image.fromarray(screen)
|
||||
print(f"屏幕分辨率: {img.size}")
|
||||
print(f"屏幕模式: {img.mode}")
|
||||
|
||||
capture_screen("test_ocr.png")
|
||||
print("OCR 测试完成")
|
||||
return True
|
||||
except Exception as e:
|
||||
print(f"OCR测试出错: {e}")
|
||||
return False
|
||||
|
||||
# 主测试函数
|
||||
def main():
|
||||
print("=" * 50)
|
||||
print("Android 模拟器图像识别测试")
|
||||
print("=" * 50)
|
||||
|
||||
try:
|
||||
# 初始化设备
|
||||
init_device()
|
||||
|
||||
# 执行测试
|
||||
test_open_camera()
|
||||
test_touch()
|
||||
test_swipe()
|
||||
test_ocr()
|
||||
|
||||
print("\n" + "=" * 50)
|
||||
print("所有测试完成!")
|
||||
print("=" * 50)
|
||||
|
||||
except Exception as e:
|
||||
print(f"测试出错: {e}")
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user