airtest自动化测试教程 airtest图片识别原理
1. Airtest进阶
1.1 提升脚本成功率
我们使用了图像识别的技术在当前游戏画面中查找对应的图片,然而图像识别并不能达到人眼识别的准确度,它只能尽可能地去寻找一个最符合预期的结果 。这就经常导致了我们认为不存在的图片,它认为存在,或者我们认为在画面上一眼就能找到的内容,Airtest认为不存在。
也就是说,图像识别不是万能的!!!它是有 成功率 的,假设一个脚本里有10张图片,每张图片的识别成功率都能达到95%之高,10张图片全部都正确识别的概率也不过60%而已 。更何况,有许多图片因为种种原因,识别成功率远远低于95%这个值,要想脚本运行100%正确就更难了
改进点:
1. 截图时尽量 保证截取的图像辨识度高、独立清晰,例如截取一个按钮图像时,尽量不要带上太多的嘈杂
背景图案,避免在背景变化后难以成功识别的问题
【airtest自动化测试教程 airtest图片识别原理】
2. 图像识别使用的算法 更适合用来识别按钮类(带边框)、图标类的图像,仅仅单独截取几个文字的识别成功率很低,请尽量调整图片截取内容来达到较好的识别效果,避免截取识别效果较差的内容
文章插图
3. Airtest会尽可能地尝试适配 不同分辨率 的手机,但是在某些游戏上可能有自定义的分辨率适配规则,可以
根据自己游戏的分辨率适配情况来自定义,参考:
https://airtest.doc.io ease.com/IDEdocs/airtest_framework/1_script_settings/
4. 若有大量重复的、非常相似的图标堆叠在一起时,有可能识别效果不佳,在我们眼中也许每一个图标上面的文字是不一样的,然而在Airtest的眼中它们实在是太相似了 。我们可以尝试修改截图,借助一些其他的背景样式,修改成辨识度更高的图片
5. 尽管AirtestIDE提供了便捷的自动录制功能,能够直接将当前所有操作一步一步转换成代码,但是这种情况下自动截取的图片往往不太理想,需要手工再对截图进行调整
1.2 脚本相关设置
1.2.1 脚本代码修改属性
假如直接使用文本编辑器打开我们所编辑的Airtest脚本目录里的同名py文件,可以看到,每张图片都由类似这样的语句组成:
Template(r"tpl1532588127987.png", record_pos=(0.779, 0.382), resolution=(407, 264))
直接在里面加入需要修改的值即可
Template(r"tpl1532588127987.png", record_pos=(0.779, 0.382), resolution=(407, 264), threshold=0.6, target_pos=5, rgb=False)
图像识别阈值threshold(浮点类型):
threshold是用来判定一张图片识别是否成功的阈值,例如一张图片识别到的匹配度是0.65,
而我们设置的threshold为0.7的话,Airtest会认为匹配失败,从而进行下一次匹配 。
通常来说,threshold设置得越高,图像识别的精度越高,但成功率也会有所降低,请根据自己的实际情况酌情设置 。
取值范围为0~1之间,[0, 1],默认值是0.7 。
图像点击位置target_pos(整型):
当识别出一张图像后,Airtest将会默认去点击图像的正中心位置,
有时我们希望它识别出图片后点击其他位置,可以通过修改target_pos属性来实现
文章插图
在上图中,我们希望点击中间选项的“升级”按钮,不希望点到别的选项去,而只截出升级按钮不能满足我们的需求 。
推荐阅读
- 教你快速测试自家网速 怎么查看网速
- 苹果手机12跟华为40网速测试 苹果12和华为mate40网速对比
- 英雄联盟手游不删档不限量测试 lol手游不限号不删档什么意思
- 孕妇测试男孩女孩的土方法
- 十二星座爱情测试 星座爱情测试
- 什么是四优生 什么时候做?
- 水管如何做打压测试 打压测试
- 盘点6张色盲自测图 色弱测试
- 十二星座配对测试爱情 星座配对测试爱情
- 心理测试 财运测试题