怎样实现的?
  • 怎样实现的?
  • 简介
  • 怎样实现的?
    • 用Mastodon搭建自己的Twitter
    • 用Cumulusclips搭建自己的YouTube
    • 用bookStack搭建团队知识平台
    • 用Duplicati实现计划备份
    • 用FreeNAS搭建网络存储服务器
    • Ovirt4.2搭建流程
    • 使用Rancher光速搭建K8s集群
    • CentOS7不重启扩展根分区磁盘空间
    • 搭建团队文档协作平台(OnlyOffice)
    • 使用TF-Hub进行迁移学习(图像分类)
    • 用EVE-NG做仿真网络实验
    • 用docsite生成企业站点
    • 使用Harbor搭建自己的docker镜像仓库
    • 使用OpenSTF同时操作多台手机
    • 使用LDX创建管理基于容器的虚拟机
    • 调整Linux内核参数
    • ProxmoxVE高可用集群搭建并集成Ceph
    • Ceph集群的搭建与运维
    • Nextcloud搭建自己的云盘
    • Centos7搭建单节点OpenShift(OKD)
    • 使用Fuel快速搭建OpenStack
    • CentOS7搭建DNS服务器
    • 微信的语音段传输
    • 用Python写MT4自动交易策略来炒外汇
    • WebAR
    • 用BadUSB物理入侵别人的电脑
    • 用Tensorflow.js和摄像头玩俄罗斯方块
    • 开发以太坊DAPP--水果机
    • 表达式是怎样被解析的呢
    • Airtest基于图像识别的UI自动化测试工具
    • 滑动拼图验证码的JS实现
    • 内网穿透--TCP打洞
    • 一致性哈希算法的理解与实践
Powered by GitBook
On this page
  • 原理
  • 官网地址
  • 参考的开源项目
  • 模仿的DEMO
  • 通过截图匹配原图中的位置
  • 效果展示
  1. 怎样实现的?

Airtest基于图像识别的UI自动化测试工具

Previous表达式是怎样被解析的呢Next滑动拼图验证码的JS实现

Last updated 6 years ago

原理

  1. 截取一张目标UI的图片,比如一个按钮的图片

  2. 通过opencv库的模板匹配,得出所截图片在原图中的位置坐标

  3. 通过adb工具连接手机,发送操作命令,比如点击所截图片的位置

官网地址

参考的开源项目

  • SikuliX

模仿的DEMO

通过截图匹配原图中的位置

# python2.7
# 下载安装opencv-2.4.9,并将cv2.pyd拷贝到python安装目录的site-package下
# pip install numpy
# pip install aircv

import cv2
import aircv as ac

# 画出匹配位置的圆圈
def draw_circle(img, pos, circle_radius, color, line_width):
    cv2.circle(img, pos, circle_radius, color, line_width)
    cv2.imshow('objDetect', imsrc) 
    cv2.waitKey(0)
    cv2.destroyAllWindows()

if __name__ == "__main__":
    imsrc = ac.imread('bg.jpg')
    imobj = ac.imread('obj.png')

    # 运用模板匹配,查找匹配到原图中的位置坐标
    pos = ac.find_template(imsrc, imobj)

    circle_center_pos = pos['result']
    circle_radius = 50
    color = (0, 255, 0)
    line_width = 10

    # 画出坐标为中心的圆圈
    draw_circle(imsrc, circle_center_pos, circle_radius, color, line_width)

效果展示

http://airtest.netease.com/