当前位置: 首页 > article >正文

使用教程:基于 uiautomator2 和 pytest 的图片相似度测试脚本

使用教程:基于 uiautomator2pytest 的图片相似度测试脚本

这篇博客将介绍一个 Python 脚本,它可以通过截图功能对设备屏幕进行监控,并将生成的截图与本地存储的基准图片进行相似度对比。我们将利用 PILnumpyskimage 库进行图像处理,并使用 pytest 框架进行自动化测试。

项目背景

在自动化测试过程中,尤其是对于需要图形界面验证的应用,验证屏幕截图与预期图像是否相似是非常有用的。这个脚本通过 uiautomator2 从设备截图,并与本地的基准图片进行比对。我们使用结构相似性(SSIM)算法来计算图像相似度并判断图像是否符合预期。

完整代码:

from PIL import Image
import numpy as np
import pytest
from skimage.metrics import structural_similarity as ssim
import uiautomator2 as u2
import time
import subprocess
import os
from datetime import datetime
# 创建目录
os.makedirs('resources/images', exist_ok=True)

# 截图并保存
def save_screenshot(d):
    current_time = datetime.now().strftime("%Y%m%d_%H%M%S")
    screenshot_path = f'resources/images/screenshot_{
     current_time}.png'
    d.screenshot(screenshot_path)
    print(f"截图已保存: {
     screenshot_path}")
    return screenshot_path  # 返回截图路径

# 比较图片相似度的函数
def compare_images_similarity(image1_path, image2_path, threshold=0.5):
    try:
        img1 = Image.open(image1_path).convert('L')
        img2 = Image.open(image2_path).convert('L')

        img1 = np.array(img1)
        img2 = np.array(img2)

        if img1.shape != img2.shape

http://www.kler.cn/news/368516.html

相关文章:

  • 动态IP是什么?
  • 使用微信免费的内容安全识别接口,UGC场景开发检测违规内容功能
  • MobileNetV2实现实时口罩检测tensorflow
  • DICOM 基础知识:深入理解DICOM数据结构与标签说明
  • Elasticsearch 与 Lucene 的区别和联系
  • django游戏门户系统
  • BERT 的 12 层维度变化详解:从输入到输出的逐步剖析
  • Kafka消费者故障,出现活锁问题如何解决?
  • UE材质节点arctangent2解析
  • 重学SpringBoot3-Spring WebFlux之Reactor事件感知 API
  • 机器视觉:9点标定的原理与实现
  • [专有网络VPC]ECS安全组配置案例
  • 【Python知识】一个强大的数据分析库Pandas
  • 基于Python的B站视频数据分析与可视化
  • Spring Boot框架下租房管理系统的设计与实现
  • spring-ai-alibaba下载
  • 【认知智能】编译器1
  • DataX
  • Oracle 权限相关的概念
  • Chromium HTML5 新的 Input 类型email对应c++
  • pikachu靶场-Cross-Site Scripting(XSS)
  • node学习笔记
  • Python 函数返回值之None类型
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.C++11(1)
  • 控制Arduino的利器-Windows Remote Arduino
  • 基于SpringCloud的WMS管理系统源码