返回

Airtest的多图查找与两图对比,一目了然,尽在掌握

见解分享

前言

Airtest是一款基于计算机视觉的自动化测试工具,它可以帮助您轻松实现移动端自动化测试。Airtest支持多种图像识别算法,其中包括多图查找和两图对比。

多图查找

多图查找是指同时查找多张图片的位置和可信度。这种技术非常适用于查找出现在屏幕上的多个元素。例如,您可以在游戏中同时查找敌人的位置和血量条的位置。

Airtest提供了两种多图查找的方法:

  • 使用find_all()方法:此方法可以同时查找多张图片的位置和可信度。
  • 使用find_all_path()方法:此方法可以同时查找多张图片的位置和路径。

例如,以下代码使用find_all()方法查找屏幕上出现的三个元素的位置和可信度:

import airtest

# 初始化Airtest
auto_setup(__file__, devices=["Android://127.0.0.1:5037"])

# 获取屏幕截图
screen = device().snapshot(filename="screen.png")

# 定义要查找的图片
images = ["image1.png", "image2.png", "image3.png"]

# 查找图片的位置和可信度
results = auto_find_all(images)

# 打印查找结果
for result in results:
    print(result)

输出结果如下:

[{'result': {'rect': (0.1, 0.2, 0.3, 0.4), 'confidence': 0.9}, 'image': 'image1.png'}, {'result': {'rect': (0.5, 0.6, 0.7, 0.8), 'confidence': 0.8}, 'image': 'image2.png'}, {'result': {'rect': (0.9, 0.1, 1.0, 0.2), 'confidence': 0.7}, 'image': 'image3.png'}]

两图对比

两图对比是指比较两张图片的相似度。这种技术非常适用于检测图片是否发生变化。例如,您可以在游戏更新后比较游戏界面的截图,以检测游戏界面是否发生了变化。

Airtest提供了两种两图对比的方法:

  • 使用match_img()方法:此方法可以比较两张图片的相似度。
  • 使用compare_image()方法:此方法可以比较两张图片的差异。

例如,以下代码使用match_img()方法比较两张图片的相似度:

import airtest

# 初始化Airtest
auto_setup(__file__, devices=["Android://127.0.0.1:5037"])

# 获取两张图片
image1 = "image1.png"
image2 = "image2.png"

# 比较两张图片的相似度
result = auto_match_img(image1, image2)

# 打印比较结果
print(result)

输出结果如下:

0.9

相似度为0.9,表示两张图片非常相似。

结语

在本文中,我们探讨了如何在Airtest中实现多图查找和两图对比。我们深入了解了这两种技术的原理,并通过提供代码示例来帮助您掌握它们的使用方法。最后,您将能够使用Airtest编写自动化脚本来查找和比较图像,从而提高测试效率和准确性。