CN110619630A - 一种基于机器人的移动设备可视化测试系统及测试方法 - Google Patents
一种基于机器人的移动设备可视化测试系统及测试方法 Download PDFInfo
- Publication number
- CN110619630A CN110619630A CN201910852945.9A CN201910852945A CN110619630A CN 110619630 A CN110619630 A CN 110619630A CN 201910852945 A CN201910852945 A CN 201910852945A CN 110619630 A CN110619630 A CN 110619630A
- Authority
- CN
- China
- Prior art keywords
- image
- robot
- control
- mobile
- mobile equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/021—Optical sensing devices
- B25J19/023—Optical sensing devices including video camera means
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/02—Programme-controlled manipulators characterised by movement of the arms, e.g. cartesian coordinate type
- B25J9/023—Cartesian coordinate type
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/08—Programme-controlled manipulators characterised by modular constructions
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Manipulator (AREA)
Abstract
本发明涉及一种基于机器人的移动设备可视化测试系统,包括操作台(1)、二维移动机器人(2)、电控点击器(3)、图像捕获装置(4)、控制模块,由此按设计技术方案,构成测试系统,并基于此设计测试方法,通过脚本语言利用捕获图像表达高抽象层次的测试动作,再利用脚本引擎执行测试脚本,实现对移动设备的测试,由此通过基于机器人的可视化测试方法,实现了对移动设备的非侵入式测试。
Description
技术领域
本发明涉及一种基于机器人的移动设备可视化测试系统及测试方法,属于计算机外围设备与应用技术领域。
背景技术
移动设备的自动化测试是指在预设条件下自动运行移动设备上的相关应用,并检查运行结果,把人为驱动的测试行为转化为机器执行的一种过程。与手工测试相比,移动设备的自动化测试可以减少不必要的时间浪费和人力浪费,避免人工进行某些重复的数据录入或是界面点击等,从而可以提高测试效率。
当前已经存在一些脚本驱动的自动化测试技术,基于测试脚本自动运行测试,具体可以分为两大类:一是非可视化的自动化测试技术,获取界面元素的层次关系和元素属性,利用移动设备界面上元素的ID标识、文字等进行元素查找,然后再通过系统对外公开的接口对界面元素进行操作,实现用户的测试操控需求,例如UIAutomator、Robotium、Appnium等工具。但是这类技术无法识别一些自定义的控件元素,无法进行复杂的界面状态判别。二是可视化的自动化测试技术,这是一种新型的自动化测试技术,利用可视化技术来编写测试脚本,例如Sikuli、EggPlant、JAutomate等工具,这些技术一般设计基于屏幕截图图像的脚本语言,用截图图像来标识界面元素,判断界面状态变化,根据图像查找和操控界面元素,以模仿用户对计算机的操作过程。总体来看,这两种技术都属于侵入式的测试技术,依赖被测对象操作系统提供相应的接口作为测试运行支撑。一方面如果操作系统接口无法获得,则无法进行测试。另一方面,会干扰被测对象操作系统状态,而且都需要系统高级权限,可能会对系统运行带来一定的安全风险。当前的可视化脚本技术也存在一些局限。首先,目前的可视化测试技术所使用的脚本语言都是专用语言,不易使用;而使用的图像都是系统截图,在系统不提供截图接口时无法使用;另外,现有脚本语言支持的指令较少,如果扩展其它技术来执行测试,这些语言无法满足测试需要。
发明内容
本发明所要解决的技术问题是提供一种基于机器人的移动设备可视化测试系统,利用基于拍照图像的新型脚本语言编写可视化测试脚本,进而驱动机器人设备执行测试,无需操作系统的接口,不侵入被测系统。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种基于机器人的移动设备可视化测试系统,包括操作台、二维移动机器人、电控点击器、图像捕获装置、控制模块;其中,操作台的上表面设置设备放置区域,二维移动机器人的基座固定设置于操作台上表面、设备放置区域的外围位置,二维移动机器人的移动端位于操作台上表面设备放置区域的上方,且二维移动机器人的移动端在平行于操作台上表面的平面区域内移动;电控点击器设置于二维移动机器人的移动端上,电控点击器的点击端竖直上下移动,基于移动设备以其操作面竖直向上姿态、置于操作台上表面的设备放置区域,电控点击器伴随二维移动机器人移动端的移动、以其点击端上下移动,实现对移动设备操作面的点击动作;图像捕获装置置于操作台上表面设备放置区域的上方,图像捕获装置的图像捕获端竖直向下,且图像捕获区覆盖操作台上表面的设备放置区域;
控制模块分别与二维移动机器人、电控点击器、图像捕获装置相连接,其中,控制模块用于控制二维移动机器人上移动端的移动、控制电控点击器上点击端的上下移动、以及控制图像捕获装置对操作台上表面设备放置区域的图像获取。
作为本发明的一种优选技术方案:还包括支撑架,支撑架的其中一端固定设置于所述操作台上表面、设备放置区域的外围位置,支撑架的另一端连接所述图像捕获装置。
作为本发明的一种优选技术方案:还包括补光器,补光器的光照范围覆盖操作台上表面的设备放置区域。
与上述相对应,本发明还要解决的技术问题是提供一种应用基于机器人的移动设备可视化测试系统的测试方法,利用基于拍照图像的新型脚本语言编写可视化测试脚本,进而驱动机器人设备执行测试,无需操作系统的接口、不侵入被测系统,而且无需获得系统高权限,无需注入代码到被测系统,也能够更好地保证被测系统安全性。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种针对基于机器人的移动设备可视化测试系统的测试方法,用于实现对目标项目的点击测试,基于移动设备以其操作面竖直向上姿态、置于操作台上表面的设备放置区域,并执行如下步骤:
步骤A.编写目标项目所对应的测试脚本,由控制模块调用脚本驱动引擎针对测试脚本进行解析,获得对应目标项目的各项测试指令,然后进入步骤B;
步骤B.控制模块控制图像捕获装置工作,获取移动设备操作面的图像,并应用图像与文字识别方法,在该图像中定位目标项目所对应目标控件的位置,然后进入步骤C;
步骤C.控制模块控制二维移动机器人移动端工作移动,带动电控点击器移动至目标项目所对应目标控件的位置,再控制电控点击器的点击端工作,实现对目标控件的点击,然后进入步骤D;
步骤D.控制模块控制图像捕获装置工作,获取移动设备操作面的图像,并与步骤B所获取图像或者预先存储的预期图像进行比较,判断针对目标项目的测试是否成功,完成对目标项目的测试。
作为本发明的一种优选技术方案:所述步骤B、以及步骤D中,控制模块控制图像捕获装置工作,并按如下步骤bd1至步骤bd5,获取移动设备操作面的图像;
步骤bd1.控制模块控制图像捕获装置工作,获得原始捕获图像,并进入步骤bd2;
步骤bd2.针对原始捕获图像,应用Canny边缘识别算法,获得原始捕获图像中的各个轮廓,然后进入步骤bd3;
步骤bd3.分别针对各个轮廓图执行一次闭运算,实现各个轮廓的更新,然后进入步骤bd4;
步骤bd4.分别针对各个轮廓,获得包含轮廓的最小矩形的顶点坐标与面积,构成各个轮廓分别所对应的矩形,然后进入步骤bd5;
步骤bd5.选择最大面积的矩形作为移动设备所对应的矩形,并根据该矩形的顶点坐标,针对该矩形进行裁剪,获得移动设备操作面的图像。
作为本发明的一种优选技术方案:所述步骤B、以及步骤D中,针对控制模块控制图像捕获装置工作,获取移动设备操作面图像的过程中,还包括如下步骤bd6至步骤bd7,执行完所述步骤bd5之后,进入步骤bd6;
步骤bd6.根据移动设备操作面图像中所有像素点的亮度值,获得移动设备操作面图像的当前总体亮度值,然后进入步骤bd7;
步骤bd7.获得移动设备操作面图像当前亮度值、以及其与预存各控件图标文字亮度值之间的差异,并据此调整移动设备操作面图像的亮度值,使之与预存各控件图标文字亮度值保持一致,实现移动设备操作面图像的更新。
作为本发明的一种优选技术方案:所述步骤B中,按如下步骤b1至步骤b7,应用图像与文字识别方法,获得移动设备操作面图像中各控件图标、文字的定位,
步骤b1.判断测试脚本中给定的控件标识是否为文字,是则进入步骤b2;否则控件为图片,则进入步骤b3;
步骤b2.针对文字进行OCR识别,获得文字的定位,作为该控件的定位;
步骤b3.针对图片进行OCR识别,判断图片是否能解析文字,是则进入步骤b4;否则进入步骤b7;
步骤b4.针对图片中的文字进行OCR识别,并获得图片中文字在移动设备操作面图像中的定位A,以及针对图片进行模板匹配,并获得图片的定位B,其中若定位不成功,则定位为空,然后进入步骤b5;
步骤b5.判断定位A与定位B是否均为非空定位,是则选取定位B作为该控件的定位,否则进入步骤b6;
步骤b6.判断定位A与定位B中、是否存在非空定位,是则选取其中非空定位作为该控件的定位,否则定位失败;
步骤b7.在移动设备操作面图像中针对控件图片进行模板匹配,获得图片的定位,作为该控件的定位。
本发明所述一种基于机器人的移动设备可视化测试系统及测试方法,采用以上技术方案与现有技术相比,具有以下技术效果:
(1)本发明所设计一种基于机器人的移动设备可视化测试系统,基于现有的二维移动机器人来搭建,易于构建,相对其它从零开始构造机器人的方法,基于现有成品机器人来搭建测试专用装置,也可以更好地控制整个装置的成本,在该测试装置下,测试过程中无需获得被测系统访问权限,对被测移动设备的操作系统、界面框架等无任何要求,具备极强的通用性;
(2)本发明所设计一种针对基于机器人的移动设备可视化测试系统的测试方法,相对现有脚本技术,该脚本语言利用拍照图片,而不是屏幕截图来表达触控目标,并且考虑了二维移动机器人相关行为的表达,与本发明所提供的二维移动机器人完美契合,可以实现对各种常见移动设备操作的准确模拟,而不是仅能完成随机点击等任务,新脚本语言也能够便于用户学习掌握,本发明同时还提供了契合该脚本语言的编程环境来帮助进行新型测试脚本的开发;
(3)本发明所设计一种针对基于机器人的移动设备可视化测试系统的测试方法,考虑了通过图像捕获装置拍照来获取屏幕状态的新特性,通过图像裁切技术来获得摄像所得图片中的设备屏幕状态,在此基础上,通过图像标准化来屏蔽拍照图像中可能存在的光照等差异,利用图像匹配技术来定位界面控件,从而驱动机器人运动,可视化脚本执行引擎实现了从脚本语言所描述的高抽象层次动作到底层机器人运动的转化。
附图说明
图1是本发明设计基于机器人的移动设备可视化测试系统的示意图。
图2是脚本编程环境图示;
图3是本发明的测试脚本示例;
图4是脚本执行引擎的执行流程图;
图5是机械设备—脚本驱动—机器人驱动之间的关系图;
图6是本发明提出的图像增强算法的流程图。
其中,1.操作台,2.二维移动机器人,3.电控点击器,4.图像捕获装置,5.支撑架,6.补光器。
具体实施方式
下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
本发明设计了一种基于机器人的移动设备可视化测试系统及测试方法,实际应用当中,如图1所示,包括操作台1、二维移动机器人2、电控点击器3、图像捕获装置4、支撑架5、补光器6、控制模块。
其中,操作台1的上表面设置设备放置区域,二维移动机器人2的基座固定设置于操作台1上表面、设备放置区域的外围位置,二维移动机器人2的移动端位于操作台1上表面设备放置区域的上方,且二维移动机器人2的移动端在平行于操作台1上表面的平面区域内移动;实际应用当中,二维移动机器人2可以选择绘图机器人,绘图机器人是一种相对通用的机器人装置,广泛用于图文绘制领域,由步进电机驱动,支持在X、Y两个坐标方向上移动,Y轴一端可安装类似笔的装置。XY运动轴可以使得笔头移动到平面上机械臂范围内的任意位置,确保了测试脚本执行时对移动设备屏幕的无死角控制。
电控点击器3设置于二维移动机器人2的移动端上,电控点击器3的点击端竖直上下移动,基于移动设备以其操作面竖直向上姿态、置于操作台1上表面的设备放置区域,电控点击器3伴随二维移动机器人2移动端的移动、以其点击端上下移动,实现对移动设备操作面的点击动作。
电控点击器3主要用于模拟人手对移动设备触控屏的操作,电控点击器3使用的是触屏笔,触屏笔可以选用电容笔、电磁笔等多种型号,该设备满足了脚本对精确的位置和灵敏的点击反馈的需求;在二维移动机器人2和电控点击器3的结合处有良好的纵向缓冲效果,电容笔的触头也具有较好的接触性能和缓冲效果,避免损伤屏幕。
支撑架5的其中一端固定设置于所述操作台1上表面、设备放置区域的外围位置,支撑架5的另一端连接所述图像捕获装置4,图像捕获装置4置于操作台1上表面设备放置区域的上方,图像捕获装置4的图像捕获端竖直向下,且图像捕获区覆盖操作台1上表面的设备放置区域;补光器6的光照范围覆盖操作台1上表面的设备放置区域。
控制模块分别与二维移动机器人2、电控点击器3、图像捕获装置4相连接,其中,控制模块用于控制二维移动机器人2上移动端的移动、控制电控点击器3上点击端的上下移动、以及控制图像捕获装置4对操作台1上表面设备放置区域的图像获取。
本发明设计中所涉及到的移动设备可以是手机、平板等多种触屏式设备;图像捕获装置4提供自动对焦功能。
本发明的基本思想是将可视化的自动化测试技术与二维移动机器人2驱动结合起来,编写可视化测试脚本,通过图像捕获装置4获取移动设备的屏幕信息,经过分析处理,再驱动二维移动机器人2执行测试脚本,实际应用中,本发明只需要利用图像捕获装置4拍摄移动设备的屏幕,无需侵入移动设备的操作系统,而且对于移动设备中的任何控件,都能通过图像识别获取相应的信息,适用范围更广,无需获得系统高权限,无需注入代码到被测系统,也能够更好地保证被测系统安全性。
具体的,基于机器人的移动设备可视化测试系统,本发明进一步设计了针对此系统的测试方法,用于实现对目标项目的点击测试,基于移动设备以其操作面竖直向上姿态、置于操作台1上表面的设备放置区域,并执行如下步骤:
步骤A.编写目标项目所对应的测试脚本,由控制模块调用脚本驱动引擎针对测试脚本进行解析,获得对应目标项目的各项测试指令,然后进入步骤B。
步骤B.控制模块控制图像捕获装置工作,获取移动设备操作面的图像,并如下步骤b1至步骤b7,应用图像与文字识别方法,在该图像中定位目标项目所对应目标控件的位置,然后进入步骤C。
步骤b1.判断测试脚本中给定的控件标识是否为文字,是则进入步骤b2;否则控件为图片,则进入步骤b3。
步骤b2.针对文字进行OCR识别,获得文字的定位,作为该控件的定位。
步骤b3.针对图片进行OCR识别,判断图片是否能解析文字,是则进入步骤b4;否则进入步骤b7。
步骤b4.针对图片中的文字进行OCR识别,并获得图片中文字在移动设备操作面图像中的定位A,以及针对图片进行模板匹配,并获得图片的定位B,其中若定位不成功,则定位为空,然后进入步骤b5。
步骤b5.判断定位A与定位B是否均为非空定位,是则选取定位B作为该控件的定位,否则进入步骤b6。
步骤b6.判断定位A与定位B中、是否存在非空定位,是则选取其中非空定位作为该控件的定位,否则定位失败。
步骤b7.在移动设备操作面图像中针对控件图片进行模板匹配,获得图片的定位,作为该控件的定位。
上述在基于图片模板匹配的定位方面,本发明使用OpenCV中基于归一化相关系数(normalized Cross Coefficient)的模板匹配算法、来定位控件图片在移动设备操作面中的出现。该定位算法的基本思路是按目标控件图片的大小对移动设备操作面的照片进行滑动扫描。在不同位置逐个比较与目标控件图片大小相一致的图元与目标控件图片的相似度,获取与目标控件图片相似度最大的屏幕图元作为定位结果,目标控件在移动设备操作面中的出现位置即该图元的中心位置。
脚本语言以基于图像捕获装置4所获图像的可视化脚本来描述界面动作和二维移动机器人2行为,提供各种机器人运动指令,并支持多种目标控件描述方式,例如图像、数字、字符串等;编程环境支持在人机交互界面中编写脚本文件,界面提供脚本编辑功能,同时提供图像捕获装置4拍摄的移动应用屏幕图像,支持对其进行截取操作,并自动加入到脚本命令中;实际应用当中,测试脚本的语言以Python为基础,通过专用指令描述测试动作,包括移动应用界面动作和机器人动作,以图像捕获装置4所获图像作为二维移动机器人2运动目标的识别依据。
步骤C.控制模块控制二维移动机器人2移动端工作移动,带动电控点击器3移动至目标项目所对应目标控件的位置,再控制电控点击器3的点击端工作,实现对目标控件的点击,然后进入步骤D。
步骤D.控制模块控制图像捕获装置工作,获取移动设备操作面的图像,并与步骤B所获取图像或者预先存储的预期图像进行比较,判断针对目标项目的测试是否成功,完成对目标项目的测试。
本发明利用可视化脚本驱动二维移动机器人2运动,脚本示例如图3所示。脚本语言扩展自Python语言,具有极低的使用门槛和极高的执行效率。本发明的脚本语言主要基于拍照图像来表达目标位置,该方式与传统基于界面截图方式的脚本语言不同,能够支持更多的不可截图测试对象,对图像的容错能力也更强。
脚本语言提供的各项操作指令均存储在Rcs(Robot Control Scripts)库中,操作指令由动作和运动目标两部分组成,运动目标表达动作触发的位置等。指令分为界面控制指令、机器人运动指令两大基本类别,如表1所示。
表1
界面控制指令包括:
◆take_screen_photo():对当前设备屏幕拍照,获取实施图像;
◆sleep(time):脚本休眠一段时间,单位秒;
◆find(image):在屏幕截图中查找image图像对应控件,并返回控件坐标;
◆match(image):检查image表示的控件是否存在,返回True或False;
◆click(S):表示点击目标位置,字符串S可以是图像、数字或字母,分别代表点击图像、点击数字或字母;
◆press_keyboard(keyboard,text):用于键盘输入,查找对应键盘进行点击,其中keyboard表示对应的键盘配置,text表示要输入的信息。
◆drag(image1,image2):拖拽,将image1所在的位置拖拽到image2处;
◆swipe(direction):滑动,向direction设定的方向滑动;
◆long_press(image):在image处长按,参数同click;
机器人控制指令包括:
◆move(X,Y):表示将机器臂移动相对坐标的距离,(X,Y)表示要移动的横纵距离,单位mm;
◆pen_down()、pen_up():控制笔的升降;
◆move_outside_screen():将机械臂移出屏幕,防止遮挡屏幕;
◆reset_arms():表示将机械臂归于原点,一般用于测试结束后,将机械臂移回初始位置。
脚本执行流程图如图4所示。在执行测试脚本时,脚本驱动引擎会对脚本文件进行分析,同时向图像捕获装置4发送指令,拍照当前移动设备的屏幕图像;然后通过计算机视觉算法查找目标控件所在的位置;根据测试脚本的操作指令,调用不同的函数,将目标位置发送给机器人驱动程序;图像捕获装置4驱动将接收到的运动指令转换为驱动命令,调用图像捕获装置4到指定位置执行机器动作;机器运动完毕,会再次调用摄像设备拍摄图像,并对操作前后的图像信息进行比对,判断执行是否正常;下一步,判断脚本文件是否执行完毕,若还有未执行的脚本语句,则按顺序继续执行下一条语句,否则,测试脚本执行结束。
本发明提供的脚本编程环境如图2所示。除了基本的人机交互功能之外,本发明还有一些独特的功能,可以用来辅助编写测试脚本:
◆截图辅助:在人机交互界面可以选择将最近摄像头拍摄的图像展示到界面上,并提供图像放大与滑动截图功能,可通过滑动鼠标截取目标控件图像。
◆代码自动生成:人机交互界面中的脚本指令可以通过点击的方式加入到脚本文件中,截取的目标控件图像也能够自动加入到脚本指令中。
◆远程控制:人机交互界面提供实时图像展示功能,在工具栏中点击实时场景播放,可以在脚本运行过程中观察二维移动机器人2的操作过程和结果。
本发明通过分析脚本命令进而驱动二维移动机器人2对移动设备进行操作,在执行测试脚本时,通过脚本执行引擎—二维移动机器人驱动程序—机械设备之间的信息传递进行机器人的控制,具体如图5所示:
a)脚本执行引擎对测试脚本进行分析处理,通过脚本命令确定与被测对象交互的机器人动作。执行引擎的核心功能是基于拍摄图像的状态识别、界面元素识别定位、抽象测试动作到底层机器动作的翻译等。脚本执行引擎主要与机器人驱动程序进行通信,机器人驱动程序封装了物理机器人操作的底层细节。
b)二维移动机器人驱动程序接收上层引擎传入的机器人控制命令,按物理机器人的IO接口要求发送控制原语,实现点击、移动等基本运动。本发明利用二维移动机器人2设备的USB接口进行机器状态控制,利用USB串口通信发送IO指令控制机器人的运动。
c)机械设备主要指测试装置中的绘图机器人、触控笔和摄像头等。本发明中,绘图机器人运动形式基于CoreXY结构,通过USB接口接收机器人驱动程序发送的原语指令,进行相应的做动作。在接收到拍照(Take Photo)命令时,摄像头会对当前移动设备进行拍摄,并将拍到的图像传递给脚本执行引擎进行分析。
在脚本执行引擎中,为了使目标控件的识别更为精确,本发明提出了一套计算机视觉算法对当前移动设备图像进行处理:采用新提出的轮廓识别算法获取移动设备操作面图像的具体轮廓;采用图像增强技术对获取到的移动设备操作面图像进行优化;利用模板匹配算法和光学字符识别从移动设备操作面图像中确定目标控件的位置。算法创新主要在于新的轮廓识别算法和一套面向机器人控制的视觉算法融合应用框架。
操作台1的背景会对目标控件的识别产生一定的干扰,尤其是一些颜色和底板背景相近的界面控件,会影响视觉目标识别的准确度;并且在测试脚本运行过程中,移动设备整个照片明显大于移动设备操作面图像大小,影响识别效率。在上述步骤B、以及步骤D中,控制模块控制图像捕获装置工作,并按如下步骤bd1至步骤bd7,获取移动设备操作面的图像。
步骤bd1.控制模块控制图像捕获装置工作,获得原始捕获图像,并进入步骤bd2。
步骤bd2.针对原始捕获图像,应用Canny边缘识别算法,获得原始捕获图像中的各个轮廓,然后进入步骤bd3。
步骤bd3.分别针对各个轮廓图执行一次闭运算,实现各个轮廓的更新,然后进入步骤bd4。
步骤bd4.分别针对各个轮廓,获得包含轮廓的最小矩形的顶点坐标与面积,构成各个轮廓分别所对应的矩形,然后进入步骤bd5。
步骤bd5.选择最大面积的矩形作为移动设备所对应的矩形,并根据该矩形的顶点坐标,针对该矩形进行裁剪,获得移动设备操作面的图像,然后进入步骤bd6。
不同环境下光照强度可能不同,若目标控件图像和当前移动设备操作面图像处于不同亮度的光照下,两张图像间的像素点会有较大的差异,导致脚本执行引擎对目标控件的识别度降低。为了消除此差异,本发明根据图像增强算法的原理,对当前的移动设备操作面图像进行优化,即执行如下步骤bd6至步骤bd7。
步骤bd6.如图6所示,根据移动设备操作面图像中所有像素点的亮度值,获得移动设备操作面图像的当前总体亮度值,然后进入步骤bd7。
步骤bd7.获得移动设备操作面图像当前亮度值、以及其与预存各控件图标文字亮度值之间的差异,并据此调整移动设备操作面图像的亮度值,使之与预存各控件图标文字亮度值保持一致,实现移动设备操作面图像的更新。
本发明中的测试脚本根据实际情况进行编辑,支持点击、滑动、长按等多种指令,支持机器人定向移动和移出屏幕范围的表达。人机交互编程环境提供实时状态下移动设备的屏幕图像,支持截取图像功能,并能将图像名称加入到脚本语句中,降低脚本编写难度。而在脚本执行过程中,执行引擎可获取当前机器人的操作过程,不用现场就能观察到机器人的操作结果,减少了人力资源的损耗。
本发明设计系统及测试方法,通过图像裁切和标准化处理低质量的拍照图片,使用基于模板匹配的视觉算法、识别出在当前移动设备屏幕中目标项目所对应目标控件的位置,使用光学字符识别算法识别出当前屏幕中的特定文字,并将识别出来的位置和脚本表达的运动方式发送给机器人,脚本引擎将驱动机器人按照接收到的命令进行运动,对移动设备的屏幕进行相应的操作,在此基础上,对二维移动机器人2操作前后的移动设备屏幕图像进行对比,确定操作执行的正确性。
本发明通过三个方面,即测试机器人装置、可视化测试脚本语言及其编程环境、脚本执行引擎,驱动机器人按步骤实施测试,将实际中手动的操作编写成机器测试脚本,来控制物理机器人实现对移动设备的操控。通过计算机视觉算法、机器人驱动技术、脚本测试技术等保证了本发明的测试方法在不同被测设备上能够取得较好效果。
在实验过程中,共对微信、支付宝、知乎等12种不同的应用设计了60个不同的测试脚本,涉及到社交、网购、衣食住行、旅游等多个应用领域,以及屏幕点击、文字输入、滑动、长按、拖拽等近十种动作。经过实际检验,95%的测试脚本都能很好地按预设要求执行测试步骤,表明本发明所提出的技术可在非侵入方式下满足移动设备上的大部分测试需要。机器人执行每个动作所花费的平均时间为5s左右,能够满足实践中的测试速度要求。实验结果表明,本发明满足用户对于移动设备在日常测试中的一般操作需要,具有良好的使用效果。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
Claims (7)
1.一种基于机器人的移动设备可视化测试系统,其特征在于:包括操作台(1)、二维移动机器人(2)、电控点击器(3)、图像捕获装置(4)、控制模块;其中,操作台(1)的上表面设置设备放置区域,二维移动机器人(2)的基座固定设置于操作台(1)上表面、设备放置区域的外围位置,二维移动机器人(2)的移动端位于操作台(1)上表面设备放置区域的上方,且二维移动机器人(2)的移动端在平行于操作台(1)上表面的平面区域内移动;电控点击器(3)设置于二维移动机器人(2)的移动端上,电控点击器(3)的点击端竖直上下移动,基于移动设备以其操作面竖直向上姿态、置于操作台(1)上表面的设备放置区域,电控点击器(3)伴随二维移动机器人(2)移动端的移动、以其点击端上下移动,实现对移动设备操作面的点击动作;图像捕获装置(4)置于操作台(1)上表面设备放置区域的上方,图像捕获装置(4)的图像捕获端竖直向下,且图像捕获区覆盖操作台(1)上表面的设备放置区域;
控制模块分别与二维移动机器人(2)、电控点击器(3)、图像捕获装置(4)相连接,其中,控制模块用于控制二维移动机器人(2)上移动端的移动、控制电控点击器(3)上点击端的上下移动、以及控制图像捕获装置(4)对操作台(1)上表面设备放置区域的图像获取。
2.根据权利要求1所述一种基于机器人的移动设备可视化测试系统,其特征在于:还包括支撑架(5),支撑架(5)的其中一端固定设置于所述操作台(1)上表面、设备放置区域的外围位置,支撑架(5)的另一端连接所述图像捕获装置(4)。
3.根据权利要求1所述一种基于机器人的移动设备可视化测试系统,其特征在于:还包括补光器(6),补光器(6)的光照范围覆盖操作台(1)上表面的设备放置区域。
4.一种应用权利要求1所述一种基于机器人的移动设备可视化测试系统的测试方法,用于实现对目标项目的点击测试,其特征在于,基于移动设备以其操作面竖直向上姿态、置于操作台(1)上表面的设备放置区域,并执行如下步骤:
步骤A.编写目标项目所对应的测试脚本,由控制模块调用脚本驱动引擎针对测试脚本进行解析,获得对应目标项目的各项测试指令,然后进入步骤B;
步骤B.控制模块控制图像捕获装置工作,获取移动设备操作面的图像,并应用图像与文字识别方法,在该图像中定位目标项目所对应目标控件的位置,然后进入步骤C;
步骤C.控制模块控制二维移动机器人(2)移动端工作移动,带动电控点击器(3)移动至目标项目所对应目标控件的位置,再控制电控点击器(3)的点击端工作,实现对目标控件的点击,然后进入步骤D;
步骤D.控制模块控制图像捕获装置工作,获取移动设备操作面的图像,并与步骤B所获取图像或者预先存储的预期图像进行比较,判断针对目标项目的测试是否成功,完成对目标项目的测试。
5.根据权利要求4所述一种应用基于机器人的移动设备可视化测试系统的测试方法,其特征在于,所述步骤B、以及步骤D中,控制模块控制图像捕获装置工作,并按如下步骤bd1至步骤bd5,获取移动设备操作面的图像;
步骤bd1.控制模块控制图像捕获装置工作,获得原始捕获图像,并进入步骤bd2;
步骤bd2.针对原始捕获图像,应用Canny边缘识别算法,获得原始捕获图像中的各个轮廓,然后进入步骤bd3;
步骤bd3.分别针对各个轮廓图执行一次闭运算,实现各个轮廓的更新,然后进入步骤bd4;
步骤bd4.分别针对各个轮廓,获得包含轮廓的最小矩形的顶点坐标与面积,构成各个轮廓分别所对应的矩形,然后进入步骤bd5;
步骤bd5.选择最大面积的矩形作为移动设备所对应的矩形,并根据该矩形的顶点坐标,针对该矩形进行裁剪,获得移动设备操作面的图像。
6.根据权利要求5所述一种应用基于机器人的移动设备可视化测试系统的测试方法,其特征在于,所述步骤B、以及步骤D中,针对控制模块控制图像捕获装置工作,获取移动设备操作面图像的过程中,还包括如下步骤bd6至步骤bd7,执行完所述步骤bd5之后,进入步骤bd6;
步骤bd6.根据移动设备操作面图像中所有像素点的亮度值,获得移动设备操作面图像的当前总体亮度值,然后进入步骤bd7;
步骤bd7.获得移动设备操作面图像当前亮度值、以及其与预存各控件图标文字亮度值之间的差异,并据此调整移动设备操作面图像的亮度值,使之与预存各控件图标文字亮度值保持一致,实现移动设备操作面图像的更新。
7.根据权利要求4所述一种应用基于机器人的移动设备可视化测试系统的测试方法,其特征在于,所述步骤B中,按如下步骤b1至步骤b7,应用图像与文字识别方法,获得移动设备操作面图像中各控件图标、文字的定位,
步骤b1.判断测试脚本中给定的控件标识是否为文字,是则进入步骤b2;否则控件为图片,则进入步骤b3;
步骤b2.针对文字进行OCR识别,获得文字的定位,作为该控件的定位;
步骤b3.针对图片进行OCR识别,判断图片是否能解析文字,是则进入步骤b4;否则进入步骤b7;
步骤b4.针对图片中的文字进行OCR识别,并获得图片中文字在移动设备操作面图像中的定位A,以及针对图片进行模板匹配,并获得图片的定位B,其中若定位不成功,则定位为空,然后进入步骤b5;
步骤b5.判断定位A与定位B是否均为非空定位,是则选取定位B作为该控件的定位,否则进入步骤b6;
步骤b6.判断定位A与定位B中、是否存在非空定位,是则选取其中非空定位作为该控件的定位,否则定位失败;
步骤b7.在移动设备操作面图像中针对控件图片进行模板匹配,获得图片的定位,作为该控件的定位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910852945.9A CN110619630B (zh) | 2019-09-10 | 2019-09-10 | 一种基于机器人的移动设备可视化测试系统及测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910852945.9A CN110619630B (zh) | 2019-09-10 | 2019-09-10 | 一种基于机器人的移动设备可视化测试系统及测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110619630A true CN110619630A (zh) | 2019-12-27 |
CN110619630B CN110619630B (zh) | 2023-04-07 |
Family
ID=68923176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910852945.9A Active CN110619630B (zh) | 2019-09-10 | 2019-09-10 | 一种基于机器人的移动设备可视化测试系统及测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110619630B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113486682A (zh) * | 2021-07-06 | 2021-10-08 | 中国工商银行股份有限公司 | U盾测试方法、装置、设备和介质 |
CN113504063A (zh) * | 2021-06-30 | 2021-10-15 | 南京航空航天大学 | 一种基于多轴机械臂的立体空间触屏设备可视化测试方法 |
CN113934630A (zh) * | 2021-10-12 | 2022-01-14 | 上海复深蓝软件股份有限公司 | 基于图像识别的软件测试方法、装置、设备及介质 |
EP4269045A1 (en) * | 2022-04-29 | 2023-11-01 | Rakuten Group, Inc. | Automatic end-to-end testing of mobile applications displaying optical barcodes |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823758A (zh) * | 2014-03-13 | 2014-05-28 | 北京金山网络科技有限公司 | 一种浏览器测试方法及装置 |
CN105955881A (zh) * | 2016-04-22 | 2016-09-21 | 百度在线网络技术(北京)有限公司 | 一种自动化测试步骤录制及回放方法和装置 |
CN105988924A (zh) * | 2015-02-10 | 2016-10-05 | 中国船舶工业综合技术经济研究院 | 一种非侵入式嵌入式软件图形用户界面自动化测试方法 |
CN106126424A (zh) * | 2016-06-29 | 2016-11-16 | 厦门美图移动科技有限公司 | 一种脚本可视化的自动化测试方法、装置和移动终端 |
US20170277625A1 (en) * | 2016-03-28 | 2017-09-28 | Alexander Shtuchkin | Generating annotated screenshots based on automated tests |
CN107346274A (zh) * | 2016-05-04 | 2017-11-14 | 北京博酷科技有限公司 | 触摸屏响应性能测试平台和方法 |
CN206773535U (zh) * | 2017-03-06 | 2017-12-19 | 北京博创合亿科技有限公司 | 一种基于机器人的智能自动化测试平台和移动设备固定台 |
CN109117358A (zh) * | 2017-06-23 | 2019-01-01 | 百度在线网络技术(北京)有限公司 | 用于电子设备的测试方法和测试装置 |
CN109800153A (zh) * | 2018-12-14 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 移动应用测试方法与装置、电子设备、存储介质 |
-
2019
- 2019-09-10 CN CN201910852945.9A patent/CN110619630B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823758A (zh) * | 2014-03-13 | 2014-05-28 | 北京金山网络科技有限公司 | 一种浏览器测试方法及装置 |
CN105988924A (zh) * | 2015-02-10 | 2016-10-05 | 中国船舶工业综合技术经济研究院 | 一种非侵入式嵌入式软件图形用户界面自动化测试方法 |
US20170277625A1 (en) * | 2016-03-28 | 2017-09-28 | Alexander Shtuchkin | Generating annotated screenshots based on automated tests |
CN105955881A (zh) * | 2016-04-22 | 2016-09-21 | 百度在线网络技术(北京)有限公司 | 一种自动化测试步骤录制及回放方法和装置 |
CN107346274A (zh) * | 2016-05-04 | 2017-11-14 | 北京博酷科技有限公司 | 触摸屏响应性能测试平台和方法 |
CN106126424A (zh) * | 2016-06-29 | 2016-11-16 | 厦门美图移动科技有限公司 | 一种脚本可视化的自动化测试方法、装置和移动终端 |
CN206773535U (zh) * | 2017-03-06 | 2017-12-19 | 北京博创合亿科技有限公司 | 一种基于机器人的智能自动化测试平台和移动设备固定台 |
CN109117358A (zh) * | 2017-06-23 | 2019-01-01 | 百度在线网络技术(北京)有限公司 | 用于电子设备的测试方法和测试装置 |
CN109800153A (zh) * | 2018-12-14 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 移动应用测试方法与装置、电子设备、存储介质 |
Non-Patent Citations (3)
Title |
---|
TOM YEH.ET AL: ""Sikuli:Using GUI screenshots for search and automation"", 《UIST’09》 * |
ZHIYI ZHANG.ET AL: ""How to Effectively Reduce Tens of Millions of tests:An Industrial Case Study on Adaptive Random Testing"", 《IEEE》 * |
张婧婧等: ""基于机器视觉的马体尺测量系统设计与研究"", 《计算机测量与控制》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113504063A (zh) * | 2021-06-30 | 2021-10-15 | 南京航空航天大学 | 一种基于多轴机械臂的立体空间触屏设备可视化测试方法 |
CN113486682A (zh) * | 2021-07-06 | 2021-10-08 | 中国工商银行股份有限公司 | U盾测试方法、装置、设备和介质 |
CN113934630A (zh) * | 2021-10-12 | 2022-01-14 | 上海复深蓝软件股份有限公司 | 基于图像识别的软件测试方法、装置、设备及介质 |
EP4269045A1 (en) * | 2022-04-29 | 2023-11-01 | Rakuten Group, Inc. | Automatic end-to-end testing of mobile applications displaying optical barcodes |
Also Published As
Publication number | Publication date |
---|---|
CN110619630B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110619630B (zh) | 一种基于机器人的移动设备可视化测试系统及测试方法 | |
US12086323B2 (en) | Determining a primary control mode of controlling an electronic device using 3D gestures or using control manipulations from a user manipulable input device | |
CN108351828A (zh) | 用于设备无关的自动应用测试的技术 | |
JP6896204B2 (ja) | コンピュータプログラムを生成するデバイス及びコンピュータプログラムを生成する方法 | |
CN107357428A (zh) | 基于手势识别的人机交互方法及装置、系统 | |
CN114138121B (zh) | 用户手势识别方法、装置、系统、存储介质及计算设备 | |
CN112258161A (zh) | 一种基于机器人的智能软件测试系统及测试方法 | |
Sharma et al. | Air-swipe gesture recognition using OpenCV in Android devices | |
CN110990238B (zh) | 基于视频拍摄的非侵入式可视化测试脚本自动录制方法 | |
Zhang et al. | Robot programming by demonstration: A novel system for robot trajectory programming based on robot operating system | |
KR20240025657A (ko) | 디지털 이미지들의 관심 영역(roi)들에 기반한 하나 이상의 기계 비전 작업의 자동 생성 | |
CN113504063B (zh) | 一种基于多轴机械臂的立体空间触屏设备可视化测试方法 | |
CN102520794B (zh) | 手势辨识系统及方法 | |
KR20160141023A (ko) | 액션이벤트·실감미디어컨텐츠연동을 수행하는 비접촉 스마트제스처인식장치 및 방법 | |
CN116301551A (zh) | 触控识别方法、触控识别装置、电子设备及介质 | |
CN113807191B (zh) | 一种非侵入式可视化测试脚本自动录制方法 | |
KR20130078496A (ko) | 다양한 손모양 검출 및 추적을 기반으로 한 원격 전자칠판 제어 장치 및 그 방법 | |
Pan et al. | Research on functional test of mobile app based on robot | |
CN110047343B (zh) | 一种vr模拟显微硬度计操作的方法 | |
JPWO2018150757A1 (ja) | 情報処理システム、情報処理方法、およびプログラム | |
JP2013200654A (ja) | 表示制御装置、表示制御方法、情報表示システム及びプログラム | |
Mei et al. | Design of vision system of transceiver robot based on Halcon | |
Srivastava et al. | Design and Development of Gesture Recognition Based Virtual Mouse System | |
CN118035103A (zh) | 一种仅基于图像的非侵入式跨平台测试迁移方法 | |
CN114063778A (zh) | 一种利用ar眼镜模拟图像的方法、装置、ar眼镜及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |