首页> 中国专利> 优化的移动终端应用程序自动化测试方法和系统

优化的移动终端应用程序自动化测试方法和系统

摘要

本发明公开了一种优化的移动终端应用程序自动化测试方法和系统,提高移动终端应用程序自动化测试的效率和开发质量。其技术方案为:选取相对节点,获得所选取的相对节点到目标节点的父子关系;将相对节点和目标节点的父子关系存储在数组中;基于数组存储的父子关系,通过标示属性的值查找目标节点并返回查找到的目标节点对应的元素对象;根据查找返回的元素对象,操作对应的测试控件进行自动化测试。

著录项

  • 公开/公告号CN103279420A

    专利类型发明专利

  • 公开/公告日2013-09-04

    原文格式PDF

  • 申请/专利权人 网宿科技股份有限公司;

    申请/专利号CN201310229401.X

  • 发明设计人 洪珂;吕士表;陈明师;张燕华;

    申请日2013-06-08

  • 分类号G06F11/36(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人施浩

  • 地址 200030 上海市徐汇区斜土路2669号15楼

  • 入库时间 2024-02-19 20:03:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-06-16

    未缴年费专利权终止 IPC(主分类):G06F11/36 专利号:ZL201310229401X 申请日:20130608 授权公告日:20160224

    专利权的终止

  • 2016-02-24

    授权

    授权

  • 2013-10-09

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20130608

    实质审查的生效

  • 2013-09-04

    公开

    公开

说明书

技术领域

本发明涉及程序测试方法和系统,尤其涉及一种针对移动终端的应用程序、经优化的进行自动化测试的方法和系统。

背景技术

目前,安卓手机端的软件随着安卓系统的流行应用越来越广泛,因此安卓手机端应用的开发也越来越多,在测试阶段渐渐地采用了自动化测试。在自动化测试过程中,点击一个控件的操作非常频繁。传统使用的点击方法中必须找到要点击的元素所在的X,Y坐标值。但是对于不同适配界面的手机,元素所在的位置X,Y值不一样,这也就出现了适配问题。解决这种问题有多种方法:一种是按照不同手机的长宽比例来定位元素的位置从而触发点击事件。另一种就是通过HierarchyViewer(一种可视化调试工具,每一个界面都使用了LinearLayout和FrameLayout布局,以及文本框TextView和图片框ImageView控件)自身的函数HierarchyViewer.findViewById(MID)来达到点击目的,因此安卓自身所带的工具HierarchyViewer成了自动化测试过程必不可少的一款工具。但是这两种方法均存在着缺陷。

对于前一种方法,将不同手机之间屏幕的大小关系转化成比例,使用该比例乘以手机屏幕的像素重新计算新的位置坐标,而在进行换算元素坐标时存在换算后不准确从而导致点击位置出错的问题。

对于后一种方法,其实现方式如图1所示通过函数HierarchyViewer.findViewById(MID)查找控件,即逐步按顺序遍历所有活动页面的元素,找到元素的id属性,将id属性值与预存的预期id属性值比较,若相等则返回该id属性值对应的元素对象,这种通过控件id(标示)属性(Hierarchyviewer中LinearLayout和FrameLayout布局以及文本框和图片框控件中含有的标识元素唯一性位置的属性)来找元素存在效率问题,而且时间的浪费对一些需要时间精确度很高的测试方法来说不可取。具体而言,其缺点在于:1)每查找一次指定id的节点需要耗时较多,当节点多、层次深时,耗时尤其明显,自动化效率低下;2)点击控件时需要重新进行控件位置到坐标的转化;3)当该元素未加载完成时,会频繁报出找不到该拥有指定id的元素的错误;4)对于相同id属性的多个元素,使用通过id查找控件时,返回的是第一个找到的元素,而这个元素控件不一定是目标元素。

发明内容

本发明的目的在于解决上述问题,提供了一种优化的移动终端应用程序自动化测试方法和系统,提高移动终端应用程序自动化测试的效率和开发质量。

本发明的技术方案为:本发明揭示了一种优化的移动终端应用程序自动化测试方法,包括:

选取相对节点,获得所选取的相对节点到目标节点的父子关系;

将相对节点和目标节点的父子关系存储在数组中;

基于数组存储的父子关系,通过标示属性的值查找目标节点并返回查找到的目标节点对应的元素对象;

根据查找返回的元素对象,操作对应的测试控件进行自动化测试。

根据本发明的优化的移动终端应用程序自动化测试方法的一实施例,节点关系是以树形数据结构存储,其中目标节点是根节点或者最靠近根节点的拥有标示属性的控件,且目标节点是相对节点的子节点。

根据本发明的优化的移动终端应用程序自动化测试方法的一实施例,通过可视化调试工具的布局图得到目标节点和相对节点的父子关系。

根据本发明的优化的移动终端应用程序自动化测试方法的一实施例,该可视化调试工具是安卓系统自带的HierarchyViewer的调试工具。

本发明还揭示了一种优化的移动终端应用程序自动化测试系统,包括:

节点关系获取模块,选取相对节点,获得所选取的相对节点到目标节点的父子关系;

节点关系存储模块,将相对节点和目标节点的父子关系存储在数组中;

目标节点查找模块,基于数组存储的父子关系,通过标示属性的值查找目标节点并返回查找到的目标节点对应的元素对象;

控件测试模块,根据查找返回的元素对象,操作对应的测试控件进行自动化测试。

根据本发明的优化的移动终端应用程序自动化测试系统的一实施例,节点关系是以树形数据结构存储,其中目标节点是根节点或者最靠近根节点的拥有标示属性的控件,且目标节点是相对节点的子节点。

根据本发明的优化的移动终端应用程序自动化测试系统的一实施例,节点关系获取模块是通过可视化调试工具的布局图得到目标节点和相对节点的父子关系。

根据本发明的优化的移动终端应用程序自动化测试系统的一实施例,该可视化调试工具是安卓系统自带的HierarchyViewer的调试工具。

本发明对比现有技术有如下的有益效果:本发明的方案是对自动化测试中的查找指定id属性的步骤进行优化,将子节点转化为父节点的children顺序,将这种相对关系存储于数组中,直接利用这一关系有目的地找到并返回所需要的元素对象。这样的优化使得在大量执行通过id属性值查找目标节点的测试用例中,节省了操作时间,提升了自动化执行的效率和测试速度,并且很大程度上提高了移动终端(尤其是安卓手机)客户端应用程序自动化测试的效率和开发质量。

附图说明

图1示出了传统的应用程序自动化测试方法的流程图。

图2示出了本发明的优化的移动终端应用程序自动化测试方法的较佳实施例的流程图。

图3示出了活动页面树形结构图。

图4示出了本发明的优化的移动终端应用程序自动化测试系统的较佳实施例的结构图。

具体实施方式

下面结合附图和实施例对本发明作进一步的描述。

优化的移动终端应用程序自动化测试方法的实施例

图2示出了本发明的优化的移动终端应用程序自动化测试方法的较佳实施例的流程,请参见图2,下面是对本实施例的自动化测试方法的实施步骤的详细描述。

步骤S11:选取相对节点,获得所选取的相对节点到目标节点的父子关系。

节点关系是以树形数据结构存储,其中目标节点是根节点或者最靠近根节点的拥有标示属性(MID,本申请中可简称为id)的控件,且目标节点是相对节点的子节点。请参见图3所示的活动页面树形结构,节点之间就是以图3所示的这种树形结构来存储的。

在本实施例中,是通过可视化调试工具的布局图得到目标节点和相对节点的父子关系(依照倒树形结构,从上到下0为起始编号)。在安卓系统中,这种可视化调试工具就是安卓系统自带的HierarchyViewer的调试工具。

步骤S12:将相对节点和目标节点的父子关系存储在数组中。

如果从上到下从0开始编顺序,目标节点便是相对节点的children[0].children[0].children[0].children[2],数组中存入的值是(0,0,0,2)。

步骤S13:基于数组存储的父子关系,通过标示属性的值查找目标节点并返回查找到的目标节点对应的元素对象。

查找id这个步骤在整个测试过程中占用的时间是不可低估的,如果采用传统的顺序查找方法,平均时间复杂度为n/2单位时间(n为节点个数)。如果采用优化后的方法查找,即在脚本函数中将记录后的数组作为参数传递,由于位置已经在数组中指定好了,所以平均时间复杂度为1(单位时间)。实践证明,这个单位时间几乎为0。而本步骤中是根据相对节点的id属性值查找目标节点,并返回目标节点的node对象。

步骤S14:根据查找返回的元素对象,操作对应的测试控件进行自动化测试。

优化的移动终端应用程序自动化测试系统的实施例

图4示出了本发明的优化的移动终端应用程序自动化测试系统的较佳实施例的结构。请参见图4,本实施例的自动化测试系统包括:节点关系获取模块1、节点关系存储模块2、目标节点查找模块3、控件测试模块4。

节点关系获取模块1选取相对节点,获得所选取的相对节点到目标节点的父子关系。

节点关系是以树形数据结构存储,其中目标节点是根节点或者最靠近根节点的拥有标示属性(MID,本申请中可简称为id)的控件,且目标节点是相对节点的子节点。请参见图3所示的活动页面树形结构,节点之间就是以图3所示的这种树形结构来存储的。

在本实施例中,是通过可视化调试工具的布局图得到目标节点和相对节点的父子关系(依照倒树形结构,从上到下0为起始编号)。在安卓系统中,这种可视化调试工具就是安卓系统自带的HierarchyViewer的调试工具。

节点关系存储模块2将相对节点和目标节点的父子关系存储在数组中。如果从上到下从0开始编顺序,目标节点便是相对节点的children[0].children[0].children[0].children[2],数组中存入的值是(0,0,0,2)。

目标节点查找模块3基于数组存储的父子关系,通过标示属性的值查找目标节点并返回查找到的目标节点对应的元素对象。

查找id在整个测试过程中占用的时间是不可低估的,如果采用传统的顺序查找方法,平均时间复杂度为n/2单位时间(n为节点个数)。如果采用优化后的方法查找,即在脚本函数中将记录后的数组作为参数传递,由于位置已经在数组中指定好了,所以平均时间复杂度为1(单位时间)。实践证明,这个单位时间几乎为0。而本实施例的目标节点查找模块3是根据相对节点的id属性值查找目标节点,并返回目标节点的node对象。

控件测试模块4根据查找返回的元素对象,操作对应的测试控件进行自动化测试。

上述实施例是提供给本领域普通技术人员来实现和使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书所提到的创新性特征的最大范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号