实际情况:
测试点:无网情况下,点击 APP 内某个 button 按钮。检查弹出 toast:网络问题请重试
测试环境:airtest python
关键我都想不明白,怎么模拟无网的情况
u2 里带一个功能 toast.get_message() 可以得到当前弹出的 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 类里
这个我之前测过,不稳定,有时候抓的着有时候抓不着,后来干脆不检查了,截图就完了