提高自动化脚本的识别稳定性

    在使用airtest编写自动化脚本时,由于识别算法并不是百分之百的准确,所以要尽可能的采用其他辅助方案来增加识别的准确率,进而提高识别的稳定性。来记录几个用过的比较好的提高准确率的方式。

1. 循环识别判断

    通常我们都不需要对脚本执行的时长做要求,更关注的是结果,所以可以采用依次识别判断的方式,示例如下:

list = [截图1,截图2,截图3......]

    一般来说,执行的机型是相对固定的,因此可以将不同分辨率的手机中的截图依次保存判断,可以一劳永逸,准确度也会比单个图片进行缩放效果更好,因为关键因素是不同类型的手机,可能字体也会有差异。

2. 对关键步骤增加颜色识别

    为了执行效率的提高,通常Airtest识别时默认是采用灰度图像匹配的,而我们通常更追求准确而非速度,外加有些页面上的一些匹配文字也不止一组。所以此时可以加上颜色匹配,来提高识别精度,以防出现识别到其他颜色的相同文字的情况。以touch为例,其他也是相同的方式:

touch(Template(r"tpl1629971466235.png", rgb=True, record_pos=(-0.254, -0.238), resolution=(1022, 673)))


rgb为True即可

3. 识别操作的替代

    如果有其他的命令可以替代屏幕上的操作,优先选用其他命令,例如:

## 用命令代替

touchstart_app("com.netease.cloudmusic")

4. 执行之间sleep的穿插

    执行之间多穿插sleep,有利于给每个操作的执行留出缓冲,以防出现准备不及的情况,例如页面未加载完成,操作未完成等。

5. 多阈值设定

    可以根据不同的需要实际设定特定的匹配阈值。

from airtest.core.api import *

# airtest.core.api中包含了一个名为ST的变量,即为全局设置

ST.THRESHOLD = 0.8

​​​​​​​# 未指定图片threshold,默认使用ST.THRESHOLD中的0.8

touch(Template(r"tpl1532588127987.png", record_pos=(0.779, 0.382), resolution=(407, 264)))

# 手工指定图片threshold,以图片设置的0.6为准touch(Template(r"tpl1532588127987.png", record_pos=(0.779, 0.382), resolution=(407, 264), threshold=0.6))

 欢迎关注我的公众号【测试开发备忘录】,一起沟通交流~​​​ ​​​​​​​

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值