CN103136100B - 一种Android测试的方法和系统 - Google Patents

一种Android测试的方法和系统 Download PDF

Info

Publication number
CN103136100B
CN103136100B CN201110396968.7A CN201110396968A CN103136100B CN 103136100 B CN103136100 B CN 103136100B CN 201110396968 A CN201110396968 A CN 201110396968A CN 103136100 B CN103136100 B CN 103136100B
Authority
CN
China
Prior art keywords
file
node
topology
attribute
topology file
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.)
Active
Application number
CN201110396968.7A
Other languages
English (en)
Other versions
CN103136100A (zh
Inventor
丁津津
李子乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201110396968.7A priority Critical patent/CN103136100B/zh
Publication of CN103136100A publication Critical patent/CN103136100A/zh
Priority to HK13108862.3A priority patent/HK1181526A1/zh
Application granted granted Critical
Publication of CN103136100B publication Critical patent/CN103136100B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本申请提供了一种Android测试的方法和系统,其中,所述方法包括:读取Android的布局文件,所述布局文件中包含应用界面UI中使用到的元素节点;获取所述元素节点的id属性和父亲属性,并去除所述布局文件中的重复元素节点,所述重复元素节点为与某个元素节点的id属性和父亲属性均相同的其他元素节点;在当前布局文件中无引用的其他布局文件时,针对当前布局文件中id属性相同、父亲id属性不同的元素节点,添加与当前元素节点最近的父节点的id属性;根据所述处理后的布局文件生成测试对象,由预设的测试脚本调用所述测试对象进行Android测试。本申请可以避免使用工具和手动输入可能造成的错误,提高测试脚本的编写速度和正确率,从而有效提高测试效率。

Description

一种Android测试的方法和系统
技术领域
本申请涉及系统测试的技术领域,特别是涉及一种Android测试的方法和系统。
背景技术
Android是一种以Linux为基础的开放源码操作系统,主要使用于手机等移动终端,目前尚未有统一中文名称。Android平台由操作系统、中间件、用户界面和应用软件组成。
采用现有的Android测试方案,需要获取被测对象的id,然后再将所述被测对象的id写入测试脚本中。其中,所述被测对象的id是指页面元素在Android的布局文件中声明的字符类型的id,该id在android内部有一个对应的数值。
例如,在使用AndroidNativeDriver(一个AndroidUI(应用界面)自动化测试框架,基于WebDriver开发)或淘宝的TMTS(TaobaoMobileTestSystem,一个开源的AndroidUI自动化测试框架。因其能生成测试对象类,从而能有效地加快测试脚本书写的速度),编写AndroidUI自动化测试脚本获取页面元素时,需要使用AndroidSDK(Android专属的软件开发工具包)中的特定工具(如hierarchyviewer工具)辅助获取所述页面元素的id(被测对象的id)。在AndroidNativeDriver的测试脚本代码中,会使用String类型(字符串型)的id参数查找被测对象的id,这种处理方式的好处是控件比较稳定,不会轻易改变,这样测试用例的复用性会比较高,但是需要借助特定工具获得,并且需要手动输入,容易出错。
具体而言,目前使用hierarchyviewer工具获取页面元素的id时,需要手动启动hierarchyviewer工具,要使用hierarchyviewer工具首先要将AndroidSDK中的tools文件夹路径添加至系统的环境变量path中,然后在cmd命令行中输入hierarchyviewer。确定后会打开一个图形界面,显示当前设备上运行的窗口Activity。该工具启动比较缓慢,开启时间长了之后还会出现无响应的情况,严重影响了测试脚本的编写速度。并且,在将使用String类型的id参数传递给测试系统时,需要采用手动方式执行,则有可能导致错误。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:创造性地提出一种Android测试的机制,用以避免使用工具和手动输入可能造成的错误,提高测试脚本的编写速度和正确率,从而有效提高测试效率。
发明内容
本申请的目的是,提供一种Android测试的方法和系统,用以避免使用工具和手动输入可能造成的错误,提高测试脚本的编写速度和正确率,从而有效提高测试效率。
为了解决上述问题,本申请公开了一种Android测试的方法,包括:
读取Android的布局文件,所述布局文件为描述Android应用界面UI的文件,其中包含应用界面UI中使用到的元素节点;
获取所述元素节点的id属性和父亲属性,并去除所述布局文件中的重复元素节点,所述重复元素节点为与某个元素节点的id属性和父亲属性均相同的其他元素节点;
在当前布局文件中无引用的其他布局文件时,针对当前布局文件中id属性相同、父亲id属性不同的元素节点,添加与当前元素节点最近的父节点的id属性,获得处理后的布局文件;
根据所述处理后的布局文件生成测试对象,由预设的测试脚本调用所述测试对象进行Android测试。
优选的,所述的方法,还包括:
若当前布局文件中有引用其他布局文件,则将被引用的布局文件合并至当前布局文件中。
优选的,所述布局文件为XML格式的文件,所述布局文件中还包括注释和XML序言;所述将被引用的布局文件合并至当前布局文件中的步骤包括:
删除被引用的布局文件中的注释和XML序言;
将所述被引用的布局文件作为当前布局文件中对应引用标签的子节点,合并至当前布局文件中。
优选的,所述根据处理后的布局文件生成测试对象的步骤包括:
解析所述处理后的布局文件,转换成作为测试对象的java类对象。
优选的,所述解析处理后的布局文件,转换成作为测试对象的java类对象的步骤包括:
采用可扩展样式表语言XSL解析所述处理后的布局文件,获取所述布局文件的文件名和每个元素节点的名称;
将所述布局文件名、每个元素节点的名称以及id属性组合生成对应的java类对象。
优选的,所述元素节点为一个元素或包含多个元素的容器。
本申请还公开了一种Android测试的系统,包括:
布局文件读取模块,用于读取Android的布局文件,所述布局文件为描述Android应用界面UI的文件,其中包含应用界面UI中使用到的元素节点;
重复节点去除模块,用于获取所述元素节点的id属性和父亲属性,并去除所述布局文件中的重复元素节点,所述重复元素节点为与某个元素节点的id属性和父亲属性均相同的其他元素节点;
引用文件分析模块,用于分析当前布局文件中是否引用了其他布局文件;
属性添加模块,用于在当前布局文件中无引用的其他布局文件时,针对当前布局文件中id属性相同、父亲id属性不同的元素节点,添加与当前元素节点最近的父节点的id属性,获得处理后的布局文件;
测试对象生成模块,用于根据所述处理后的布局文件生成测试对象;
测试模块,用于由预设的测试脚本调用所述测试对象进行Android测试。
优选的,所述的系统,还包括:
合并模块,用于在当前布局文件中有引用其他布局文件时,将被引用的布局文件合并至当前布局文件中。
优选的,所述布局文件为XML格式的文件,所述布局文件中还包括注释和XML序言;所述合并模块包括:
删除子模块,用于删除被引用的布局文件中的注释和XML序言;
子节点生成子模块,用于将所述被引用的布局文件作为当前布局文件中对应引用标签的子节点,合并至当前布局文件中。
优选的,所述测试对象生成模块包括:
解析子模块,用于解析所述处理后的布局文件;
转换子模块,用于将所述布局文件转换成作为测试对象的java类对象。
与现有技术相比,本申请包括以下优点:
本申请实施例通过将源布局文件处理为目标布局文件,使得目标布局文件中具有以下特征:1)没有重复的元素节点;2)在引用了其他布局文件的情况下,并入了被引用的布局文件;3)对于id属性相同、父亲id属性不同的元素节点,添加与当前元素节点最近的父节点的id属性。然后将目标布局文件转换为测试对象。从而在应用Android测试框架提供的API时,测试人员只需要传入由目标布局文件生成测试对象,后面的测试代码都能通过IDE(IDE是集成开发环境,用于代码的编写与调试、编译等等,如Eclipse)的智能感应功能生成;而且若该参数传递错误,IDE能实时发现,从而可以大大降低编写android自动化测试脚本时,查找元素过程中传入错误参数的可能性。
本申请通过对布局文件的处理,使得测试过程中减少借助特定工具获得被测对象ID,并且需要手动输入参数的环节,并采用AndroidNativeDriver框架和淘宝的TMTS框架,故本申请能在保证控件的稳定性和测试用例的高复用性的基础上,提高测试脚本的编写速度和正确率,从而有效提高了测试效率。
附图说明
图1是本申请一种Android测试的方法实施例的步骤流程图;
图2a和图2b是本申请的一种示例中在测试脚本中使用evalue_layout.java查找id为evalue_loading的节点的代码运行示意图;
图3是本申请的一种示例中对某android客户端进行一项测试的代码示意图;
图4是本申请一种Android测试的系统实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
参照图1,其示出了本申请的一种Android测试的方法实施例1的步骤流程图,具体可以包括如下步骤:
步骤101、读取Android的布局文件;
所述Android的布局文件为描述Android应用界面UI的文件,其中包含应用界面UI中使用到的元素节点,其中,所述元素节点可以理解为一个元素或包含多个元素的容器(container)。也就是说,Android的布局文件中的元素节点,可以对应一个元素,也可以对应一个容器,容器中通常会包含多个元素。
步骤102、获取所述布局文件中的元素节点的id属性和父亲属性,并去除所述布局文件中的重复元素节点;
在Android的布局文件中,有且仅有一个根元素节点,这个根元素节点是没有父亲属性的。除根元素节点以外,其他元素节点具有id属性和父亲属性。然而在实际中,元素节点的属性中不会显式地声明父亲属性,但是可以通过其他现有工具或者编写代码来分析获取到的。在本申请实施例中,所述重复元素节点即为与某个元素节点的id属性和父亲属性均相同的其他元素节点。
在实际中,通过分析所述布局文件中元素节点中的id属性和父亲属性,保留某个具有某id属性和父亲属性的元素节点,将其他具有相同id属性和父亲属性的元素节点删除,得到不含重复节点的布局文件。
步骤103、判断当前布局文件中是否引用了其他布局文件,若是,则执行步骤104;若否,则执行步骤105;
在具体实现中,可以通过读取当前布局文件中的引用标签判断当前布局文件中是否引用了其他布局文件,即如果有引用标签,则表示当前布局文件中引用了其他布局文件,如果没有引用标签,则表示当前布局文件没有引用其他布局文件。
作为本申请实施例具体应用的一种示例,所述引用标签可以为<include>标签或<ViewStub>标签(这两个标签的意义是组合引用另一个布局文件)。在这种情况下,分析布局文件中是否含有<include>标签或者是<ViewStub>标签,如果有,则表示当前布局文件中引用了其他布局文件;如果没有,则表示当前布局文件没有引用其他布局文件。
步骤104、将被引用的布局文件合并至当前布局文件中,转步骤105;
在实际中,若当前布局文件中引用了其他布局文件,则可以通过layout属性找到被引用的布局文件,其中,layout属性的值为被包含的布局文件的名称,通过所述布局文件的名称读取相应的被引用布局文件,然后分析该被引用的布局文件中是否含有<include>标签或<ViewStub>标签,若有,则继续读取该被进一步引用的布局文件,直至在读取的被引用布局文件中,没有发现<include>或者是<ViewStub>标签为止。
当读取完所有被引用的布局文件后,则将所述被引用的布局文件全部并入引用其的布局文件中。由于在具体应用中,所述布局文件为XML(ExtensibleMarkupLanguage,可扩展标记语言)文件,通常还会包括注释和XML序言,在这种情况下,所述步骤104具体可以包括如下子步骤:
子步骤S41、删除被引用的布局文件中的注释和XML序言;
子步骤S42、将所述被引用的布局文件作为当前布局文件中对应引用标签的子节点,合并至当前布局文件中。
上述子步骤S41中删除被引用的布局文件中的注释和XML序言的操作,可以有效防止在子步骤S42的合并中造成合并后的XML文件不符合XML格式规范。
在实际中,引用标签,如<include>标签或者是<ViewStub>标签会声明引用其他布局文件,合并的时候,就将被引用的整个布局文件作为对应的<include>标签或者是<ViewStub>标签的子节点。需要说明的是,XML文件中有且仅有一个根节点,根节点可以有0到N个子节点,但是没有兄弟节点,子节点可以有0到N个子节点,也可以有0到N个兄弟节点。在本申请实施例,即将被引用布局文件的根节点变为对应的布局文件中的<include>或<ViewStub>的直接子节点。若实际中存在多重引用关系,则将被引用的布局文件作为引用其的布局文件中对应引用标签的子节点进行合并,直至合并成一个新的布局文件。
步骤105、针对当前布局文件中id属性相同、父亲id属性不同的元素节点,添加与当前元素节点最近的父节点的id属性,获得处理后的布局文件;
在本步骤中,所述当前布局文件可以为要去除重复元素节点的,没有引用其他布局文件的布局文件;也可以为经上述步骤104处理后合并引用的布局文件生成的新布局文件。
本步骤可以避免id属性重复造成后续重名的错误。例如,若后续采用XSL解析布局文件生成对应的java类对象(测试对象),则会以id属性作为方法名,若有重复的id属性会造成java类中方法重名的错误,因此,对于布局文件中id属性相同,但是父亲属性不相同的节点,则需要找到该节点的最近一级含有id属性的父节点,获取该父节点的id属性,然后为该节点添加其父节点的id属性。即该节点会具有两个属性,一个是自身的id属性,另一个是父节点的id属性。需要说明的是,一个元素节点在布局文件中不止id一个属性,还会有其他属性,例如,在屏幕中的长宽、相对其他节点的位置等等,但在本申请实施例中只关注id属性。
在本申请实施例中,所述处理后的布局文件主要具有以下特征:
1)没有重复的元素节点;
2)在引用了其他布局文件的情况下,并入了被引用的布局文件;
3)对于id属性相同、父亲id属性不同的元素节点,添加与当前元素节点最近的父节点的id属性。
步骤106、根据所述处理后的布局文件生成测试对象,由预设的测试脚本调用所述测试对象进行Android测试。
在本申请的一种优选实施例中,可以通过解析所述处理后的布局文件,将其转换成作为测试对象的java类对象。在具体实现中,可以采用XSL(EXtensibleStylesheetLanguage,指可扩展样式表语言)解析所述处理后的布局文件生成java类对象。
为使本领域技术人员更好地理解本申请实施例,以下通过一个具体示例说明在特定测试系统TMTS中应用本申请实施例时的XSL解析规则,其中,TMTS是一个开源的AndroidUI自动化测试框架。因其能生成测试对象类,从而能有效地加快测试脚本书写的速度。
首先从整体上介绍下相关的类。
由布局文件解析生成的java类都继承自TmtsGenClass:
这个类在下面的Layout()方法中被初始化的时候会接受一个TmtsTestCase类的实例。
每个使用TMTS编写的测试脚本都是一个java类,它们都继承自TmtsTestCase类。
TmtsTestCase类含有一系列获取控件的API,这些API通过控件在布局文件中声明的id属性就能获取对应的控件。
TmtsTestCase类提供Layout()方法给测试脚本调用,这个方法接收TmtsGenClass的Class对象,也就是由布局文件解析生成的java类的Class对象作为参数,返回参数的实例,在实例化的时候会调用TmtsGenClass类的setContext()方法为TmtsGenClass类的context变量初始化,传入一个TmtsTestCase类的实例:
下面以具体例子来分析下由布局文件解析生成的java类的内部结构和解析规则。下面的evalue_layout类由evalue_layout.xml生成,可以看到其类名和原布局文件名一致:
publicclassevalue_layoutextendsTmtsGenClass{
}
下面是evalue_layout.xml中的一个元素节点:
下面的java代码是自动生成的类中与上面元素节点相关的代码:
可以看到原布局文件中所有ProgerssBar类型的元素节点都在一个名为evalue_layoutProgressBars的内部类中,这个内部类名由原布局文件名+元素节点名+s组成。内部类都是LayoutViews类的子类:
这个内部类在外部类的getProgressBar()方法中实例化,这个方法名是get+元素节点名。在实例化的时候,setContext()方法会接受外部类的TmtsTestCase实例为自己的context变量初始化。
每个元素节点在内部类中都有一个对应的方法,返回其Tmts类型的实例。此例中就是evalueloading()方法。方法名是原布局文件中元素节点id属性的值。
方法的返回类型是TmtsProgressBar,方法返回类型是Tmts+元素节点名。这个方法实际上是借助内部类的context变量,也就是一个TmtsTestCase类的实例来实现,这个实例是在调用TmtsTestCase的Layout()方法时候传入给evalue_layout类,evalue_layout类又在getProgressBar()方法中将其传递给内部类evalue_layoutProgressBars。
总结一下,XSL将原有布局文件名、每个元素节点的名称以及id属性值按照上述规则组合,就能生成对应的java类。
参考图2,其示出了在测试脚本中使用evalue_layout.java查找id为evalue_loading的节点的情况,可以看到调用Layout()方法,通过传入evalue_layout.class,如以下代码所示:
publicvoidtestEvalue()throwsException{
Layout(evalue_layoutt.class);
}
Layout()方法是测试框架提供的API,测试人员只需要在Layout()方法中传入由布局文件生成的java类的Class对象(本例中为evalue_layout.class),后面的测试代码都能通过IDE(如NetBeans,Eclipse或jBuilder)的智能感应功能生成;而且若该参数传递错误,IDE能实时发现。
具体而言,一个测试方法包含三种类型的代码:查找一个元素,操作一个元素,断言(是否操作后的结果符合预期)。一个测试方法中查找一个元素,操作一个元素一般都会有较多的次数,断言绝大部分情况下都只在方法结尾有一条。参考图3所示的对某android客户端进行一项测试的代码示意图,通过代码模拟人的一系列操作(找元素,操作元素),最后断言。可以看出,应用本申请实施例能直接使用IDE的自动感应功能,自动填入参数,从而可以大大降低编写android自动化测试脚本时,查找元素过程中传入错误参数的可能性。
在实际中,只要能用于Android自动化测试的语言都可以应用本申请实施例,优选使用java语言。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
参考图4,其示出了本申请的一种Android测试的系统实施例的结构框图,具体可以包括以下模块:
布局文件读取模块401,用于读取Android的布局文件,所述布局文件为描述Android应用界面UI的文件,其中包含应用界面UI中使用到的元素节点;
重复节点去除模块402,用于获取所述元素节点的id属性和父亲属性,并去除所述布局文件中的重复元素节点,所述重复元素节点为与某个元素节点的id属性和父亲属性均相同的其他元素节点;
引用文件分析模块403,用于分析当前布局文件中是否引用了其他布局文件;若是,则调用合并模块404;若否,则调用属性添加模块405;
合并模块404,用于在当前布局文件中有引用其他布局文件时,将被引用的布局文件合并至当前布局文件中,然后调用属性添加模块405;
属性添加模块405,用于在当前布局文件中无引用的其他布局文件时,针对当前布局文件中id属性相同、父亲id属性不同的元素节点,添加与当前元素节点最近的父节点的id属性,获得处理后的布局文件;
测试对象生成模块406,用于根据所述处理后的布局文件生成测试对象;
测试模块407,用于由预设的测试脚本调用所述测试对象进行Android测试。
在本申请实施例中,所述元素节点可以为一个元素或包含多个元素的容器。
在具体实现中,所述布局文件为XML格式的文件,所述布局文件中还包括注释和XML序言;在这种情况下,所述合并模块404可以包括如下子模块:
删除子模块,用于删除被引用的布局文件中的注释和XML序言;
子节点生成子模块,用于将所述被引用的布局文件作为当前布局文件中对应引用标签的子节点,合并至当前布局文件中。
在本申请的一种优选实施例中,所述测试对象生成模块406可以包括如下子单元:
解析子模块,用于解析所述处理后的布局文件;
转换子模块,用于将所述布局文件转换成作为测试对象的java类对象。
更为优选的是,所述解析子模块可以采用可扩展样式表语言XSL解析所述处理后的布局文件,获取所述布局文件的文件名和每个元素节点的名称;所述转换子模块可以将所述布局文件名、每个元素节点的名称以及id属性组合生成对应的java类对象。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上对本申请所提供的一种Android测试的方法和一种Android测试的系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (6)

1.一种Android测试的方法,其特征在于,包括:
读取Android的布局文件,所述布局文件为描述Android应用界面UI的文件,其中包含应用界面UI中使用到的元素节点;
获取所述元素节点的id属性和父亲属性,并去除所述布局文件中的重复元素节点,所述重复元素节点为与某个元素节点的id属性和父亲属性均相同的其他元素节点;
若当前布局文件中有引用其他布局文件,则将被引用的布局文件合并至当前布局文件中;
在当前布局文件中无引用的其他布局文件时,针对当前布局文件中id属性相同、父亲id属性不同的元素节点,添加与当前元素节点最近的父节点的id属性,获得处理后的布局文件;
根据所述处理后的布局文件生成测试对象,由预设的测试脚本调用所述测试对象进行Android测试;
其中,所述被引用的布局文件为XML格式的文件,所述被引用的布局文件中还包括注释和XML序言;所述将被引用的布局文件合并至当前布局文件中的步骤包括:
删除被引用的布局文件中的注释和XML序言;
将所述被引用的布局文件作为当前布局文件中对应引用标签的子节点,合并至当前布局文件中。
2.根据权利要求1所述的方法,其特征在于,所述根据处理后的布局文件生成测试对象的步骤包括:
解析所述处理后的布局文件,转换成作为测试对象的java类对象。
3.根据权利要求2所述的方法,其特征在于,所述解析处理后的布局文件,转换成作为测试对象的java类对象的步骤包括:
采用可扩展样式表语言XSL解析所述处理后的布局文件,获取所述布局文件的文件名和每个元素节点的名称;
将所述布局文件名、每个元素节点的名称以及id属性组合生成对应的java类对象。
4.根据权利要求1或2或3所述的方法,其特征在于,所述元素节点为一个元素或包含多个元素的容器。
5.一种Android测试的系统,其特征在于,包括:
布局文件读取模块,用于读取Android的布局文件,所述布局文件为描述Android应用界面UI的文件,其中包含应用界面UI中使用到的元素节点;
重复节点去除模块,用于获取所述元素节点的id属性和父亲属性,并去除所述布局文件中的重复元素节点,所述重复元素节点为与某个元素节点的id属性和父亲属性均相同的其他元素节点;
引用文件分析模块,用于分析当前布局文件中是否引用了其他布局文件;
合并模块,用于在当前布局文件中有引用其他布局文件时,将被引用的布局文件合并至当前布局文件中;
属性添加模块,用于在当前布局文件中无引用的其他布局文件时,针对当前布局文件中id属性相同、父亲id属性不同的元素节点,添加与当前元素节点最近的父节点的id属性,获得处理后的布局文件;
测试对象生成模块,用于根据所述处理后的布局文件生成测试对象;
测试模块,用于由预设的测试脚本调用所述测试对象进行Android测试;
其中,所述被引用的布局文件为XML格式的文件,所述被引用的布局文件中还包括注释和XML序言;所述合并模块包括:
删除子模块,用于删除被引用的布局文件中的注释和XML序言;
子节点生成子模块,用于将所述被引用的布局文件作为当前布局文件中对应引用标签的子节点,合并至当前布局文件中。
6.根据权利要求5所述的系统,其特征在于,所述测试对象生成模块包括:
解析子模块,用于解析所述处理后的布局文件;
转换子模块,用于将所述布局文件转换成作为测试对象的java类对象。
CN201110396968.7A 2011-12-02 2011-12-02 一种Android测试的方法和系统 Active CN103136100B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201110396968.7A CN103136100B (zh) 2011-12-02 2011-12-02 一种Android测试的方法和系统
HK13108862.3A HK1181526A1 (zh) 2011-12-02 2013-07-30 種 測試的方法和系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110396968.7A CN103136100B (zh) 2011-12-02 2011-12-02 一种Android测试的方法和系统

Publications (2)

Publication Number Publication Date
CN103136100A CN103136100A (zh) 2013-06-05
CN103136100B true CN103136100B (zh) 2016-08-03

Family

ID=48495950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110396968.7A Active CN103136100B (zh) 2011-12-02 2011-12-02 一种Android测试的方法和系统

Country Status (2)

Country Link
CN (1) CN103136100B (zh)
HK (1) HK1181526A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593290B (zh) * 2013-11-13 2016-06-01 安一恒通(北京)科技有限公司 一种测试软件稳定性的方法和装置
CN104317699A (zh) * 2014-07-24 2015-01-28 小米科技有限责任公司 应用程序审核方法及装置
CN104536889A (zh) * 2014-12-26 2015-04-22 北京奇虎科技有限公司 用户界面测试的方法、用例管理平台、操作终端及系统
CN107291479A (zh) * 2017-06-30 2017-10-24 武汉斗鱼网络科技有限公司 一种Android应用程序中礼物面板的优化方法及装置
CN108446230B (zh) * 2018-03-19 2021-07-20 南京邮电大学 一种面向WebDriver的Java测试代码质量评判方法
CN108984417B (zh) * 2018-08-15 2022-06-03 北京达佳互联信息技术有限公司 软件测试方法、装置、终端及存储介质
CN111123888B (zh) * 2019-12-19 2022-03-15 江苏中天互联科技有限公司 一种工控协议测试方法、系统及电子设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053911A (zh) * 2010-12-30 2011-05-11 东莞宇龙通信科技有限公司 基于Android的自动化测试方法、系统及移动终端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7697443B2 (en) * 2006-04-13 2010-04-13 International Business Machines Corporation Locating hardware faults in a parallel computer

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102053911A (zh) * 2010-12-30 2011-05-11 东莞宇龙通信科技有限公司 基于Android的自动化测试方法、系统及移动终端

Also Published As

Publication number Publication date
CN103136100A (zh) 2013-06-05
HK1181526A1 (zh) 2013-11-08

Similar Documents

Publication Publication Date Title
CN103136100B (zh) 一种Android测试的方法和系统
CN111708539B (zh) 一种应用程序代码转换方法、装置、电子设备和存储介质
US20160357519A1 (en) Natural Language Engine for Coding and Debugging
US8434062B2 (en) Enhancing source code debugging and readability using visual symbols
EP3959599A1 (en) Code completion for languages with hierarchical structures
US20120131556A1 (en) Xpath-based selection assistance of gui elements during manual test script authoring for xml-based applications
EP3008585B1 (en) Automatic source code generation
US8762963B2 (en) Translation of programming code
CN112540763A (zh) 前端页面生成方法、装置、平台设备及存储介质
CN110928763A (zh) 测试方法、装置、存储介质及计算机设备
CN111324833A (zh) 页面展示方法、装置、电子设计及计算机可读介质
Bellucci et al. Automatic reverse engineering of interactive dynamic web applications to support adaptation across platforms
KR20150092880A (ko) 그래픽 사용자 인터페이스 개발의 가변 설정 기반 후설계 방법 및 장치
Ma et al. Aladdin: Automating release of deep-link APIs on Android
CN116028028A (zh) 请求函数生成方法、装置、设备及存储介质
CN104253790A (zh) 规范化页面流的方法和设备
US10606569B2 (en) Declarative configuration elements
CN112988578A (zh) 一种自动化测试方法和装置
Savic et al. Use case specification at different levels of abstraction
Urbieta et al. A web-based model-driven platform for web augmentation
El-Kaliouby et al. Native mobile applications UI code conversion
CN114356291A (zh) 基于配置文件生成表单的方法、装置、设备及介质
CN110737431A (zh) 软件开发方法、开发平台、终端设备及存储介质
Akbulut et al. Code generator framework for smart TV platforms
CN113220307B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1181526

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1181526

Country of ref document: HK