一种基于机器人的智能软件测试系统及测试方法与流程

文档序号:23720536发布日期:2021-01-24 07:57阅读:113来源:国知局
一种基于机器人的智能软件测试系统及测试方法与流程

[0001]
本发明涉及软件测试领域,特别涉及一种基于机器人的智能软件测试系统及测试方法。


背景技术:

[0002]
现有技术中,如公开号为cn 102904996a的中国专利公开了利用机械手模拟人手操作对手机进行测试的技术,但是其仅仅为测试手机触摸屏的触摸性能,而不存在扩展到支持手机、pc、智能家居、车联网、pos机等交互比如硬键盘的测试。对于手机中安装的应用程序的测试,也有自动化测试替代人工测试的现有技术,但是通常是通过软件编程来自动测试应用程序的功能。这种纯软件的自动测试方法需要测试人员熟悉软件代码,能够编写出模拟用户操作的指令来实现手机的软件自动化测试,并且,这种软件控制软件的测试方法稳定性不高,容易出错且不容易纠错;而我们是模型驱动,不懂代码的测试人员可以通过画出业务流程图,就可以让机器人代替自己做测试活动。


技术实现要素:

[0003]
为了克服现有技术存在的不足,本发明提供了一种基于机器人的智能软件测试系统及测试方法,所述技术方案如下:
[0004]
一方面,本发明提供了一种基于机器人的智能软件测试系统,包括智能定位模块、机械手和控制器,所述智能定位模块与所述控制器的输入端连接,所述控制器的输出端与所述机械手连接;
[0005]
所述控制器获取预设的业务流程,所述业务流程包括按序排列的业务操作;所述智能定位模块用于分别对当前的业务操作的待操作位置进行定位,得到绝对坐标;所述控制器控制所述机械手移动至所述智能定位模块定位得到的绝对坐标处,并使其在所述待测终端上进行软件测试操作,以使所述待测终端跳转到下一个业务操作的界面。
[0006]
作为第一种技术方案,所述智能定位模块包括代码模型驱动,所述代码模型驱动采用xpath、css selector、id、(x,y)绝对坐标、text中的任意一种定位方式对待操作位置进行定位。
[0007]
作为第二种技术方案,所述智能定位模块包括界面抓取单元和图像比对单元,所述控制器向所述智能定位模块输入当前的业务操作的待操作区域的基准图像,所述图像比对单元用于比对所述基准图像与所述界面抓取单元所抓取的界面图像,得到所述基准图像在所述抓取的界面图像中的绝对坐标。
[0008]
作为第三种技术方案,所述智能定位模块包括图像采集装置和文字识别模块,所述图像采集装置与所述文字识别模块的输入端连接,所述文字识别模块的输出端与控制器的输入端连接;
[0009]
所述图像采集装置用于对待测终端的界面进行图像采集,并将采集到的图像信息发送至所述文字识别模块,所述文字识别模块用于识别所述采集到的图像的信息并将识别
结果发送至控制器,所述识别结果包括所述待测终端的界面上的若干条文本信息及其在所述待测终端上的对应位置信息;
[0010]
在每个业务操作执行之前,所述控制器对所述图像采集装置进行触发,以获取相应的界面图像的识别结果;并根据当前业务操作和当前界面图像的识别结果,控制所述机械手在所述待测终端上进行软件测试操作,以使所述待测终端跳转到下一个业务操作的界面。
[0011]
可选地,所述机械手包括多个可同时操作的执行末端,在所述控制器的控制下,一个执行末端执行前一业务操作过程中,另一执行末端对后一业务操作进行预操作。
[0012]
进一步地,本发明提供的智能软件测试系统还包括业务流程人工设置模块,所述业务流程人工设置模块与所述控制器的输入端连接。
[0013]
进一步地,本发明提供的智能软件测试系统还包括与所述待测终端连接的输入设备,在所述控制器的控制下,所述机械手在所述输入设备上进行向所述待测终端输入信息操作。
[0014]
另一方面,本发明提供了一种基于机器人的智能软件测试方法,包括以下步骤:
[0015]
s1、获取预设的业务流程,所述业务流程包括按序排列的业务操作;
[0016]
s2、遍历业务流程中的业务操作,每遍历一个业务操作后执行s3,每遍历一个业务操作的过程包括:对待测终端上当前的业务操作的待操作位置进行定位,得到绝对坐标;控制所述机械手移动至定位得到的绝对坐标处,并使其在所述待测终端上进行软件测试操作,以使所述待测终端跳转到下一个业务操作的界面;
[0017]
s3、判断是否对所述业务流程中所有的业务操作完成遍历,若是,则完成测试,否则执行s2。
[0018]
作为第一种技术方案,所述对待测终端上当前的业务操作的待操作位置进行定位包括以下步骤:
[0019]
s211、触发图像采集装置对待测终端的界面进行图像采集;
[0020]
s212、接收文字识别模块发送的对步骤s211中的图像采集结果的识别结果,所述识别结果包括所述待测终端的界面上的若干条文本信息及其在所述待测终端上的对应位置信息;
[0021]
s213、将当前业务操作名称与所述当前界面图像的识别结果作匹配,得到匹配的文本信息在待测终端上的绝对坐标。
[0022]
作为第二种技术方案,所述对待测终端上当前的业务操作的待操作位置进行定位包括以下步骤:
[0023]
s221、获取当前的业务操作的待操作区域的基准图像;抓取当前界面,得到界面图像;
[0024]
s222、比对所述基准图像与抓取的界面图像,得到所述基准图像在所述抓取的界面图像中的绝对坐标。
[0025]
本发明提供的智能软件测试方法还包括:
[0026]
若所述绝对坐标获取失败,则执行以下任一操作:
[0027]
提示报错信息;或者,
[0028]
对所述待测终端执行返回上一业务操作对应的界面的操作,并返回执行s2;或者,
[0029]
重启所述待测终端的待测软件程序,并返回执行s1。
[0030]
优选地,若未对所述业务流程中所有的业务操作完成遍历,则返回执行s2时进一步包括:
[0031]
匹配到下一业务操作对应的文本信息在待测终端上的对应位置信息;
[0032]
根据当前匹配的文本信息在待测终端上的对应位置,计算其与所述下一业务操作对应的文本信息在待测终端上的对应位置的相对位置信息;
[0033]
根据计算结果控制机械手由当前位置移动至所述下一业务操作对应的文本信息在待测终端上的对应位置进行软件测试操作,而无需在所述机械手完成当前业务操作的测试操作后复位至所述初始化位置。
[0034]
进一步地,所述业务流程中的业务操作信息包括业务操作类型,所述机械手根据业务操作类型对所述待测终端进行软件测试操作,所述业务操作类型包括点击、输入、滑动和/或长按操作类型。
[0035]
本发明提供的技术方案带来的有益效果如下:
[0036]
a.提高自动化测试的稳定性,目前软件驱动来测试软件的方式依赖测试框架的健壮性、兼容性、技术实时更新性、支持被测软件的广泛性等,这些都极大影响自动化测试执行的稳定性。而不稳定造成bug的分析成本增大以及对于自动化测试的信心的打击。目前自动化测试的稳定性在提升整个劳动密集型的测试行业具有关键指标,而根据目前软件测试软件的技术方案提供的稳定性是阻碍自动化的技术方案,因此此次提出以机器人来模拟人在外在方式来测试软件,在根本上解决了稳定性问题,因此是极具革命性的技术方案;
[0037]
b.目前机器人大脑是控制在我们设计的模型驱动,之后也可以控制在ai驱动,因此此机器人测试的方向是极具未来的发展方向,比如机器人视觉学习人的测试活动,进而自己开始独立测试,而不是单纯靠ocr和模型控制;
[0038]
c.当出现测试错误时,容易纠错;
[0039]
d.不仅可以应用于智能终端,支持测试的应用程序类型也扩展到pc终端、智能家居、车联网、pos机等交互比如硬键盘的测试领域。
附图说明
[0040]
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0041]
图1是本发明实施例提供的基于机器人的智能软件测试系统的结构框图;
[0042]
图2是本发明实施例提供的具有第一种智能定位模块的智能软件测试系统的结构框图;
[0043]
图3是本发明实施例提供的具有第二种智能定位模块的智能软件测试系统的结构框图;
[0044]
图4是本发明实施例提供的具有第三种智能定位模块的智能软件测试系统的结构框图。
[0045]
图5是本发明实施例提供的基于机器人的第一种智能软件测试方法的流程图;
[0046]
图6是本发明实施例提供的基于机器人的第二种智能软件测试方法的流程图;
[0047]
图7是本发明实施例提供的构建流程图得到的拓扑流程图示意图。
具体实施方式
[0048]
为了使本技术领域的人员更好地理解本发明方案,更清楚地了解本发明的目的、技术方案及其优点,以下结合具体实施例并参照附图对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,附图中未绘示或描述的实现方式,为所属技术领域中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。除此,本发明的说明书和权利要求书中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0049]
在本发明的一个实施例中,提供了一种基于机器人的智能软件测试系统,参见图1,所述测试系统包括智能定位模块、机械手和控制器,所述智能定位模块与所述控制器的输入端连接,所述控制器的输出端与所述机械手连接;
[0050]
所述控制器获取预设的业务流程,所述业务流程包括按序排列的业务操作;所述智能定位模块用于分别对当前的业务操作的待操作位置进行定位,得到绝对坐标;所述控制器控制所述机械手移动至所述智能定位模块定位得到的绝对坐标处,并使其在所述待测终端上进行软件测试操作,以使所述待测终端跳转到下一个业务操作的界面。
[0051]
所述智能定位模块具有不同的实施方式:
[0052]
方式一、参见图2,所述智能定位模块为代码模型驱动,所述代码模型驱动采用xpath、css selector、id、(x,y)绝对坐标、text中的任意一种定位方式对待操作位置进行定位。
[0053]
方式二、参见图3,所述智能定位模块包括界面抓取单元和图像比对单元,所述控制器向所述智能定位模块输入当前的业务操作的待操作区域的基准图像,所述图像比对单元用于比对所述基准图像与所述界面抓取单元所抓取的界面图像,得到所述基准图像在所述抓取的界面图像中的绝对坐标。
[0054]
方式三、参见图4,所述智能定位模块包括图像采集装置和文字识别模块,所述图像采集装置与所述文字识别模块的输入端连接,所述文字识别模块的输出端与控制器的输入端连接;
[0055]
所述图像采集装置用于对待测终端的界面进行图像采集,并将采集到的图像信息发送至所述文字识别模块,可选图像传感器(ccd、cmos等)或工业相机;
[0056]
所述文字识别模块用于识别所述采集到的图像的信息并将识别结果发送至控制器,可选采用ocr识别技术,所述识别结果包括所述待测终端的界面上的若干条文本信息及其在所述待测终端上的对应位置信息;
[0057]
所述控制器获取预设的业务流程,所述业务流程包括按序排列的业务操作,获取
业务流程的方式有多种,比如通过云平台下发测试任务、通过读取存储器中预存的测试任务,又或者是本实施例的智能软件测试系统还包括业务流程人工设置模块,所述业务流程人工设置模块与所述控制器的输入端连接,在测试开始前,可以在所述业务流程人工设置模块中人工输入目标测试任务,所述测试任务即包括业务流程,还可以包括其他测试信息,比如测试版本、测试功能说明等;
[0058]
在每个业务操作执行之前,所述控制器对所述图像采集装置进行触发,以获取相应的界面图像的识别结果;并根据当前业务操作和当前界面图像的识别结果,控制所述机械手在所述待测终端上进行软件测试操作,以使所述待测终端跳转到下一个业务操作的界面。
[0059]
具体地,所述业务流程人工设置模块可以采用构建流程图或积木图的方式来输入业务流程中的各个业务操作,具体如下:
[0060]
流程图的构建方法如下:获取待测试用户界面的跳转信息,界面泛指用户的操作界面,包含移动app、网页、微信小程序、微信公众号、pc应用程序、工控软件等界面,以下简称界面。具体地,所述跳转信息包括跳转前界面节点、跳转元素及跳转后界面节点,比如:在跳转前界面节点上设有多个控件按钮,按下该控件按钮可跳转到后一界面节点,以携程网首页界面为例,跳转元素以酒店和机票为例,则分别得到订酒店界面和订机票界面;在订酒店界面输入查询条件(日期、地址或酒店类型等等),搜索得到酒店查询结果界面,在订机票界面输入查询条件(起飞城市、终点城市、日期等),搜索得到机票查询结果界面,然后选择其中一条结果条目,进入下订单界面,在下订单界面点击付款按钮,进入支付界面等等,则这里至少出现了以下跳转信息:

首页
-“
hotel
”-
订酒店界面,

首页
-“
air-ticket
”-
订机票界面,

订酒店界面
-“
search
”-
酒店查询结果界面,

订机票界面
-“
search
”-
机票查询结果界面,

机票查询结果界面
-“
term1
”-
下订单界面,

下订单界面
-“
pay
”-
支付界面,每一个跳转信息的中间项为跳转元素(即交互按钮),实际上以界面交互按钮的控件名称命名,跳转元素前后的界面节点优选以简单明了的原则自由命名。
[0061]
获取待测试用户界面的跳转信息之后,建立相应的拓扑流程图。具体地,所述拓扑流程图包括一个根界面节点和一个或多个分支路径,每个分支路径上至少有一个跳转元素及对应的跳转后界面节点,其具体的建立过程如下:对应于同一跳转前界面节点的不同跳转元素形成不同的分支路径,基于第一跳转元素对应的跳转后界面节点为第二跳转元素对应的跳转前界面节点的情况,将所述第一跳转元素、第二跳转元素设为同一分支路径上的相邻跳转元素,比如以上述携程中的六个跳转信息为例,可以建立得到如图7所示的拓扑流程图,图中跳转元素的命名仅为示意,实际以待测试对象的底层控件名称为准。
[0062]
对于流程图较为复杂的业务流程,可以采用构建“积木图”,具体如下:
[0063]
基于预先建立的拓扑流程图,生成对应的积木子模块。具体地,所述拓扑流程图的建立过程如上所述,在此不再赘述。所述积木子模块实质内容为该拓扑流程图,但是其前端仅为具有命名的单框形式。
[0064]
在生成积木子模块之后,选择至少两个积木子模块,并且将所述积木子模块按照执行顺序连接,得到积木图。进一步地,其中相连接的两个积木子模块中,在执行顺序上前一个积木子模块对应的拓扑流程图的尾节点与后一个积木子模块对应的拓扑流程图中与所述尾节点具有相同节点名称的每一个首节点连接。比如,前一个积木子模块对应的拓扑
流程图具有10个尾节点,其中2个尾节点的节点名称为n1,3个尾节点的节点名称为n2,另外5个尾节点名称为n3,后一个积木子模块对应的拓扑流程图具有9个首节点,其中5个首节点的节点名称为n2,另外4个首节点的节点名称为n3,则这两个积木子模块组成的积木图截止至后一个积木子模块对应的拓扑流程图的首节点具有35条(即3*5+5*4)分支路径,若后一积木子模块本身具有20个尾节点,则这两个积木子模块组成的积木图对应的拓扑流程图总共具有702个(即35*20+2)尾节点。在本发明的一个实施例中,流程图是树结构,其仅具有一个首节点,那么这种情况也属于本发明要求保护的范围,比如后一积木子模块唯一的首节点的名称为n2,则这两个积木子模块组成的积木图截止至后一个积木子模块对应的拓扑流程图的首节点具有3条分支路径,若后一积木子模块本身具有15个尾节点,则这两个积木子模块组成的积木图对应的拓扑流程图总共具有52个(即3*15+2+5)尾节点。这一点体现出积木图比普通的拓扑流程图相比,具有显著的进步,即原先众多分支路径的拓扑流程图利用本发明的技术方案仅需要分别画两个流程图,然后搭接成积木图即可,使得拓扑维度大大降低,避免手工操作带来的误差,这使得再复杂的网页功能都能够在花费较小的人力成本情况下以较高的准确性实现ui功能测试,这一点在网页功能测试越复杂的情况下,越能体现本发明的测试方法的优越性。所述积木图实质内容为搭接积木图的元素(比如这里的积木子模块,还可以是下文的积木图单元)所对应的拓扑流程图根据元素搭接关系构成的总拓扑流程图,但是积木图的前端仅为具有命名的单框形式,简洁明了。
[0065]
本实施例的智能软件测试系统是利用机械手进行模拟人手操作对软件进行测试,相比于利用纯软件控制软件测试流程的现有技术来讲,本发明实施例中通过软件操控机械手来控制软件测试流程,稳定性更高,且由于纯软件控制软件测试流程的过程为后台执行,而本实施例中的机械手执行拟人软件测试是直观的,因此,当在测试过程中发生错误的时候,容易核查并追溯错误节点,以提出相应的纠错方案,完成对机械手的软件控制。
[0066]
具体场景如下:
[0067]
设置一个用于放置待测终端的测试台,所述图像采集装置设置在所述测试台的上方,所述机械手的初始化位置与所述测试台的相对位置信息预存在所述控制器内。
[0068]
本发明还提供了一种基于机器人的智能软件测试方法,包括以下步骤:
[0069]
s1、获取预设的业务流程,所述业务流程包括按序排列的业务操作;
[0070]
s2、遍历业务流程中的业务操作,每遍历一个业务操作后执行s3,每遍历一个业务操作的过程包括:对待测终端上当前的业务操作的待操作位置进行定位,得到绝对坐标;控制所述机械手移动至定位得到的绝对坐标处,并使其在所述待测终端上进行软件测试操作,以使所述待测终端跳转到下一个业务操作的界面;
[0071]
s3、判断是否对所述业务流程中所有的业务操作完成遍历,若是,则完成测试,否则执行s2。
[0072]
具体地,对待测终端上当前的业务操作的待操作位置进行定位,得到绝对坐标的方式有多种,比如,可以利用代码模型驱动,所述代码模型驱动采用xpath、css selector、id、(x,y)绝对坐标、text中的任意一种定位方式对待操作位置进行定位,得到待操作位置的绝对坐标。
[0073]
智能定位的方式不限定于上述的代码模型驱动的方式,还可以采用以下两种方式:
[0074]
在本发明的一个实施例中,如图5所示,基于机器人的智能软件测试方法流程如下:
[0075]
s1、获取预设的业务流程,所述业务流程包括按序排列的业务操作。
[0076]
以驴妈妈订机票的业务流程为例,其具体包括机票检索、机票详情选择、乘机人信息输入及支付,以上四个操作按照时间先后顺序排列。
[0077]
获取业务流程的方式可以通过云平台下发测试任务、通过读取存储器中预存的测试任务,又或者是通过上述业务流程人工设置模块来人工输入目标测试任务,具体不再赘述。
[0078]
s2、遍历业务流程中的业务操作,每遍历一个业务操作后执行s3,每遍历一个业务操作的过程包括步骤s211-s213,以上面的驴妈妈订机票的业务流程为例,首先遍历机票检索这一业务操作:
[0079]
s211、触发图像采集装置对待测终端的界面进行图像采集,即当前界面为驴妈妈首页的界面。
[0080]
s212、接收文字识别模块发送的对步骤s211中的图像采集结果的识别结果,所述识别结果包括所述待测终端的界面上的若干条文本信息及其在所述待测终端上的对应位置信息;
[0081]
具体地,比如识别到“酒店”,位置(x1,y1);“订机票”,位置(x2,y2);“火车票”,位置(x3,y3)。
[0082]
s213、根据当前业务操作和当前的识别结果,控制机械手在所述待测终端上相应位置进行软件测试操作,以使所述待测终端跳转到下一个业务操作的界面,具体操作如下:
[0083]
对机械手进行复位,使其移动至初始化位置,所述初始化位置为(0,0);
[0084]
s2131、将当前业务操作名称与所述当前界面图像的识别结果作匹配,得到匹配的文本信息在待测终端上的对应位置信息;以上述机票检索这一业务操作为例,从识别结果中匹配到“订机票”,位置(x2,y2);
[0085]
s2132、根据已知的机械手的初始化位置与所述待测终端的相对位置信息,计算所述匹配的文本信息在待测终端上的对应位置信息与所述初始化位置的相对位置信息;以下存在不同的情况:
[0086]
情况一、驴妈妈首页上有显示订机票的信息输入框,则在业务操作中设置具体为输入操作+点击操作,输入操作包括输入起飞城市、目的地城市、起飞日期、订购数量,则在上述s23中需要匹配的文本就是跟“起飞城市”、“目的地城市”、“起飞日期”、“订购数量”相关的,然后按照组件距离最小策略确定各自的输入框(因为首页上会有多个输入框)及相应的输入框位置,以控制机械手移动至相应位置的上方,再向下移动直至触碰至所述待测终端的屏幕,通过软(硬)键盘的子母数字识别,进行相应触碰输入完当前信息后再抬起,移动至下一需要输入信息的输入框位置,再向下移动,如此循环,直至输入完所述业务操作中指定的信息,再移动至位置(x2,y2)执行点击操作,使待测终端跳转到机票详情界面。
[0087]
情况二、驴妈妈首页上仅有订机票而没有相关输入框,则直接移动至位置(x2,y2)执行点击操作,再在跳转后的机票信息输入界面执行如情况一中的信息输入操作。
[0088]
显然,所述机械手为三轴机械手,可以在三维空间内移动,所述机械手的操作端可以套设防撞件,比如硅胶套,以防止机械手对终端发生碰撞。现有技术中,通常采用设置z轴
的距离,来实现上下移动的控制,这种方式存在缺陷:第一、考虑到机械手的驱动装置的启动和关闭给机械手的驱动路程的精确性带来的负面影响可知,短距离的移动精度难以得到保证,因此,通常需要上移1公分以上才能确保每次移动的距离是相等的;第二、防撞件的老化或变形,会影响机械手对终端的操作,甚至在原设的距离移动范围内触碰不到终端触摸屏或pc的输入设备。在本发明的一个实施例中,可以通过传感技术来控制机械手在z轴上的移动动作,即当检测到界面发生变化,则控制机械手停止下移,并向上移动,再平移至下一目标位置后,重复执行下移-停止-上移-平移的动作。这样的好处在于,第一、可以设置较短的上移距离,0.8-10mm的上一距离足矣,上移距离越短,比如选择1-3mm,则测试效率越高,第二、对于移动距离的精度要求大大降低,比如,预设每次上移2mm,实际精度即使为上下浮动一定比例,也不会影响测试结果,第三、无论防撞件是否发生变化,可以确保每次都能够良好接触智能终端的显示屏或pc终端的输入设备,确保软件测试的流畅性。
[0089]
在本发明的一个实施例中,所述机械手包括多个可同时操作的执行末端,在所述控制器的控制下,一个执行末端执行前一业务操作过程中,另一执行末端对后一业务操作进行预操作。以在键盘输入字母a和b为例,第一执行末端和第二执行末端分别去定位到a键和b键位置,在第一执行末端在按下a键时,第二执行末端在b键上方向下移动但是不触碰到b键(即为预操作),在第一执行末端抬起并离开a键后,第二执行末端才按压b键,确保两个执行末端不会同时进行操作,仅仅是后一执行末端的预操作过程与前一执行末端的预操作+操作过程重合,这种多执行末端并行控制的测试方法大大缩短了测试时间。需要说明的是,以上方式并不限定机械手为单个或多个,多个机械手可以视为多个执行末端,并行控制多个机械手和并行控制多个执行末端所起到的技术效果是相近或一致的。
[0090]
可能还存在第三种以上的情况,不同的情况对应的业务流程中的业务操作不同,具体根据待测的应用的界面构件来订制相应的测试业务流程,本发明不主张保护具体的业务流程,而主张保护根据相适应的业务流程来指导机械手进行业务操作的执行动作。
[0091]
上述各个输入框的位置为移动机械手的目标绝对坐标(x
t
,y
t
),其与机械手当前所处位置(x
0
,y
0
)之间的相对坐标(移动矢量)为(x
t-x
0
,y
t-y
0
);
[0092]
s2133、根据计算结果控制机械手移动至所述匹配的文本信息在待测终端上的对应位置进行软件测试操作,软件测试操作不限于上述的输入+点击,根据实际的情况,还可以为单输入(后直接跳转)、单点击、滑动和/或长按等操作类型。以上类型信息通过在业务操作信息中设置业务操作类型,所述机械手根据业务操作类型对所述待测终端进行软件测试操作。
[0093]
所述待测终端除了具有触摸显示屏的智能手机、平板电脑、其他智能终端,也可以是pc,对于pc终端,涉及到输入操作的业务流程需要配置与该pc终端连接的输入设备,所述控制器根据当前业务操作和当前界面图像的识别结果,控制所述机械手在所述输入设备(比如鼠标和/或键盘)上向所述待测终端输入信息。
[0094]
s3、判断是否对所述业务流程中所有的业务操作完成遍历,若是,则完成测试,否则返回执行s2。
[0095]
如上机票检索

机票详情选择

乘机人信息输入

支付的业务流程,直至支付成功的界面,可以视为完成测试,否则就要进行当前业务操作的下一业务操作,具体的执行的方法及规则参考上述流程,不再具体赘述。
[0096]
若未对所述业务流程中所有的业务操作完成遍历,则返回执行s2后,
[0097]
匹配到下一业务操作对应的文本信息在待测终端上的对应位置信息;
[0098]
根据当前匹配的文本信息在待测终端上的对应位置,计算其与所述下一业务操作对应的文本信息在待测终端上的对应位置的相对位置信息;
[0099]
根据计算结果控制机械手由当前位置移动至所述下一业务操作对应的文本信息在待测终端上的对应位置进行软件测试操作,而无需在所述机械手完成当前业务操作的测试操作后复位至所述初始化位置。相比于现有技术中,在单个操作完成后采用机械手复位的方式而言,本实施例中无需在所述机械手完成当前业务操作的测试操作后复位至所述初始化位置的方式可以减少复位所需的时间,提高工作效率。
[0100]
显而易见地,在由起始位置开始测试操作后,不再复位的控制方式仅为提高测试效率的优选实施例,而每执行一次测试操作就复位,新的业务操作就由初始位置出发至绝对位置,对于控制程序来讲,在初始位置为(0,0)的前提下,可以直接将绝对位置作为移动矢量,但是计算相对坐标(x
t-x
0
,y
t-y
0
)的计算量对于计算机而言,从技术效果角度来讲,显然是微不足道的,不复位的方式可以视为将初始位置更新为当前位置,其与复位的方式应当视为等同,并极大提高机械臂的操作效率,目前看单臂单手(电容笔)的操作已经比人工操作快,如果再提高到多臂多手或者单臂多手会提升更多效率。
[0101]
如果在测试过程中发生错误,比如所述当前业务操作名称与所述当前界面图像的识别结果匹配失败,即当前界面中文本识别的结果中没有任意一条能够与当前业务相匹配,则执行以下任一操作:
[0102]
提示报错信息;或者,
[0103]
对所述待测终端执行返回上一业务操作对应的界面的操作,并返回执行s2;或者,
[0104]
退出后重启所述待测终端的待测软件程序,并返回执行s1。
[0105]
在本发明的一个实施例中,提供了另一种基于机器人的智能软件测试方法,参见图6,包括如下流程:
[0106]
s1、获取预设的业务流程,所述业务流程包括按序排列的业务操作。
[0107]
s2、遍历业务流程中的业务操作,每遍历一个业务操作后执行s3,每遍历一个业务操作的过程包括步骤s221-s222:
[0108]
s221、获取当前的业务操作的待操作区域的基准图像;抓取当前界面,得到界面图像。
[0109]
s222、比对所述基准图像与抓取的界面图像,得到所述基准图像在所述抓取的界面图像中的绝对坐标。
[0110]
根据绝对坐标和机械手当前所在位置的坐标,计算机械手向所述绝对坐标移动的矢量坐标(即相对坐标),以此控制机械手移动至待操作区域的对应上方位置后再下移进行软件测试操作,软件测试操作不限于上述的输入+点击,根据实际的情况,还可以为单输入(后直接跳转)、单点击、滑动和/或长按等操作类型。以上类型信息通过在业务操作信息中设置业务操作类型,所述机械手根据业务操作类型对所述待测终端进行软件测试操作。
[0111]
所述待测终端除了具有触摸显示屏的智能手机、平板电脑、其他智能终端,也可以是pc、智能家居、车联网、pos机等交互比如硬键盘,对于pc终端,涉及到输入操作的业务流程需要配置与该pc终端连接的输入设备,所述控制器根据当前业务操作和当前界面图像的
识别结果,控制所述机械手在所述输入设备(比如鼠标和/或键盘)上向所述待测终端输入信息。
[0112]
s3、判断是否对所述业务流程中所有的业务操作完成遍历,若是,则完成测试,否则返回执行s2。
[0113]
本实施例与上实施例的区别仅在于步骤s2中定位绝对坐标的方式,在本实施例中,执行s221-s222实现绝对坐标的定位,在上述实施例中,执行s211-s213实现绝对坐标的定位。除此以外的内容在此采用全部引入的方式并入本实施例。
[0114]
通过以上实施方式的描述,本领域的技术人员可以清楚地了解到本发明提供的系统外部命令执行技术方案可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0115]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1