自动化工具 基于图像识别的 UI 自动化解决方案 - FITCH

williamfzc · 2019年03月02日 · 最后由 Zoey 回复于 2020年04月02日 · 4560 次阅读

fitch 项目地址

基于 opencv 的 Android UI 自动化解决方案

起因

在客户端上,ui 自动化框架现在已经非常多了。常规方式如 appium 等一系列基于 uiautomator 的框架、非常规的利用图像识别的框架如 airtest / sikuli ,竞争非常激烈。

那么为什么还要造这个轮子?

  • 有许多 uiautomator 覆盖不到的场景(例如游戏)
  • 在图像识别领域的 UI 自动化上,可以选择的并不多
  • 之前已经陆陆续续造了一系列基础库,开发成本可控

除此之外,造出这个工具另一方面也是希望抛砖引玉,能让开源生态更加活跃健康:)

实现原理

得益于 minitouch / minicap / opencv 的存在,让 fitch 能够维持高效地运转,即便它是用 python 写的。

  • 获得手机屏幕截图(fastcap
  • 在截图上寻找目标模板,并确定它的位置(findit
  • 进行检查或操作(pyminitouch & pyatool

如何使用

我们提供了一个实例项目用于让开发者快速了解熟悉 fitch :)

它非常简单!

Bug 与建议

请通过 issue 或 评论区反馈 :)

fitch 目前还处于比较前期的阶段,欢迎继续关注我们

共收到 8 条回复 时间 点赞

ios 上面可以用吗

小小南瓜 回复

只是截图的话可以试试 https://github.com/williamfzc/fastcap
最好 root,大项目建议用 airtest 了

请问下 fitch 对视频类支持度怎样,主要是截图这一部分,因为 Android 原生的 screencap 对视频截图 截出来的图片总是黑色的。
使用时是否需要 root?

williamfzc 回复

-bash: /data/local/tmp/fastcap_temp.png: No such file or directory

7楼 已删除
apple515 回复

你试一下直接用 adb 执行这个命令会报什么错

subprocess.CalledProcessError: Command '['adb', '-s', 'XXX', 'shell', 'LD_LIBRARY_PATH=/data/local/tmp', '/data/local/tmp/minicap', '-s', '-P', '1080x2240@1080x2240/0', '>', '/data/local/tmp/fastcap_temp.png']' returned non-zero exit status 1.楼主有遇到过这个问题吗

naruto890809 回复

这个是 warning 忽略就好了
里面内置了 OCR 模块,如果要用的话要装 tesseract 的

启动报错-----UserWarning: findtext should be installed if you want to use OCR engine
warnings.warn('findtext should be installed if you want to use OCR engine')

williamfzc 图像分类、AI 与全自动性能测试 中提及了此贴 07月22日 21:48
williamfzc 让所有人都能用图像识别做 UI 自动化 中提及了此贴 05月19日 22:06
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册