Python 想知道大佬们做自动化测试的时候,是如何测出弹出的 toast?

一只咸鱼 · 2019年01月08日 · 最后由 我去催饭 回复于 2019年02月14日 · 3260 次阅读

实际情况:
测试点:无网情况下,点击 APP 内某个 button 按钮。检查弹出 toast:网络问题请重试
测试环境:airtest python

共收到 9 条回复 时间 点赞

关键我都想不明白,怎么模拟无网的情况

刘旭 回复

主要关注点是如何测试是否弹出 toast

u2 里带一个功能 toast.get_message() 可以得到当前弹出的 toast 直接打印在运行框里。

您遇到过导入 toast 包的时候出问题吗

刘旭 回复

最简单的测试设备连接路由器,路由器断外网。

airtest 怎么样

Android 端的话,可以先系统录屏,再 ffmpeg 分帧,再逐个处理每帧图片看有没有 toast,可以用 airtest(需要先截一张 toast 的图作为查找目标),也可以用 OCR。
这种方式触发 toast 和后期查找 toast 是分离的,也可以同时进行,边截屏边分析图像,原理一样。

稍微看下 uiautomator2 的源码

def get_message(self,
                           wait_timeout=10,
                           cache_timeout=10,
                           default=None):
               """
               Args:
                   wait_timeout: seconds of max wait time if toast now show right now
                   cache_timeout: return immediately if toast showed in recent $cache_timeout
                   default: default messsage to return when no toast show up

               Returns:
                   None or toast message
               """

可以去找找,在 toast 类里

这个我之前测过,不稳定,有时候抓的着有时候抓不着,后来干脆不检查了,截图就完了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册