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

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

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 条回复 时间 点赞
williamfzc 让所有人都能用图像识别做 UI 自动化 中提及了此贴 05月19日 22:06
williamfzc 图像分类、AI 与全自动性能测试 中提及了此贴 07月22日 21:48

启动报错-----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')

naruto890809 回复

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

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.楼主有遇到过这个问题吗

apple515 回复

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

7楼 已删除
williamfzc 回复

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

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

小小南瓜 回复

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

ios 上面可以用吗

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