首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于Sikuli GUI图像识别框架PC客户端自动化测试实践

刚好去年接触过Sikuli这款基于GUI图像识别框架自动化测试工具,于是便应用于测试工作中,辅助测试任务。初步试用下来,总体效果还算差强人意,也间接助我发现了一个致命级别的大bug(后续会介绍)。...一、GUI图像识别框架元祖:Sikuli Sikuli 创始于 2009 年,是麻省理工学院用户界面设计小组一个开源研究项目。...由于 Sikuli 基于 Jython,其核心代码由 Java 编写,可在用户自定义 Java 工程中将其作为 Java 标准类库进行 定位APP窗口:myApp.window() 聚焦到当前APP:...; Sikuli 使用小结 尽管sikuli用来实现复杂测试场景不太现实,这也是所有GUI自动化测试无法改变现实。...; ③ 在不同PC系统版本运行,以检测程序兼容性; 对于web自动化、APP自动化主要用该端特定自动化框架,如selenium、appium,sikuli作为辅助、可以和selenium

2.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

Sikuli 基于图形识别的自动化测试技术

也许Sikuli可以成为你选择之一,它可以让你摆脱对控件API依赖,通过实时检索当前屏幕图像,获取可操作对象,模拟用户行为,校验真实屏幕展示结果。 什么是Sikuli?...Sikuli自动化测试,是将屏幕展示内容,通过图像识别,用来定位到元素位置,并进行操作GUI组件,最后也可以通过识别图片中内容来判断操作是否成功。...总结 Sikuli优点是简单容易上手,支持多种编程语言(python/java),但是缺点也很明显。...图片分辨率色彩和尺寸等对程序执行结果影响很大,一台设备执行成功脚本可能一直到另一台设备不能成功,需要重新截图。...而且只能检测当前桌面上显示内容,后台进程无法操作,pc端所有用户操作并没有完全支持,sikuli本身还不完善,还在开发升级阶段。

86220

顶尖人工智能无法识别这些简单图像

不过如果你问问最先进的人工智能,它给出答案会是校车,而且 99% 地肯定。但 AI 错了。 诚然,现在计算机图像识别技术已经非常先进。...用进化算法欺骗AI 进化算法生成随机图像图像下方文字是AI识别出来对象。 要想弄清楚这些自我训练算法聪明之处,方法之一正是看看它们愚蠢之处。...这样下来结果就是最好看者生存—或者说,是计算机最能识别图像存活了下来(而非最合适者—原图)。 最后该技术生成了数十幅神经网络的确信度超过 99% 图像。...采用一种略微不同进化技术之后,研究人员生成了另一组图像(下图)。这些图像在人眼看来几乎都是一样,就像是一台坏掉电视图像。...当然,人类精心制作这些图像来愚弄 AI 也说明了一个问题,即神经网络规模和复杂性已经超出人类理解范畴—哪怕我们知道 AI 能识别图像,但对它们如何识别图像却并不知晓。

1.3K40

图像识别在测试中应用

在具体讲解之前,先介绍一下图像识别在测试中能够想到引用场景: 测试过程中,通过对待测软件进行屏幕截图,采用图像识别算法识别截图中是否包含预定义可操作控件,如果存在,则触发控制指令,也就达到了图像识别引导测试过程目的...- 测试结果验证,通过对待测软件界面进行截图操作,利用图像识别技术将截图与期望结果进行匹配,从而自动获取测试结果。- 通过图像识别对比来进行性能测试,比如app测试中常见响应时间测试。...一、原理 Sikuli脚本是由jython通过图像识别的方式来模拟键盘和鼠标事件,从而实现ui层面的自动化测试。...Sikuli脚本核心是一个java库 ,主要由两部分组成(见上图): java.awt.Robot部分主要是将键盘和鼠标事件传送给指定位置,具体位置是由c++引擎(基于opencv模块)通过脚本中目标图片去屏幕搜索并定位...5、可以识别类似flash这样不能通过识别控件来进行自动化测试项目。 缺点: 1、屏幕不能有遮挡,因为sikuli需要在当前桌面识别对应目标并进行操作,如果桌面有遮挡就会导致对应元素找不到。

80420

图像文字识别(四):java调用tess4j识别图像文字

Tesseract-OCR支持中文识别,并且开源和提供全套训练工具,是快速低成本开发首选。...前面记录过在java中调用tesseract-orc,该方法原理是通过在java中调用cmd命令行,来执行tesseract,但是该方式需要下载软件,在电脑安装环境,移植性不高。...而Tess4J则是Tesseract在Java PC应用。如果使用Tess4J只需要下载相关Jar包,导入项目,再把项目封装好就可以处处运行了,可移植性比较好。...这篇博客简单记录一下在java中通过调用tess4j方式识别图片文字内容。...:https://github.com/tesseract-ocr/tessdata 下载完tess4j资源包目录如下: (2)新建一个java工程: 使用Build Path -> configure

4.4K40

基于图像识别的自动化

但是,在大多数应用程序中使用都是非标准控件,无法通过FindWindowEx来找到某个按钮,也无法通过某个ID来找到某个输入框。...根源是是因为 sikuli 是基于图片像素级对比,而在实践中,像素级对比往往存在很多缺陷,图片文件必须与屏幕呈现完全一致才能匹配上,实践中必须手动调低匹配度才能匹配到元素,但又不能太低,太低则会匹配多个元素...几种像素级匹配不适用场景: 图像稍有缩放,无法匹配 图像稍有变形,无法匹配 图像有细微改动,匹配率降低 图2:Sikuli 手动调节匹配度 另外,虽然 sikuli 虽然是开源项目,但由于对 Java...二、 模板匹配 模板匹配(matchTemplate)是一种最具代表性图像识别方法。...在一群牛中找到了一只羊"最佳匹配" 三、 特征识别 人眼在识别物体时,会根据图像局部特征来判断整体,比如图像边缘轮廓、角、斑点等等。

7.8K70

多标签图像识别前沿跟踪2021(

本文主要介绍一些2021年新发表多标签图像识别工作,多标签图像识别早些时候研究工作可以看另一篇文章 雨雪霏霏:多标签图像识别发展历程(2015~2020)2 赞同 · 2 评论文章 ?...另外笔者也维护了一个多标签图像识别的paper list ,持续跟踪多标签图像识别相关方向上研究工作,方便初涉该领域同学快速上手,也欢迎大家一起讨论交流。...之前基于transformer识别工作往往因为无法找到合适query,只利用transformer中Encoder结构做特征长距离空间关系增强。...从网络结构中可以看出,本文以可学习label embeddings作为query,以图像特征作为key和value,通过cross-attention计算对应标签预测概率。...文章思路清晰,结构简洁,也为多标签识别提供了新解决思路。详情可见文章作者在知乎回答 知乎 MCAR ?

1.2K30

RK3399视频监控和图像识别

1、视频监控 上次博主在 imx6ull 板子做了韦东山老师视频监控项目,并且写了两篇文章,如下: 手把手教你视频监控之 MJPG-Streamer 方案 视频监控之 ffmpeg + nginx...imx6ull 从 USB 摄像头采集数据,编码后放到 nginx 服务器,拉流端再拉流,需要 40 秒,RK3399只需要 8 秒,因此 RK3399 视频编解码能力是 imx6ull 五倍!...2、图像识别和目标检测 图像分类:http://mpvideo.qpic.cn/0bc3xaabeaaa7eahqli3f5rfbogdck4aaeqa.f10002.mp4?...1649406581&vid=wxv_2287951457809317901&format_id=10002&support_redirect=0&mmversion=false 这是 TensorFlow 轻型框架...这是TensorFlowLite 在Android 系统 demo app,源码开放,直接下载编译就可以用。 https://tensorflow.google.cn/lite/examples?

1.8K20

sikuli python java_自动化测试之sikuli调研

调研结果 Sikuli可用于web和app自动化测试中,操作简单,代码容易,但截图过程太过繁琐,所需要图片内存占用量大,且sikuli图片识别度较低,需对所要操作图片进行精准截图。...Sikuli IDE执行脚本时,通过Python解析器和java桥梁,核心部分解析是通过java库实现分两个部分,java.awt.Robot用来传递键盘和鼠标的事件流到适当位置;给予OpenCV...,因为图片识别会因为分辨率、背景颜色,图片大小变化而变化; ü Selenium运行起来较为缓慢,而sikuli代码运行起来能很快识别出要点击和添加内容; ü Selenium中有很多元素无法获得...); ü 在有上传文件、图片等操作自动化测试中,用sikuli图片识别技术更为方便; ü 用sikuli来编写代码时,所截到图片应该避免雷同,且尽量缩小范围,便于执行点击、填写等操作时,由于范围过大而定位错误...2、图片分辨率、色彩、尺寸、唯一性对程序影响 (如果有两个相同无法区分具体哪一个) 3、sikuli本身还不完善(处于开发、升级阶段) 还有很多程序bug,能否继续发展还是未知数 4、只认识当前活动图标

1.5K10

自动化测试上传文件之Sikuli图片识别代替AutoIT

自动化过程中对于Windows弹出框,一般使用AutoIT制作脚本进行操作, 之前写过章介绍,可以复习一下: Java+Selenium2+AutoIt实现右键文件另存为功能 上传也是同样方法,使用AutoIt...Sikuli 上帝之眼意思。...http://www.sikulix.com/ 这里介绍一下另外一种解决方案:使用Sikuli进行图片识别,来对Windows弹出框或者其他Windows窗口进行一系列操作。...还可以用作一些其他图片识别的自动化测试,但是Sikuli对分辨率有一定要求,基于像素识别,所以指定要找目标图片很少变动时就可以使用Sikuli,像上面例子中上传文件文本输入框和Open按钮变动就基本不变...;但是对于多变动目标图片还是不适合使用Sikuli,因为变动一次就需要重新截图,对于多变情况下 使用AutoIT或者其他工具会更胜一筹。

1.5K60

图像识别 | 使用 Java 实现AI人工智能技术-图像识别功能

说到语音识别、语音翻译、图像识别、人脸识别等等,现在已经非常非常非常普及了,看过‘最强大脑’朋友,也应该对‘小度’这个机器人有所了解,战胜国际顶尖‘大脑’- 水哥,(PS:内幕不知),那么今天,我们来看下关于图像识别...,是如何做到Java又是如何识别图像?...图像识别技术是人工智能一个重要领域。为了编制模拟人类图像识别活动计算机程序,人们提出了不同图像识别模型。例如模板匹配模型。...这种模型认为,识别某个图像,必须在过去经验中有这个图像记忆模式,又叫模板。当前刺激如果能与大脑中模板相匹配,这个图像也就被识别了。...JAVA图像识别示例 Java图像识别示例: 需求:java实现图像识别--车牌识别 技术:Java、jdk1.8、maven、tess4j、IDEA2018 1:新建maven project工程

11.6K62

深度学习图像识别项目():如何快速构建图像数据集

是否还记得里面的各种神奇宝贝,以及小智手中可以自动识别神奇宝贝图鉴(Pokedex)?本文作者带你利用计算机视觉技术,在手机中构建了一个一模一样应用程序。...下一篇,我将演示如何进行实现,使用Keras训练CNN来识别每个神奇宝贝。 最后,我们将使用我们训练好Keras模型将其嵌入到iPhone应用程序中。...如何快速构建深度学习图像数据集 为了构建我们深度学习图像数据集,我们需要利用微软Bing图像搜索API,这是微软认知服务一部分,用于将AI视觉识别、语音识别,文本识别等内容带入应用程序。...安装REQUESTS包 如果系统未安装requests,则可以通过pip进行安装: pip install requests requests包使用户能够无比轻松为我们做出HTTP请求,它使我们不必花精力处理与...250张图片中大部分都会成功下载,但是如上面的输出所示,也会有一些OpenCV无法打开被删除。

7.6K60

基于图像识别框架AirtestWindows项目自动化测试实践

写在前面 上个星期分享了《基于Sikuli GUI图像识别框架PC客户端自动化测试实践》,但sikuli看起来怎么都像是上个世纪界面风格,且功能过于简陋。...而同样基于图像识别框架Airtest,则无疑强大了许多,本次分享内容是基于Airtest实现Windows应用自动化测试,内容大纲: Airtest框架介绍:Airtest适用项目、Airtest...编写测试代码 设计测试用例 运行效果 查看测试报告 总结与思考 一、Airtest框架介绍 1.Airtest介绍 Airtest是网易出品一款基于图像识别和Poco控件识别的一款UI自动化测试工具...这个框架设计来源于新颖图形脚本语言Sikuli,关于Sikuli框架可见一篇分享《基于Sikuli GUI图像识别框架PC客户端自动化测试实践》。...:是一个跨平台、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、 Android和iOS; Poco:是一款基于UI控件识别的自动化测试框架,目前支持Unity3D/cocos2dx

1.5K20

JAVA——Tess4J简单图像识别DEMO

Tesseract 4添加了一个新基于LSTMOCR引擎,该引擎专注于行识别,但仍支持Tesseract 3传统Tesseract OCR引擎,该引擎通过识别字符模式进行工作。...它还需要训练有素数据文件来支持旧式引擎,例如tessdata存储库中文件。 Tess4J:Tesseract OCR API Java JNA包装器。...3、编写代码 // 识别图片路径(修改为自己图片路径) String path = "D:\\test.jpg"; // 语言库位置(修改为跟自己语言库文件夹路径...也可在程序中指定: 参考: http://blog.csdn.net/hellousb2010/article/details/39477859 3.尽量指定图像一块区域识别。...比如验证码起始位置和结束位置很多空白,可以去掉,只对验证码区域做识别

1.5K10

Android 百度图像识别(详细步骤+源码)(

一、创建平台应用 先登录百度开放平台 [在这里插入图片描述] 然后进入管理控制台找到图像识别 [在这里插入图片描述] 点击进入。...[在这里插入图片描述] 注意看下图标注信息 [在这里插入图片描述] 由于图像识别没有直接Android SDK,因此本文将通过API访问进行图像识别。...服务 return retrofit.create(serviceClass); } } 很简单代码,也都是网络常见,OkHttp + Retrofit。...这里面的默认地址 https://aip.baidubce.com是图像识别API固定地址,后面的有变化,通过接口来配置。...四、添加请求API接口 百度图像识别,首先要完成鉴权认证,拿到一个Token,然后通过这个Token再去请求图像识别的API接口才行,所以要完成两步操作。

2K73

算法集锦(14)|图像识别| 图像识别算法罗夏测试

随着对基于深度学习图像识别算法大量研究与应用,我们倾向于将各种各样算法组合起来快速进行图片识别和标注。...优化后算法在内存使用和模型训练上表现越来越好,但当这些算法应用于模糊、意义不确定图像时,它们表现又会如何呢?...为了更好地了解各个卷积神经网络算法在应用层面上细微差别和趋势,我们将其应用到罗夏墨迹测试(Rorschach Test)。...对于这些复杂图像识别就比较难以理解了,比如第10张卡片竟被认为是托盘。...,以便快速地组合每个图像分数: def getLabels(model, dims, pi, dp): """ Returns the top 10 labels, given a model, image

5K20
领券