CN108427646A - 基于Appium的安卓App自动化测试框架构建方法和装置 - Google Patents

基于Appium的安卓App自动化测试框架构建方法和装置 Download PDF

Info

Publication number
CN108427646A
CN108427646A CN201810330566.9A CN201810330566A CN108427646A CN 108427646 A CN108427646 A CN 108427646A CN 201810330566 A CN201810330566 A CN 201810330566A CN 108427646 A CN108427646 A CN 108427646A
Authority
CN
China
Prior art keywords
appium
app
android
class
public method
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
Application number
CN201810330566.9A
Other languages
English (en)
Other versions
CN108427646B (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.)
China Travelsky Technology Co Ltd
Original Assignee
China Travelsky Technology Co 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 China Travelsky Technology Co Ltd filed Critical China Travelsky Technology Co Ltd
Priority to CN201810330566.9A priority Critical patent/CN108427646B/zh
Publication of CN108427646A publication Critical patent/CN108427646A/zh
Application granted granted Critical
Publication of CN108427646B publication Critical patent/CN108427646B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种基于Appium的安卓App自动化测试框架构建方法和装置。其中,该方法包括:封装App操作的公用方法,形成公用方法库,其中,公用方法包括元素获取方法,元素获取方法基于uiautomatorviewer,根据配置文件中配置的控件类型对当前安卓终端的xml布局文件进行解析和遍历,以获取待测App的页面元素并生成测试框架所需的页面元素管理类;构建Maven管理的、基于Spring+TestNG的模版工程;其中,由公用方法库和模版工程构成基于Appium的安卓App自动化测试框架。通过本发明,解决了基于Appium的自动化测试效率低的问题,提高了基于Appium的自动化测试效率。

Description

基于Appium的安卓App自动化测试框架构建方法和装置
技术领域
本发明涉及自动化测试领域,具体而言,涉及一种基于Appium的安卓App自动化测试框架构建方法和装置。
背景技术
术语解释
uiautomatorviewer:Android SDK自带的元素获取工具(可获取id、name);
@componet、@Autowired:Spring的注解,用于自动扫描生成以及装配Java对象;
POI:对Microsoft Office格式档案进行读和写的API;
activity:Android系统中的四大组件之一,可以用于显示View。
对于安卓App开发者而言,安卓App的各种Bug、终端测试不同于常见的Web应用:安卓App中的Bug往往隐藏得很深,甚至有时候等到用户使用才显现出来。对于测试环节来说,既需要保证足够多的测试场景,同时又需要一遍又一遍的测试每一个版本。那么就会增加更多的开发成本,而且测试者不断的做着重复的工作,效率可想而知。
自动化测试正好能够解决这些问题,在众多自动化测试工具中,Appium作为一款开源自动化测试工具,可以非常快捷的为安卓平台创建功能自动化测试用例,但是Appium只是解决了执行层面的问题,在页面元素与测试数据的管理、脚本规范、用例执行等方面没有涉及,造成自动化测试元素获取工作繁琐费时、脚本编写技术难度大、测试用例稳定性低等一系列问题,导致自动化测试实施效率低下。
发明内容
本发明提供了一种基于Appium的安卓App自动化测试框架构建方法和装置,以至少解决相关技术中基于Appium的自动化测试效率低的问题。
第一方面,本发明实施例提供了一种基于Appium的安卓App自动化测试框架构建方法,包括:
封装App操作的公用方法,形成公用方法库,其中,所述公用方法包括所述元素获取方法,所述元素获取方法基于uiautomatorviewer,根据配置文件中配置的控件类型对当前安卓终端的xml布局文件进行解析和遍历,以获取待测App的页面元素并生成测试框架所需的页面元素管理类;
构建Maven管理的、基于Spring+TestNG的模版工程;
其中,由所述公用方法库和所述模版工程构成所述基于Appium的安卓App自动化测试框架。
第二方面,本发明实施例提供了一种基于Appium的安卓App自动化测试框架构建装置,包括:
封装模块,用于封装App操作的公用方法,形成公用方法库,其中,所述公用方法包括所述元素获取方法,所述元素获取方法基于uiautomatorviewer,根据配置文件中配置的控件类型对当前安卓终端的xml布局文件进行解析和遍历,以获取待测App的页面元素并生成测试框架所需的页面元素管理类;
构建模块,用于构建Maven管理的、基于Spring+TestNG的模版工程;
其中,由所述公用方法库和所述模版工程构成所述基于Appium的安卓App自动化测试框架。
第三方面,本发明实施例提供了一种基于Appium的安卓App自动化测试框架构建设备,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现第一方面所述的方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,当所述计算机程序指令被处理器执行时实现第一方面所述的方法。
通过本发明实施例提供的基于Appium的安卓App自动化测试框架构建方法和装置,采用封装App操作的公用方法,形成公用方法库,其中,公用方法包括元素获取方法,元素获取方法基于uiautomatorviewer,根据配置文件中配置的控件类型对当前安卓终端的xml布局文件进行解析和遍历,以获取待测App的页面元素并生成测试框架所需的页面元素管理类;构建Maven管理的、基于Spring+TestNG的模版工程;其中,由公用方法库和模版工程构成基于Appium的安卓App自动化测试框架。通过本发明实施例,解决了基于Appium的自动化测试效率低的问题,提高了基于Appium的自动化测试效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的基于Appium的安卓App自动化测试框架构建方法的流程图;
图2是根据本发明实施例的基于Appium的安卓App自动化测试框架的结构示意图;
图3是根据本发明实施例的基于Appium的安卓App自动化测试框架的使用方法的流程图;
图4是根据本发明实施例的元素查找方法的流程图;
图5是根据本发明实施例的基于Appium的安卓App自动化测试框架构建装置的结构示意图;
图6是根据本发明实施例的基于Appium的安卓App自动化测试框架构建设备的硬件结构示意图。
具体实施方式
下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅用于解释本发明,并不用于限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本发明实施例针对Appium在页面元素与测试数据的管理、脚本规范、用例执行等方面没有涉及,造成自动化测试元素获取工作繁琐费时、脚本编写技术难度较大、测试用例稳定性低,导致自动化测试实施效率低下等问题,提供一种基于Appium的安卓App自动化测试框架构建方法,充分考虑移动应用需求快速变化的情况,结合Appium支持安卓平台,支持跨App测试及全部App类型测试,支持多种开发语言等特质,通过快速的元素获取方法、APP操作API、基于Maven+TestNG+Spring的模板工程,构建适用于安卓应用的自动化测试框架,利用本发明构建的安卓应用自动化测试,能有效提高自动化测试实施的效率。
在本实施例中提供了一种基于Appium的安卓App自动化测试框架构建方法,图1是根据本发明实施例的基于Appium的安卓App自动化测试框架构建方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,封装App操作的公用方法,形成公用方法库,其中,公用方法包括元素获取方法,元素获取方法基于uiautomatorviewer,根据配置文件中配置的控件类型对当前安卓终端的xml布局文件进行解析和遍历,以获取待测App的页面元素并生成测试框架所需的页面元素管理类;
步骤S102,构建Maven管理的、基于Spring+TestNG的模版工程;
其中,由公用方法库和模版工程构成基于Appium的安卓App自动化测试框架。
通过上述步骤构成的自动化测试框架,用于辅助人工生成测试脚本,以结合Appium执行测试脚本完成自动化测试。由于采用了步骤S101中的元素获取方法、封装构建了公用方法库,并且构建了Maven管理的、基于Spring+TestNG的模版工程,降低了脚本编写的技术难度,简化了元素获取工作,也能够提升测试用例运行的稳定性。
参考图2,本实施例构建的基于Appium的安卓App自动化测试框架主要包括下列三个基本组成部分:元素获取方法(uiautomatorviewerPro)、APP操作API的公用方法库(SmartApm-API)、模板工程(SmartApm-Template)。
元素获取方法:基于uiautomatorviewer,根据配置文件中配置的的控件类型对当前终端xml布局文件进行解析和遍历,实现对App页面元素(id,name,xpath)一键获取并自动生成框架所需的管理类(Java代码),该元素获取方法(uiautomatorviewerPro)解决了以前繁杂费时的元素获取问题;
APP操作API的公用方法库:提供安卓基本控件的使用和手机的滑动、按键等基本操作,增加了元素查找与识别、用例失败自动重试及截屏等功能,同时提供完善的APP操作API文档,无需关心Appium API的使用,即可轻松完成业务逻辑脚本代码的编写;
模板工程:在本实施例中提供的是Maven管理的,基于Spring+TestNG的,以SkyOne(中国航信的航班控制系统)项目的登陆功能为例的模板工程,使用Spring注入机制、预设数据驱动,从而降低自动化测试入门门槛和学习成本。
上述方案通过快速的元素获取方法、APP操作API、基于Maven+TestNG+Spring的模板工程,构建基于Appium的安卓应用自动化测试基本框架,一旦有安卓应用的需求发生变动时,能够通快速的修改相应的页面元素、以及自动化脚本。
上述的元素查找与识别方法,通过id、name、xpath依次对元素进行识别,同时增加元素查找失败重试机制,避免由于网络原因页面加载较慢而导致元素查找失败,从而导致用例执行失败,有效的提升了自动化用例执行的成功率和稳定性。
上述的Spring注入机制,所有的类通过@componet注解的方式以便Spring扫描生成对象,用例执行层的基类中通过@Autowired注解声明注入元素管理类;用例执行脚本类中通过@Autowired注解声明注入的业务逻辑类,以便调用。
上述的预设数据驱动,测试数据统一存放在excel表中,利用POI构建数据驱动,不同的测试用例按sheet存放;sheet中的第一行默认为表头,可逐行获取数据,也可一次性获取sheet中的全部数据。
通过本实施例,能够降低脚本编写的技术难度,简化元素获取工作,提升测试用例运行稳定性。利用本实施例构建的安卓应用自动化测试,能有效提高自动化测试实施的效率,从而快速简洁地完成App自动化测试。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
下面将对上述实施例构建的基于Appium的安卓App自动化测试框架及其使用方法进行描述和说明。
根据本实施构建的基于Appium的安卓App自动化测试框架主要依靠:元素获取方法(uiautomatorviewerPro)、APP操作API的公共方法库(SmartApm-API)以及模板工程(SmartApm-Template)发挥作用。
其中,元素获取方法:使用二次封装后的uiautomatorviewerPro工具进行对安卓环境下APP页面元素一键获取,可以获取到元素的id、name、xpath等属性,并自动生成元素管理类的文件;元素根据activity的不同分类存放,进行元素集中管理,同时引入依赖注入,在页面元素产生大规模变化时只需要再次使用uiautomatorviewerPro工具进行更新,无需手工单独更改,保证了测试的高效性及迭代性,解决了以前繁杂费时的元素获取问题;
APP操作API的公用方法库:通过封装公用方法包括元素识别、元素获取、元素点击、文本输入、元素与屏幕长按操作、屏幕轻触、屏幕滑动与屏幕截取等安卓功能基本操作,另外增加了元素查找与识别、用例失败截屏等功能形成单独的公用方法库,同时提供完善的APP操作API文档,用户无需关心Appium API的使用,即可轻松完成业务逻辑脚本代码的编写;
模板工程:提供Maven管理的,基于Spring+TestNG的,以SkyOne项目的登陆功能为例的模版工程。使用上述元素获取工具获取元素,将生成管理类的Page.java文件存放进对应的类中并加入依赖注入,然后利用框架API实现SkyOne项目登陆功能的业务脚本逻辑编写并存放在Bll包中,在Test包中编写测试用例并通过数据驱动读取data.xls中的测试数据,测试数据统一存放在excel表中,利用POI构建数据驱动,使用TestNG管理用例执行,形成一个完整的Android自动化模版工程,从而降低自动化测试入门门槛和学习成本。
参考图3,基于Appium的安卓App自动化测试框架的使用方法包括如下步骤:
步骤1,元素获取与管理;
步骤2,业务封装;
步骤3,测试用例编写。
步骤1使用元素获取方法实现对安卓环境下APP页面元素一键获取,可以获取到元素的id、name、xpath等属性,并自动生成元素管理类的文件,导入activities包中,实现页面元素一键入库。
元素获取方法是指uiautomatorviewerPro方法,使用遍历节点方式获取元素,具体实施方式如下:对uiautomatorviewerPro工具配置文件config.txt进行配置,写入所测工程名、存放的activities包名以及需要获取的元素类型,如EditText、TextView、Button等。打开APP中待测activity,执行uiautomatorviewerPro工具,工具会自动读取配置文件config.txt,获取待测activity中的所需元素并生成一个java文件,将元素的id、name、xpath等属性写入该元素管理类,存放进activities包中,生成一个Page类,一个Page类对应一个activity,在BaseElement类中定义页面元素的id、name、xpath等元素,所有生成的元素类需要继承自BaseElement类,该方法无需多次进行元素属性的定义,简化了操作复杂度;最后通过加入@componet注解的方式以便Spring扫描生成对象;供步骤2业务封装调用。
步骤2调用公用方法库中的APP操作API去实现待测业务功能点,供用例编写时进行调用。
APP操作API是指SmartApm-API,该API将使用安卓应用所需要用到的操作方法抽取为接口,供用户使用,用户无需关心具体实现方法,可显著降低技术难度。
SmartApm-API存放于action包中,并在driver包中进行API内容实现;使用API需要传入步骤1中获取到的元素类,元素类在步骤1中加入@componet注解,然后在TestBase类中进行声明,以供API使用时进行调用。具体业务实现的实施方式为:使用searchElementAPI进行待测元素查找,查找次序依次为id、name、xpath,参见图4,查找过程以日志形式记录。在API实现中重写TestNG的onTestFailure监听方法,若查找元素失败,会进行失败截图及自动重试,避免因为网络等环境问题引起的无法找到元素等问题,找到元素后,即可使用相应API对元素进行点击、赋值、拖动等操作,同时加入Java本身的异常机制进行异常捕捉,实现待测系统的业务逻辑,完成业务封装,每一个业务功能点生成一个业务类,同样以@componet注解的方式以便Spring扫描生成对象,供步骤3测试用例编写进行调用。
步骤3根据SmartApm-Template为模板进行测试用例编写:调用步骤2封装的业务功能点方法,完成特定的测试流程。
在本实施例中的SmartApm-Template是指以SkyOne项目的登陆功能为例的模版工程,根据模板编写测试用例可降低自动化测试入门门槛和学习成本。
测试用例即使用数据驱动获取待测数据,完成业务功能点的组装,加入测试数据及异常处理机制,实现模拟手工进行测试操作的方法类。测试数据在data.xls文件中进行描述,文件分为多个sheet,每个sheet供一条测试用例使用,使用POI获取sheet中的数据,可选取全部数据或单行数据,在编写用例时通过pojo包中的get方法获取所需数据,整合多个业务逻辑,进行测试流程重现,最终完成测试用例的编写。
在本实施例中还提供了一种基于Appium的安卓App自动化测试框架构建装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”或者“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的基于Appium的安卓App自动化测试框架构建装置的结构框图,如图5所示,该装置包括:
封装模块51,用于封装App操作的公用方法,形成公用方法库,其中,公用方法包括元素获取方法,元素获取方法基于uiautomatorviewer,根据配置文件中配置的控件类型对当前安卓终端的xml布局文件进行解析和遍历,以获取待测App的页面元素并生成测试框架所需的页面元素管理类;
构建模块52,用于构建Maven管理的、基于Spring+TestNG的模版工程;
其中,由公用方法库和模版工程构成基于Appium的安卓App自动化测试框架。
可选地,公用方法还包括:安卓基本控件的使用、安卓终端的基本操作。
可选地,公用方法还包括以下至少之一:元素查找与识别、用例失败自动重试及截屏。
可选地,模版工程使用Spring注入机制和预设数据驱动;
其中,Spring注入机制是指:所有的类通过@componet注解的方式以便Spring扫描生成对象,用例执行层的基类中通过@Autowired注解声明注入元素的管理类,用例执行脚本类中通过@Autowired注解声明注入的业务逻辑类,以便调用;
其中,预设数据驱动是指:测试数据统一存放在excel表中,利用POI构建数据驱动,不同的测试用例按sheet存放。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。
另外,结合图1描述的本发明实施例的基于Appium的安卓App自动化测试框架构建方法可以由基于Appium的安卓App自动化测试框架构建设备来实现。图6示出了本发明实施例提供的基于Appium的安卓App自动化测试框架构建设备的硬件结构示意图。
基于Appium的安卓App自动化测试框架构建设备可以包括处理器61以及存储有计算机程序指令的存储器62。
具体地,上述处理器61可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器62可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器62可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器62可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器62可在数据处理装置的内部或外部。在特定实施例中,存储器62是非易失性固态存储器。在特定实施例中,存储器62包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器61通过读取并执行存储器62中存储的计算机程序指令,以实现上述实施例中的任意一种基于Appium的安卓App自动化测试框架构建方法。
在一个示例中,基于Appium的安卓App自动化测试框架构建设备还可包括通信接口63和总线60。其中,如图6所示,处理器61、存储器62、通信接口63通过总线60连接并完成相互间的通信。
通信接口63,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线60包括硬件、软件或两者,将基于Appium的安卓App自动化测试框架构建设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线60可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
该基于Appium的安卓App自动化测试框架构建设备可以基于获取到的数据,执行本发明实施例中的基于Appium的安卓App自动化测试框架构建方法,从而实现结合图1描述的基于Appium的安卓App自动化测试框架构建方法。
另外,结合上述实施例中的基于Appium的安卓App自动化测试框架构建方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种基于Appium的安卓App自动化测试框架构建方法。
综上所述,本发明实施例充分考虑App应用需求快速变化的情况,结合Appium工具在执行层面的支持安卓平台,支持跨App测试及全部App类型测试,支持多种开发语言等特质,通过对对元素的快速获取与管理、易用的数据驱动、Android底层操作方法的封装,构建适用于安卓App自动化测试的框架。通过对快速的元素获取工具、APP操作API、基于Maven+TestNG+Spring三个模板有效整合,能降低脚本编写的技术难度,简化元素获取工作,提升测试用例运行稳定性。利用本发明构建的安卓应用自动化测试,能有效提高自动化测试实施的效率,从而快速简洁地完成App自动化测试。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于Appium的安卓App自动化测试框架构建方法,其特征在于,包括:
封装App操作的公用方法,形成公用方法库,其中,所述公用方法包括所述元素获取方法,所述元素获取方法基于uiautomatorviewer,根据配置文件中配置的控件类型对当前安卓终端的xml布局文件进行解析和遍历,以获取待测App的页面元素并生成测试框架所需的页面元素管理类;
构建Maven管理的、基于Spring+TestNG的模版工程;
其中,由所述公用方法库和所述模版工程构成所述基于Appium的安卓App自动化测试框架。
2.根据权利要求1所述的方法,其特征在于,所述公用方法还包括:安卓基本控件的使用、安卓终端的基本操作。
3.根据权利要求1所述的方法,其特征在于,所述公用方法还包括以下至少之一:元素查找与识别、用例失败自动重试及截屏。
4.根据权利要求1所述的方法,其特征在于,所述模版工程使用Spring注入机制和预设数据驱动;
其中,所述Spring注入机制是指:所有的类通过@componet注解的方式以便Spring扫描生成对象,用例执行层的基类中通过@Autowired注解声明注入元素的管理类,用例执行脚本类中通过@Autowired注解声明注入的业务逻辑类,以便调用;
其中,所述预设数据驱动是指:测试数据统一存放在excel表中,利用POI构建数据驱动,不同的测试用例按sheet存放。
5.一种基于Appium的安卓App自动化测试框架构建装置,其特征在于,包括:
封装模块,用于封装App操作的公用方法,形成公用方法库,其中,所述公用方法包括所述元素获取方法,所述元素获取方法基于uiautomatorviewer,根据配置文件中配置的控件类型对当前安卓终端的xml布局文件进行解析和遍历,以获取待测App的页面元素并生成测试框架所需的页面元素管理类;
构建模块,用于构建Maven管理的、基于Spring+TestNG的模版工程;
其中,由所述公用方法库和所述模版工程构成所述基于Appium的安卓App自动化测试框架。
6.根据权利要求5所述的装置,其特征在于,所述公用方法还包括:安卓基本控件的使用、安卓终端的基本操作。
7.根据权利要求5所述的装置,其特征在于,所述公用方法还包括以下至少之一:元素查找与识别、用例失败自动重试及截屏。
8.根据权利要求5所述的装置,其特征在于,所述模版工程使用Spring注入机制和预设数据驱动;
其中,所述Spring注入机制是指:所有的类通过@componet注解的方式以便Spring扫描生成对象,用例执行层的基类中通过@Autowired注解声明注入元素的管理类,用例执行脚本类中通过@Autowired注解声明注入的业务逻辑类,以便调用;
其中,所述预设数据驱动是指:测试数据统一存放在excel表中,利用POI构建数据驱动,不同的测试用例按sheet存放。
9.一种基于Appium的安卓App自动化测试框架构建设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1-4中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1-4中任一项所述的方法。
CN201810330566.9A 2018-04-13 2018-04-13 基于Appium的安卓App自动化测试框架构建方法和装置 Active CN108427646B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810330566.9A CN108427646B (zh) 2018-04-13 2018-04-13 基于Appium的安卓App自动化测试框架构建方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810330566.9A CN108427646B (zh) 2018-04-13 2018-04-13 基于Appium的安卓App自动化测试框架构建方法和装置

Publications (2)

Publication Number Publication Date
CN108427646A true CN108427646A (zh) 2018-08-21
CN108427646B CN108427646B (zh) 2021-11-16

Family

ID=63160904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810330566.9A Active CN108427646B (zh) 2018-04-13 2018-04-13 基于Appium的安卓App自动化测试框架构建方法和装置

Country Status (1)

Country Link
CN (1) CN108427646B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582534A (zh) * 2018-11-01 2019-04-05 阿里巴巴集团控股有限公司 系统的操作入口的确定方法、装置和服务器
CN109783389A (zh) * 2019-01-22 2019-05-21 未来电视有限公司 元素控件自动测试方法、装置及电子设备
CN109885493A (zh) * 2019-02-18 2019-06-14 南京邮电大学 一种基于Android平台和Java反射的自动化混合框架
CN109960655A (zh) * 2019-03-21 2019-07-02 杭州迪普科技股份有限公司 web测试框架的创建方法、装置、电子设备
CN110768860A (zh) * 2019-09-18 2020-02-07 平安科技(深圳)有限公司 一种测试方法、测试装置及电子设备
CN110764994A (zh) * 2019-09-04 2020-02-07 深圳壹账通智能科技有限公司 页面元素封装方法、装置、电子设备及存储介质
CN111124913A (zh) * 2019-12-20 2020-05-08 广州唯品会研究院有限公司 数据模板的生成方法、数据模板的生成装置及存储介质
CN111176971A (zh) * 2018-11-11 2020-05-19 无锡雅座在线科技股份有限公司 一种基于ui自动化的代码质量测试系统及方法
CN111209204A (zh) * 2020-01-06 2020-05-29 杭州涂鸦信息技术有限公司 一种基于JSON的web自动化测试方法及其系统和装置
CN111913889A (zh) * 2020-09-11 2020-11-10 中移(杭州)信息技术有限公司 一种测试系统搭建方法及测试系统
CN111930629A (zh) * 2020-08-14 2020-11-13 工银科技有限公司 页面测试方法、装置、电子设备及存储介质
CN112035157A (zh) * 2020-08-21 2020-12-04 山东亚华电子股份有限公司 一种安卓与前端页面通信的方法、设备及存储介质
CN112463613A (zh) * 2020-12-01 2021-03-09 广州朗国电子科技有限公司 一种基于adb的测试驱动系统、方法及存储介质
CN114172835A (zh) * 2021-11-24 2022-03-11 重庆长安汽车股份有限公司 一种蓝牙数字钥匙的自动化测试方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140002815A (ko) * 2012-06-24 2014-01-09 김현수 안드로이드 애플리케이션 지유아이 테스트 자동화 방법
CN104809056A (zh) * 2014-01-27 2015-07-29 阿里巴巴集团控股有限公司 一种接口测试代码的生成方法和装置
CN106598853A (zh) * 2016-12-05 2017-04-26 广州唯品会信息科技有限公司 自动生成测试项目方法及系统
CN106776344A (zh) * 2017-01-16 2017-05-31 上海聚宝网络科技股份有限公司 一种基于appium的智能快递柜的自动化测试方法
CN107451060A (zh) * 2017-08-01 2017-12-08 安徽善金科技股份有限公司 一种跨移动端自动化测试框架系统
CN107678963A (zh) * 2017-09-27 2018-02-09 国云科技股份有限公司 一种基于java的接口自动化测试方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140002815A (ko) * 2012-06-24 2014-01-09 김현수 안드로이드 애플리케이션 지유아이 테스트 자동화 방법
CN104809056A (zh) * 2014-01-27 2015-07-29 阿里巴巴集团控股有限公司 一种接口测试代码的生成方法和装置
CN106598853A (zh) * 2016-12-05 2017-04-26 广州唯品会信息科技有限公司 自动生成测试项目方法及系统
CN106776344A (zh) * 2017-01-16 2017-05-31 上海聚宝网络科技股份有限公司 一种基于appium的智能快递柜的自动化测试方法
CN107451060A (zh) * 2017-08-01 2017-12-08 安徽善金科技股份有限公司 一种跨移动端自动化测试框架系统
CN107678963A (zh) * 2017-09-27 2018-02-09 国云科技股份有限公司 一种基于java的接口自动化测试方法

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109582534A (zh) * 2018-11-01 2019-04-05 阿里巴巴集团控股有限公司 系统的操作入口的确定方法、装置和服务器
CN111176971A (zh) * 2018-11-11 2020-05-19 无锡雅座在线科技股份有限公司 一种基于ui自动化的代码质量测试系统及方法
CN109783389A (zh) * 2019-01-22 2019-05-21 未来电视有限公司 元素控件自动测试方法、装置及电子设备
CN109885493A (zh) * 2019-02-18 2019-06-14 南京邮电大学 一种基于Android平台和Java反射的自动化混合框架
CN109960655A (zh) * 2019-03-21 2019-07-02 杭州迪普科技股份有限公司 web测试框架的创建方法、装置、电子设备
CN110764994A (zh) * 2019-09-04 2020-02-07 深圳壹账通智能科技有限公司 页面元素封装方法、装置、电子设备及存储介质
CN110768860B (zh) * 2019-09-18 2022-03-15 平安科技(深圳)有限公司 一种测试方法、测试装置及电子设备
CN110768860A (zh) * 2019-09-18 2020-02-07 平安科技(深圳)有限公司 一种测试方法、测试装置及电子设备
CN111124913A (zh) * 2019-12-20 2020-05-08 广州唯品会研究院有限公司 数据模板的生成方法、数据模板的生成装置及存储介质
CN111124913B (zh) * 2019-12-20 2023-08-18 广州品唯软件有限公司 数据模板的生成方法、数据模板的生成装置及存储介质
CN111209204A (zh) * 2020-01-06 2020-05-29 杭州涂鸦信息技术有限公司 一种基于JSON的web自动化测试方法及其系统和装置
CN111209204B (zh) * 2020-01-06 2023-09-22 杭州涂鸦信息技术有限公司 一种基于JSON的web自动化测试方法及其系统和装置
CN111930629A (zh) * 2020-08-14 2020-11-13 工银科技有限公司 页面测试方法、装置、电子设备及存储介质
CN112035157A (zh) * 2020-08-21 2020-12-04 山东亚华电子股份有限公司 一种安卓与前端页面通信的方法、设备及存储介质
CN112035157B (zh) * 2020-08-21 2023-10-20 山东亚华电子股份有限公司 一种安卓与前端页面通信的方法、设备及存储介质
CN111913889A (zh) * 2020-09-11 2020-11-10 中移(杭州)信息技术有限公司 一种测试系统搭建方法及测试系统
CN112463613A (zh) * 2020-12-01 2021-03-09 广州朗国电子科技有限公司 一种基于adb的测试驱动系统、方法及存储介质
CN112463613B (zh) * 2020-12-01 2023-09-15 广州朗国电子科技股份有限公司 一种基于adb的测试驱动系统、方法及存储介质
CN114172835A (zh) * 2021-11-24 2022-03-11 重庆长安汽车股份有限公司 一种蓝牙数字钥匙的自动化测试方法

Also Published As

Publication number Publication date
CN108427646B (zh) 2021-11-16

Similar Documents

Publication Publication Date Title
CN108427646A (zh) 基于Appium的安卓App自动化测试框架构建方法和装置
CN102160037B (zh) 只需设计一次就能在任何平台应用的移动应用开发框架
CN106649103B (zh) 一种安卓应用程序自动化黑盒测试的方法及系统
CN105912473B (zh) 基于bdd的移动app自动测试平台和测试方法
CN110221969A (zh) 一种页面功能测试方法及相关装置
CN103154905B (zh) 用于组合应用的自动化分析的装置和方法
CN100512274C (zh) 能够容易控制协议消息的通信系统的模拟装置与模拟方法
CN108132879A (zh) 自动化软件测试方法、平台、终端及介质
CN108845940A (zh) 一种企业级信息系统自动化功能测试方法和系统
CN106648556A (zh) 前后端集成开发测试的方法及装置
CN107451060A (zh) 一种跨移动端自动化测试框架系统
CN113268243B (zh) 内存预测方法及装置、存储介质、电子设备
CN111399828A (zh) 一种基于模型驱动的逻辑设备建模方法及终端
CN110990274A (zh) 一种生成测试案例的数据处理方法、装置及系统
CN107644075A (zh) 收集页面信息的方法和装置
CN109408103A (zh) 配置文件的设置方法、装置、设备及介质
US7712073B1 (en) Software development artifact creation tool
CN106528429A (zh) 一种ui界面测试方法及装置
CN115794641A (zh) 基于业务流程的造数方法、装置、设备及存储介质
CN111506305B (zh) 工具包生成方法、装置、计算机设备及可读存储介质
CN107656869A (zh) 一种基于java构建专属自动化测试报告的方法
CN111142861A (zh) 结构化综控系统集成方法及装置
CN108845796A (zh) 一种基于ReactNative实现的学情分析方法
US9996799B2 (en) Migrating a legacy system by inferring context-sensitive business rules from legacy source code
CN114356430A (zh) 一种基于airflow调度系统的DAG依赖配置工具

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