CN103279420A - 优化的移动终端应用程序自动化测试方法和*** - Google Patents
优化的移动终端应用程序自动化测试方法和*** Download PDFInfo
- Publication number
- CN103279420A CN103279420A CN201310229401XA CN201310229401A CN103279420A CN 103279420 A CN103279420 A CN 103279420A CN 201310229401X A CN201310229401X A CN 201310229401XA CN 201310229401 A CN201310229401 A CN 201310229401A CN 103279420 A CN103279420 A CN 103279420A
- Authority
- CN
- China
- Prior art keywords
- node
- destination node
- application program
- mobile terminal
- set membership
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种优化的移动终端应用程序自动化测试方法和***,提高移动终端应用程序自动化测试的效率和开发质量。其技术方案为:选取相对节点,获得所选取的相对节点到目标节点的父子关系;将相对节点和目标节点的父子关系存储在数组中;基于数组存储的父子关系,通过标示属性的值查找目标节点并返回查找到的目标节点对应的元素对象;根据查找返回的元素对象,操作对应的测试控件进行自动化测试。
Description
技术领域
本发明涉及程序测试方法和***,尤其涉及一种针对移动终端的应用程序、经优化的进行自动化测试的方法和***。
背景技术
目前,安卓手机端的软件随着安卓***的流行应用越来越广泛,因此安卓手机端应用的开发也越来越多,在测试阶段渐渐地采用了自动化测试。在自动化测试过程中,点击一个控件的操作非常频繁。传统使用的点击方法中必须找到要点击的元素所在的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根据查找返回的元素对象,操作对应的测试控件进行自动化测试。
上述实施例是提供给本领域普通技术人员来实现和使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书所提到的创新性特征的最大范围。
Claims (8)
1.一种优化的移动终端应用程序自动化测试方法,包括:
选取相对节点,获得所选取的相对节点到目标节点的父子关系;
将相对节点和目标节点的父子关系存储在数组中;
基于数组存储的父子关系,通过标示属性的值查找目标节点并返回查找到的目标节点对应的元素对象;
根据查找返回的元素对象,操作对应的测试控件进行自动化测试。
2.根据权利要求1所述的优化的移动终端应用程序自动化测试方法,其特征在于,节点关系是以树形数据结构存储,其中目标节点是根节点或者最靠近根节点的拥有标示属性的控件,且目标节点是相对节点的子节点。
3.根据权利要求2所述的优化的移动终端应用程序自动化测试方法,其特征在于,通过可视化调试工具的布局图得到目标节点和相对节点的父子关系。
4.根据权利要求3所述的优化的移动终端应用程序自动化测试方法,其特征在于,该可视化调试工具是安卓***自带的HierarchyViewer的调试工具。
5.一种优化的移动终端应用程序自动化测试***,包括:
节点关系获取模块,选取相对节点,获得所选取的相对节点到目标节点的父子关系;
节点关系存储模块,将相对节点和目标节点的父子关系存储在数组中;
目标节点查找模块,基于数组存储的父子关系,通过标示属性的值查找目标节点并返回查找到的目标节点对应的元素对象;
控件测试模块,根据查找返回的元素对象,操作对应的测试控件进行自动化测试。
6.根据权利要求5所述的优化的移动终端应用程序自动化测试***,其特征在于,节点关系是以树形数据结构存储,其中目标节点是根节点或者最靠近根节点的拥有标示属性的控件,且目标节点是相对节点的子节点。
7.根据权利要求6所述的优化的移动终端应用程序自动化测试***,其特征在于,节点关系获取模块是通过可视化调试工具的布局图得到目标节点和相对节点的父子关系。
8.根据权利要求7所述的优化的移动终端应用程序自动化测试***,其特征在于,该可视化调试工具是安卓***自带的HierarchyViewer的调试工具。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310229401.XA CN103279420B (zh) | 2013-06-08 | 2013-06-08 | 优化的移动终端应用程序自动化测试方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310229401.XA CN103279420B (zh) | 2013-06-08 | 2013-06-08 | 优化的移动终端应用程序自动化测试方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103279420A true CN103279420A (zh) | 2013-09-04 |
CN103279420B CN103279420B (zh) | 2016-02-24 |
Family
ID=49061949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310229401.XA Expired - Fee Related CN103279420B (zh) | 2013-06-08 | 2013-06-08 | 优化的移动终端应用程序自动化测试方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103279420B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107256148A (zh) * | 2017-05-24 | 2017-10-17 | 龙芯中科技术有限公司 | 界面的生成方法及***、电子设备及存储介质 |
CN107402882A (zh) * | 2017-07-21 | 2017-11-28 | 杭州迪普科技股份有限公司 | Web页面测试方法和装置 |
CN109086204A (zh) * | 2018-07-20 | 2018-12-25 | 北京小米移动软件有限公司 | 节点关系树建立、页面标记和识别方法、装置和存储介质 |
CN110874318A (zh) * | 2018-08-31 | 2020-03-10 | 浙江宇视科技有限公司 | 软件测试方法、装置及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040070612A1 (en) * | 2002-09-30 | 2004-04-15 | Microsoft Corporation | System and method for making user interface elements known to an application and user |
CN101655817A (zh) * | 2009-09-24 | 2010-02-24 | 成都市华为赛门铁克科技有限公司 | 图形用户界面测试方法及测试装置 |
CN102243586A (zh) * | 2011-07-22 | 2011-11-16 | 于秀山 | 一种软件功能图自动获取方法 |
-
2013
- 2013-06-08 CN CN201310229401.XA patent/CN103279420B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040070612A1 (en) * | 2002-09-30 | 2004-04-15 | Microsoft Corporation | System and method for making user interface elements known to an application and user |
CN101655817A (zh) * | 2009-09-24 | 2010-02-24 | 成都市华为赛门铁克科技有限公司 | 图形用户界面测试方法及测试装置 |
CN102243586A (zh) * | 2011-07-22 | 2011-11-16 | 于秀山 | 一种软件功能图自动获取方法 |
Non-Patent Citations (1)
Title |
---|
张燕华 等: "迭代模式中基于可复用构件的自动化测试框架研究", 《中国测试》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107256148A (zh) * | 2017-05-24 | 2017-10-17 | 龙芯中科技术有限公司 | 界面的生成方法及***、电子设备及存储介质 |
CN107402882A (zh) * | 2017-07-21 | 2017-11-28 | 杭州迪普科技股份有限公司 | Web页面测试方法和装置 |
CN109086204A (zh) * | 2018-07-20 | 2018-12-25 | 北京小米移动软件有限公司 | 节点关系树建立、页面标记和识别方法、装置和存储介质 |
CN109086204B (zh) * | 2018-07-20 | 2022-03-11 | 北京小米移动软件有限公司 | 节点关系树建立、页面标记和识别方法、装置和存储介质 |
CN110874318A (zh) * | 2018-08-31 | 2020-03-10 | 浙江宇视科技有限公司 | 软件测试方法、装置及计算机可读存储介质 |
CN110874318B (zh) * | 2018-08-31 | 2023-10-24 | 浙江宇视科技有限公司 | 软件测试方法、装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103279420B (zh) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110321344B (zh) | 关联数据的信息查询方法、装置、计算机设备及存储介质 | |
CN103309559B (zh) | 一种控制界面应用图标的方法及终端 | |
CN101719095A (zh) | 一种回归测试的管理方法及装置 | |
CN102663162B (zh) | 一种电网拓扑模型的构建方法及装置 | |
CN107463366A (zh) | 一种基于移动App的界面动态化方法 | |
CN103279420A (zh) | 优化的移动终端应用程序自动化测试方法和*** | |
US9665612B2 (en) | Run-time decision of bulk insert for massive data loading | |
CN103955536A (zh) | 应用程序的分类方法和装置 | |
CN104636349A (zh) | 一种索引数据压缩以及索引数据搜索的方法和设备 | |
CN103049098A (zh) | 输入法切换方法及设备 | |
CN111309868B (zh) | 一种知识图谱构建、检索方法及装置 | |
CN105095328A (zh) | 选择图片的方法、装置和移动终端 | |
CN104539750A (zh) | 一种ip定位方法和装置 | |
CN105354138A (zh) | 一种确定手机页面上特定控件属性的方法 | |
CN104536874A (zh) | 客户端崩溃定位方法和设备 | |
CN105183768A (zh) | 一种文件管理方法、装置和终端设备 | |
CN104166730A (zh) | 一种呈现搜索结果的方法及装置 | |
CN103019691A (zh) | 一种etl作业关系图的转化方法及其实现*** | |
CN103744896A (zh) | 一种数据处理方法和装置 | |
CN105549808A (zh) | 一种快捷方式图标的显示方法、装置和终端设备 | |
CN104636401A (zh) | 一种scada***数据回滚的方法及装置 | |
CN103699534A (zh) | ***目录中数据对象的显示方法及装置 | |
CN104102704A (zh) | ***控件展示方法和装置 | |
CN101794313A (zh) | 嵌入式***的文件搜索装置 | |
CN102982147A (zh) | 一种提高数据信息整合效率的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201125 Address after: 100083 Beijing Haidian District 39 Xueyuan Road 6 real estate building. Patentee after: Beijing Mesh Technology Co.,Ltd. Address before: 200030 Shanghai Xuhui District Xietu Road No. 2669 15 Floor Patentee before: WANGSU SCIENCE & TECHNOLOGY Co.,Ltd. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160224 |
|
CF01 | Termination of patent right due to non-payment of annual fee |