CN104572464B - 一种Android平台的自动化测试状态保存方法及装置 - Google Patents

一种Android平台的自动化测试状态保存方法及装置 Download PDF

Info

Publication number
CN104572464B
CN104572464B CN201410857275.7A CN201410857275A CN104572464B CN 104572464 B CN104572464 B CN 104572464B CN 201410857275 A CN201410857275 A CN 201410857275A CN 104572464 B CN104572464 B CN 104572464B
Authority
CN
China
Prior art keywords
application program
tested
tested application
script
android device
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.)
Expired - Fee Related
Application number
CN201410857275.7A
Other languages
English (en)
Other versions
CN104572464A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201410857275.7A priority Critical patent/CN104572464B/zh
Publication of CN104572464A publication Critical patent/CN104572464A/zh
Application granted granted Critical
Publication of CN104572464B publication Critical patent/CN104572464B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种Android平台的自动化测试状态保存方法及装置,其中的方法可包括:当接收到安卓设备开始录制脚本命令时,开始录制脚本;获取所述安卓设备当前前台运行的第一被测应用程序,保存所述第一被测应用程序的初始化状态文件;当判断出所述安卓设备当前前台运行的应用程序跳转到第二被测应用程序时,获取并保存所述第二被测应用程序的初始化状态文件;其中所述第二被测应用程序在所述脚本录制开始后在所述安卓设备中首次跳转并运行。采用本发明可以实现安卓设备执行自动化脚本时恢复相应被测应用程序录制脚本时的初始化状态,避免自动化测试过程中被测应用程序因录制脚本和执行脚本时初始化状态不一致而导致测试致失败的问题。

Description

一种Android平台的自动化测试状态保存方法及装置
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种Android平台的自动化测试状态保存方法及装置。
背景技术
现有技术中,安卓应用程序自动化测试都是通过执行脚本来进行自动化测试的,脚本的形成主要是两种方式:一种是通过工程师来手写脚本,这种需要消耗测试工程师大量的宝贵时间,很难达到自动化测试高效性的目的;另一种是录制自动形成脚本,也是现在比较通用的方法,但是在实际自动化测试中,安卓测试设备执行录制的脚本进行回放测试时,由于待测安卓应用程序的相关初始状态不一致,而导致测试无法顺利进行,严重的影响了自动化测试的效率和准确率。例如,录制脚本中测试路径为:设置蓝牙开关,点击打开蓝牙,进行匹配测试,此处录制的蓝牙开关初始状态是关闭的,如果脚本回放执行时初始状态不一致即为打开时,则第一个动作就变成关闭蓝牙,后续的动作就无法正常执行,导致测试失败。针对该问题目前常用的处理手段是在执行脚本测试之前,手动把相应的初始状态恢复到录制的初始状态,这种方式不但效率低,消耗时间长,而且难免会存在遗漏,从而导致测试的准确性和稳定性无法得到保证。
发明内容
本发明实施例所要解决的技术问题在于,提供一种Android平台的自动化测试状态保存方法及装置,可以实现安卓设备执行自动化脚本时恢复相应被测应用程序录制脚本时的初始化状态,避免自动化测试过程中被测应用程序因录制脚本和执行脚本时初始化状态不一致而导致测试致失败的问题。
第一方面,本发明实施例提供了一种Android平台的自动化测试状态保存方法,所述方法包括:
当接收到安卓设备开始录制脚本命令时,开始录制脚本;
获取所述安卓设备当前前台运行的第一被测应用程序,保存所述第一被测应用程序的初始化状态文件,所述初始化状态文件用于在所述脚本执行过程中使用所述初始化状态文件对所述对应的被测应用程序进行初始化测试状态设置;
当判断出所述安卓设备当前前台运行的应用程序跳转到第二被测应用程序时,获取并保存所述第二被测应用程序的初始化状态文件;其中所述第二被测应用程序在所述脚本录制开始后在所述安卓设备中首次跳转并运行。
结合第一方面,在第一种可能的实现方式中,所述初始化状态文件包括被测应用程序的初始化状态数据和初始化应用数据。
结合第一方面,在第二种可能的实现方式中,所述获取所述安卓设备当前前台运行的第一被测应用程序,包括:
获取所述安卓设备后台正在运行的应用程序;
从所述后台正在运行的应用程序中判断并获取所述安卓设备中当前前台运行的第一被测应用程序。
结合第一方面,在第三种可能的实现方式中,所述保存所述第一被测应用程序的初始化状态文件,包括:
获取所述第一被测应用程序的初始化状态文件,并根据所述第一被测应用程序的属性参数提取与所述第一被测应用程序唯一对应的标识;
将所述初始化状态文件存储到所述安卓设备中预设的文件夹中;
建立测试对比列表,将所述第一被测应用程序对应的标识添加到所述测试对比列表中。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述当判断出所述安卓设备当前前台运行的应用程序跳转到第二被测应用程序时,获取并保存所述第二被测应用程序的初始化状态文件,包括:
当检测到所述安卓设备的操作指令时,判断当前前台运行的应用程序对应的标识在所述测试对比列表中是否存在;
若不存在,则判断出所述安卓设备跳转到所述脚本录制开始后首次跳转并运行的第二被测应用程序,将所述第二被测应用程序对应的标识添加到所述测试对比列表中;所述第二被测应用程序对应的标识为根据所述第二被测应用程序的属性参数提取的与所述第二被测应用程序唯一对应的标识;
获取所述第二被测应用程序的初始化状态文件;
将所述初始化状态文件存储到所述安卓设备中预设的文件夹中。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,所述操作指令包括用于指示进行跳转操作的点击指令、长按指令、滑动指令或敲击指令。
第二方面,本发明实施例提供了一种Android平台的自动化测试状态保存装置,所述装置包括:
脚本录制模块,用于当接收到安卓设备开始录制脚本命令时,开始录制脚本;
第一状态保存模块,用于获取所述安卓设备当前前台运行的第一被测应用程序,保存所述第一被测应用程序的初始化状态文件,所述初始化状态文件用于在所述脚本执行过程中使用所述初始化状态文件对所述对应的被测应用程序进行初始化测试状态设置;
第二状态保存模块,用于当判断出所述安卓设备当前前台运行的应用程序跳转到第二被测应用程序时,获取并保存所述第二被测应用程序的初始化状态文件;其中所述第二被测应用程序在所述脚本录制开始后在所述安卓设备中首次跳转并运行。
结合第二方面,在第一种可能的实现方式中,所述初始化状态文件包括被测应用程序的初始化状态数据和初始化应用数据。
结合第二方面,在第二种可能的实现方式中,所述第一状态保存模块,包括:
第一状态获取单元,用于获取所述安卓设备后台正在运行的应用程序;
第一状态判断单元,用于从所述后台正在运行的应用程序中判断并获取所述安卓设备中当前前台运行的第一被测应用程序。
结合第二方面,在第三种可能的实现方式中,所述第一状态保存模块,包括:
第一获取单元,用于获取所述第一被测应用程序的初始化状态文件,并根据所述第一被测应用程序的属性参数提取与所述第一被测应用程序唯一对应的标识;
第一状态存储单元,用于将所述初始化状态文件存储到所述安卓设备中预设的文件夹中;
列表建立单元,用于建立测试对比列表,将所述第一被测应用程序对应的标识添加到所述测试对比列表中。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述第二状态保存模块包括:
标识对比单元,用于当检测到所述安卓设备的操作指令时,判断当前前台运行的应用程序对应的标识在所述测试对比列表中是否存在;
第二状态判断单元,用于若当前前台运行的应用程序对应的标识在所述测试对比列表中不存在,则判断出所述安卓设备跳转到所述脚本录制开始后首次跳转并运行的第二被测应用程序,将所述第二被测应用程序对应的标识添加到所述测试对比列表中;所述第二被测应用程序对应的标识为根据所述第二被测应用程序的属性参数提取的与所述第二被测应用程序唯一对应的标识;
第二获取单元,用于获取所述第二被测应用程序的初始化状态文件;
第二状态存储单元,用于将所述初始化状态文件存储到所述安卓设备中预设的文件夹中。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述操作指令包括用于指示进行跳转操作的点击指令、长按指令、滑动指令或敲击指令。
实施本发明实施例,具有如下有益效果:
本发明实施例,通过在安卓设备的被测应用程序脚本录制时,判断并记录保存其录制时的初始化状态文件,进而在脚本执行过程中使用初始化状态文件对相应的被测应用程序进行初始化测试状态设置,最终保证安卓设备执行自动化脚本时恢复相应被测应用程序录制脚本时的初始化状态,避免自动化测试过程中被测应用程序因录制脚本和执行脚本时初始化状态不一致而导致测试致失败的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中的一种Android平台的自动化测试状态保存方法的流程示意图;
图2是本发明实施例中的另一种Android平台的自动化测试状态保存方法的流程示意图;
图3是本发明实施例中的一种Android平台的自动化测试状态保存装置的结构示意图;
图4是本发明实施例中的另一种Android平台的自动化测试状态保存装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
需要说明的是,本发明实施例中的安卓设备包括但不限于安装有Android系统的移动电话、移动电脑、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、媒体播放器、智能电视、智能手表、智能眼镜、智能手环等用户设备。
图1是本发明实施例中的Android平台的自动化测试状态保存方法的流程示意图,下面将结合附图1对本发明实施例中的一种Android平台的自动化测试状态保存方法进行详细介绍,如图1所示,本发明实施例中的一种Android平台的自动化测试状态保存方法可以包括以下步骤S101-步骤S103。
步骤S101:当接收到安卓设备开始录制脚本命令时,开始录制脚本。
具体地,所述安卓设备包括使用安卓操作系统的所有设备,当接收到安卓设备开始录制脚本的命令时,则获取待测安卓设备的Root权限和读写系统权限,然后开始录制脚本,其中开始录制脚本的命令可以是测试服务器发出的也可以是测试安卓设备自身发出的,本发明不作具体限定。
步骤S102:获取所述安卓设备当前前台运行的第一被测应用程序,保存所述第一被测应用程序的初始化状态文件。
具体地,所述初始化状态文件用于在所述脚本执行过程中使用所述初始化状态文件对所述对应的被测应用程序进行初始化测试状态设置。优选地,通过Android本身自带的ActivityManager.getRunningTasks(1)方法,获取待测安卓设备当前前台运行的应用程序列表,其中位于列表第一个的即为前台正在运行的第一被测应用程序,可以理解的是此处的第一被测应用程序表示在脚本录制开始后第一次获取的第一个被测应用程序。根据获取的第一被测应用程序,保存获取的第一被测应用程序的初始化状态文件。具体地,初始化状态文件包括第一被测应用程序在开始录制脚本时的初始化状态数据和初始化应用数据,其中初始化状态数据主要包括第一应用程序开始录制脚本时所处的初始化测试环境,例如WIFI的开关、蓝牙的开关、模式开关等;初始化应用数据则主要包括第一被测应用程序的初始化的状态参数,例如应用程序的测试初始化状态的配置或应用参数等。具体实现中,可根据应用程序的名称获取对应的包名,从安卓设备系统data/data下面找到包名文件夹,查看文件下是否存在shared_prefs文件夹(应用程序状态设置等文件夹)和databases文件夹(应用程序数据库文件夹),若存在,则获取保存相应的文件。需要强调的是,初始化状态仅仅表示开始录制脚本时第一被测应用程序的初始化状态,与录制开始后且发生操作后的第一被测应用程序的状态无关。最终通过使用该初始化文件可以让第一被测应用程序在后续回放执行该录制脚本时,通过对比初始化状态文件的不一致信息,或通过修改不一致信息或通过不一致文件覆盖的方式进行第一被测应用程序的脚本测试的初始化状态的恢复,从而保证该录制的脚本测试能够顺利并正确地执行。
步骤S103:当判断出所述安卓设备当前前台运行的应用程序跳转到第二被测应用程序时,获取并保存所述第二被测应用程序的初始化状态文件。
具体地,所述第二被测应用程序在所述脚本录制开始后在所述安卓设备中首次跳转并运行,所述初始化状态文件用于在所述脚本执行过程中使用所述初始化状态文件对所述对应的被测应用程序进行初始化测试状态设置。在脚本录制的过程当中,每发生一次操作,都需要对前台当前正在运行的应用程序进行判断,判断该应用程序是否发生跳转,如果发生跳转则继续判断该应用程序是否是在脚本录制开始后首次跳转进入并运行的,若是,则判断该应用程序为第二被测应用程序,即需对该第二被测应用程序进行初始化文件的获取,具体地,初始化状态文件包括第二被测应用程序在录制脚本时的初始化状态数据和初始化应用数据。可以理解的是,当接收到安卓设备结束录制脚本命令时,则停止录制并生成录制脚本文件。需要强调的是,初始化状态仅仅表示开始录制脚本后第二被测应用程序未发生操作之前的初始化状态,与录制中且发生操作后的第二被测应用程序的状态无关。最终通过使用该初始化状态文件可以让第二被测应用程序在后续回放执行该录制脚本时,通过对比初始化状态文件的不一致信息,或通过修改不一致信息或通过不一致文件覆盖的方式进行第二被测应用程序的脚本测试的初始化状态的恢复,从而保证该录制的脚本测试能够顺利并正确地执行。需要说明的是,第二被测应用程序表示从第一被测应用程序跳转之后的所有首次进入并运行的被测应用程序,表示一类应用程序而非某一个具体的被测应用程序。
本发明实施例,通过在安卓设备的被测应用程序脚本录制时,判断并记录保存其录制时的初始化状态文件,进而在脚本执行过程中使用初始化状态文件对相应的被测应用程序进行初始化测试状态设置,最终保证安卓设备执行自动化脚本时恢复相应被测应用程序录制脚本时的初始化状态,避免自动化测试过程中被测应用程序因录制脚本和执行脚本时初始化状态不一致而导致测试致失败的问题。
图2是本发明实施例中的另一种Android平台的自动化测试状态保存方法的流程示意图,下面将结合附图2对本发明实施例中的另一种Android平台的自动化测试状态保存方法进行详细介绍,如图2所示,本发明实施例中的一种Android平台的自动化测试状态保存方法可以包括以下步骤S201-步骤S210。
S201:当接收到安卓设备开始录制脚本命令时,开始录制脚本。
具体地,所述安卓设备包括使用安卓操作系统的所有设备,当接收到安卓设备开始录制脚本的命令时,则获取待测安卓设备的Root权限和读写系统权限,然后开始录制脚本,其中开始录制脚本的命令可以是测试服务器发出的也可以是测试安卓设备自身发出的,本发明不作具体限定。
S202:获取所述安卓设备后台正在运行的应用程序。
具体地,获取待测安卓设备后台正在运行的应用程序,可以通过Android本身自带的ActivityManager.getRunningTasks(1)方法,获取待测安卓设备当前后台正在运行的应用程序列表,该列表包含了该待测安卓设备所有正在后台运行或者当前前台正在运行的应用程序的详细信息。
S203:从所述后台正在运行的应用程序中判断并获取所述安卓设备中当前前台运行的第一被测应用程序。
具体地,根据步骤S202中获取的后台正在运行的应用程序列表中的详细信息,判断得到其中位于列表中的第一个应用程序即为前台正在运行的第一被测应用程序,可以理解的是此处的第一被测应用程序表示在脚本录制开始后第一次获取的第一个被测应用程序。
S204:获取所述第一被测应用程序的初始化状态文件,并根据所述第一被测应用程序的属性参数提取与所述第一被测应用程序唯一对应的标识。
具体的,所述初始化状态文件用于在所述脚本执行过程中使用所述初始化状态文件对所述对应的被测应用程序进行初始化测试状态设置;所述初始化状态文件包括被测应用程序的初始化状态数据和初始化应用数据。根据步骤S203中获取的第一被测应用程序,保存获取的第一被测应用程序的初始化状态文件,具体地,初始化状态文件包括第一被测应用程序在开始录制脚本时的初始化状态数据和初始化应用数据,其中初始化状态数据主要包括第一应用程序开始录制脚本时所处的初始化测试环境,例如WIFI的开关、蓝牙的开关、模式开关等;初始化应用数据则主要包括第一被测应用程序的初始化的状态参数,例如应用程序的测试初始化状态的配置或应用参数等。具体实现中,可根据应用程序的名称获取对应的包名,从安卓设备系统data/data下面找到包名文件夹,查看文件下是否存在shared_prefs文件夹(应用程序状态设置等文件夹)和databases文件夹(应用程序数据库文件夹),若存在,则获取保存相应的文件。根据第一被测应用程序的属性参数提取与第一被测应用程序唯一对应的标识,其中应用程序的属性参数包括被测应用程序的名称、包名或者其他属性信息,可以根据所述属性信息提取用于唯一识别该应用程序的唯一对应标识,便于后续查找对比该应用程序是否是首次跳转进入。需要强调的是,初始化状态仅仅表示开始录制脚本时第一被测应用程序的初始化状态,与录制开始后且发生操作后的第一被测应用程序的状态无关。最终通过使用该初始化状态文件可以让第一被测应用程序在后续回放执行该录制脚本时,通过对比初始化状态文件的不一致信息,或通过修改不一致信息或通过不一致文件覆盖的方式进行第一被测应用程序的脚本测试的初始化状态的恢复,从而保证该录制的脚本测试能够顺利并正确地执行。
S205:将所述初始化状态文件存储到所述安卓设备中预设的文件夹中。
具体的,将步骤S204中获取的初始化状态文件,存储到被测安卓设备中的预设文件中,包括预设文件名和预设文件的获取路径,便于后续恢复初始状态时可以直接获取使用。具体实现中,例如,在步骤S204中获取的shared_prefs文件夹(应用程序状态设置等文件夹)和databases文件夹(应用程序数据库文件夹)之后,则在手机SD卡自定义InitialiseData文件夹里面新建以相应的应用程序名称或包名命名的文件夹,并把上述shared_prefs文件夹和databases文件夹拷贝至新建的InitialiseData文件夹中的相对应的新建文件夹中,以便于录制回放时进行准确查找。可以理解的是,也可以将初始化状态文件存储到测试服务器中进行统一管理和录制回放时统一分发使用。
S206:建立测试对比列表,将所述第一被测应用程序对应的标识添加到所述测试对比列表中。
具体地,建立测试对比列表,所述测试对比列表用于存放所述脚本录制开始后在所述安卓设备中首次跳转并运行的应用程序的标识,将步骤S204中获取的第一被测应用程序对应的标识添加到所述测试对比列表中进行存储。可以理解的是,测试对比列表可以录制开始之前进行预设建立,也可以是在录制开始之后且获取了第一被测应用程序的标识之后建立,本发明不做具体限定。可以理解的是,所述测试对比列表中初始状态下未存放任何被测应用程序的标识,通过只存放首次跳转进入并运行的应用程序的标识,以保证不会重复存储非首次进入并运行的应用程序的标识。
S207:当检测到所述安卓设备的操作指令时,判断当前前台运行的应用程序对应的标识在所述测试对比列表中是否存在。
具体地,所述操作指令包括用于指示进行跳转操作的点击指令、长按指令、滑动指令或敲击指令等。当检测到所述安卓设备的操作指令时,则需要判断当前前台运行的应用程序对应的标识在所述测试对比列表中是否存在,即在脚本录制的过程当中,每发生一次操作,都需要对前台当前正在运行的应用程序进行判断,判断该应用程序是否发生跳转。优选地,判断当前前台运行的应用程序的名称、包名或者其他唯一识别该应用程序的标识是否在步骤S206中的新建的对比列表中是否存在。
S208:若不存在,则判断出所述安卓设备跳转到所述脚本录制开始后首次跳转并运行的第二被测应用程序,将所述第二被测应用程序对应的标识添加到所述测试对比列表中。
具体地,若步骤S207中的判断结果为不存在,则可以判断出待测安卓设备跳转到所述脚本录制开始后首次跳转并运行的应用程序,即可以判定为该当前前台运行的应用程序为第二被测应用程序。将所述第二被测应用程序对应的标识添加到所述测试对比列表中,以便于后续进行判断时可以保证不会重复存储非首次进入并运行的应用程序的标识,所述第二被测应用程序对应的标识为根据所述第二被测应用程序的属性参数提取的与所述第二被测应用程序唯一对应的标识。其中标识可以是第二被测应用程序的名称、包名或者其他可唯一识别该应用程序的标识。需要说明的是,第二被测应用程序表示从第一被测应用程序跳转之后的所有首次进入并运行的被测应用程序,表示一类应用程序而非某一个具体的被测应用程序。
S209:获取所述第二被测应用程序的初始化状态文件。
具体地,对步骤S208中判断后的第二被测应用程序进行初始化文件的获取,其中,初始化状态文件包括第二被测应用程序在录制脚本时的初始化状态数据和初始化应用数据。具体实现中,可根据应用程序的名称获取对应的包名,从安卓设备系统data/data下面找到包名文件夹,查看文件下是否存在shared_prefs文件夹(应用程序状态设置等文件夹)和databases文件夹(应用程序数据库文件夹),若存在,则获取保存相应的文件。需要强调的是,初始化状态仅仅表示开始录制脚本后第二被测应用程序未发生操作之前的初始化状态,与录制中且发生操作后的第二被测应用程序的状态无关。最终通过使用该初始化状态文件可以让第二被测应用程序在后续回放执行该录制脚本时,通过对比初始化状态文件的不一致信息,或通过修改不一致信息或通过不一致文件覆盖的方式进行第二被测应用程序的脚本测试的初始化状态的恢复,从而保证该录制的脚本测试能够顺利并正确地执行。
S210:将所述初始化状态文件存储到所述安卓设备中预设的文件夹中。
具体地,将步骤S209中获取的初始化状态文件存储到所述安卓设备中预设的文件夹中。例如,在步骤S209中获取的shared_prefs文件夹(应用程序状态设置等文件夹)和databases文件夹(应用程序数据库文件夹)之后,则在手机SD卡自定义InitialiseData文件夹里面新建以相应的应用程序名称或包名命名的文件夹,并把上述shared_prefs文件夹和databases文件夹拷贝至新建的InitialiseData文件夹中的相对应的新建文件夹中,以便于录制回放时进行准确查找。需要说明的是,也可以将初始化状态文件存储到测试服务器中进行统一管理和录制回放时统一分发使用。可以理解的是,当接收到安卓设备结束录制脚本命令时,则停止录制并生成录制脚本文件。
本发明实施例,通过在安卓设备的被测应用程序脚本录制时,判断并记录保存其录制时的初始化状态文件,进而在脚本执行过程中使用初始化状态文件对相应的被测应用程序进行初始化测试状态设置,最终保证安卓设备执行自动化脚本时恢复相应被测应用程序录制脚本时的初始化状态,避免自动化测试过程中被测应用程序因录制脚本和执行脚本时初始化状态不一致而导致测试致失败的问题。
需要说明的是,本发明实施例中的自动化测试状态保存装置包括但不限于安装有Android系统的移动电话、移动电脑、平板电脑、个人数字助理(Personal DigitalAssistant,PDA)、媒体播放器、智能电视、智能手表、智能眼镜、智能手环等用户设备。
图3是本发明实施例中的一种Android平台的自动化测试状态保存装置的结构示意图,用以执行上述图1所示实施例中的一种Android平台的自动化测试状态保存方法的流程。
下面将结合附图3,对本发明实施例中的一种Android平台的自动化测试状态保存装置的结构进行详细介绍。该装置10可包括:脚本录制模块101、第一状态保存模块102和第二状态保存模块103。
脚本录制模块101,用于当接收到安卓设备开始录制脚本命令时,开始录制脚本。
具体地,所述安卓设备包括使用安卓操作系统的所有设备,当接收到安卓设备开始录制脚本的命令时,则获取待测安卓设备的Root权限和读写系统权限,然后开始录制脚本,其中开始录制脚本的命令可以是测试服务器发出的也可以是测试安卓设备自身发出的,本发明不作具体限定。
第一状态保存模块102,用于获取所述安卓设备当前前台运行的第一被测应用程序,保存所述第一被测应用程序的初始化状态文件。
具体地,所述初始化状态文件用于在所述脚本执行过程中使用所述初始化状态文件对所述对应的被测应用程序进行初始化测试状态设置。优选地,通过Android本身自带的ActivityManager.getRunningTasks(1)方法,获取待测安卓设备当前前台运行的应用程序列表,其中位于列表第一个的即为前台正在运行的第一被测应用程序,可以理解的是此处的第一被测应用程序表示在脚本录制开始后第一次获取的第一个被测应用程序。根据获取的第一被测应用程序,保存获取的第一被测应用程序的初始化状态文件。具体地,初始化状态文件包括第一被测应用程序在开始录制脚本时的初始化状态数据和初始化应用数据,其中初始化状态数据主要包括第一应用程序开始录制脚本时所处的初始化测试环境,例如WIFI的开关、蓝牙的开关、模式开关等;初始化应用数据则主要包括第一被测应用程序的初始化的状态参数,例如应用程序的测试初始化状态的配置或应用参数等。需要强调的是,初始化状态仅仅表示开始录制脚本时第一被测应用程序的初始化状态,与录制开始后且发生操作后的第一被测应用程序的状态无关。最终通过使用该初始化文件可以让第一被测应用程序在后续回放执行该录制脚本时,通过对比初始化状态文件的不一致信息,或通过修改不一致信息或通过不一致文件覆盖的方式进行第一被测应用程序的脚本测试的初始化状态的恢复,从而保证该录制的脚本测试能够顺利并正确地执行。
第二状态保存模块103,用于当判断出所述安卓设备当前前台运行的应用程序跳转到第二被测应用程序时,获取并保存所述第二被测应用程序的初始化状态文件。
具体地,所述第二被测应用程序在所述脚本录制开始后在所述安卓设备中首次跳转并运行,所述初始化状态文件用于在所述脚本执行过程中使用所述初始化状态文件对所述对应的被测应用程序进行初始化测试状态设置。在脚本录制的过程当中,每发生一次操作,都需要对前台当前正在运行的应用程序进行判断,判断该应用程序是否发生跳转,如果发生跳转则继续判断该应用程序是否是在脚本录制开始后首次跳转进入并运行的,若是,则判断该应用程序为第二被测应用程序,即需对该第二被测应用程序进行初始化文件的获取,具体地,初始化状态文件包括第二被测应用程序在录制脚本时的初始化状态数据和初始化应用数据。可以理解的是,当接收到安卓设备结束录制脚本命令时,则停止录制并生成录制脚本文件。需要强调的是,初始化状态仅仅表示开始录制脚本后第二被测应用程序未发生操作之前的初始化状态,与录制中且发生操作后的第二被测应用程序的状态无关。最终通过使用该初始化状态文件可以让第二被测应用程序在后续回放执行该录制脚本时,通过对比初始化状态文件的不一致信息,或通过修改不一致信息或通过不一致文件覆盖的方式进行第二被测应用程序的脚本测试的初始化状态的恢复,从而保证该录制的脚本测试能够顺利并正确地执行。需要说明的是,第二被测应用程序表示从第一被测应用程序跳转之后的所有首次进入并运行的被测应用程序,表示一类应用程序而非某一个具体的被测应用程序。
本发明实施例,通过在安卓设备的被测应用程序脚本录制时,判断并记录保存其录制时的初始化状态文件,进而在脚本执行过程中使用初始化状态文件对相应的被测应用程序进行初始化测试状态设置,最终保证安卓设备执行自动化脚本时恢复相应被测应用程序录制脚本时的初始化状态,避免自动化测试过程中被测应用程序因录制脚本和执行脚本时初始化状态不一致而导致测试致失败的问题。
图4是本发明实施例中的另一种Android平台的自动化测试状态保存装置的结构示意图,用以执行上述图2所示实施例中的另一种Android平台的自动化测试状态保存方法的流程。
下面将结合附图4,对本发明实施例中的另一种Android平台的自动化测试状态保存装置的结构进行详细介绍。该装置20可包括:脚本录制模块201、第一状态保存模块202和第二状态保存模块203。所述第一状态保存模块202可包括:第一状态获取单元2021、第一状态判断单元2022、第一获取单元2023、第一状态存储单元2024和列表建立单元2025;所述第二状态保存模块203可包括:标识对比单元2031、第二状态判断单元2032、第二获取单元2033和第二状态存储单元2034。
脚本录制模块201,用于当接收到安卓设备开始录制脚本命令时,开始录制脚本。
其中装置中的请求通信模块201可以执行并完成方法步骤S201中的所有方法和流程,在此不再赘述。
第一状态保存模块202可包括:第一状态获取单元2021、第一状态判断单元2022、第一获取单元2023、第一状态存储单元2024和列表建立单元2025。
第一状态获取单元2021,用于获取所述安卓设备后台正在运行的应用程序;
第一状态判断单元2022,用于从所述后台正在运行的应用程序中判断并获取所述安卓设备中当前前台运行的第一被测应用程序。
第一获取单元2023,用于获取所述第一被测应用程序的初始化状态文件,并根据所述第一被测应用程序的属性参数提取与所述第一被测应用程序唯一对应的标识;
第一状态存储单元2024,用于将所述初始化状态文件存储到所述安卓设备中预设的文件夹中;
列表建立单元2025,用于建立测试对比列表,将所述第一被测应用程序对应的标识添加到所述测试对比列表中。
其中装置中的请求通信模块202包含的2021到2025单元可以执行并完成方法步骤S202到S206中的所有方法和流程,在此不再赘述。
第二状态保存模块203可包括:标识对比单元2031、第二状态判断单元2032、第二获取单元2033和第二状态存储单元2034。
标识对比单元2031,用于当检测到所述安卓设备的操作指令时,判断当前前台运行的应用程序对应的标识在所述测试对比列表中是否存在;
第二状态判断单元2032,用于若当前前台运行的应用程序对应的标识在所述测试对比列表中不存在,则判断出所述安卓设备跳转到所述脚本录制开始后首次跳转并运行的第二被测应用程序,将所述第二被测应用程序对应的标识添加到所述测试对比列表中;所述第二被测应用程序对应的标识为根据所述第二被测应用程序的属性参数提取的与所述第二被测应用程序唯一对应的标识;
第二获取单元2033,用于获取所述第二被测应用程序的初始化状态文件;
第二状态存储单元2034,用于将所述初始化状态文件存储到所述安卓设备中预设的文件夹中。
其中装置中的第二状态保存模块203包含的2031到2034单元可以执行并完成方法步骤S207到S210中的所有方法和流程,在此不再赘述。
本发明实施例,通过在安卓设备的被测应用程序脚本录制时,判断并记录保存其录制时的初始化状态文件,进而在脚本执行过程中使用初始化状态文件对相应的被测应用程序进行初始化测试状态设置,最终保证安卓设备执行自动化脚本时恢复相应被测应用程序录制脚本时的初始化状态,避免自动化测试过程中被测应用程序因录制脚本和执行脚本时初始化状态不一致而导致测试致失败的问题。
应当理解的是,本文中虽然使用术语第一、第二等描述被测应用程序或模块、单元,但是这些被测应用程序或模块、单元应该不受这些术语的限制,这些术语仅被用于彼此区分。还应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”(“a”、“an”、和“the”)旨在也包括复数形式。还应该理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (12)

1.一种Android平台的自动化测试状态保存方法,其特征在于,包括:
当接收到安卓设备开始录制脚本命令时,开始录制脚本;
获取所述安卓设备当前前台运行的第一被测应用程序,保存所述第一被测应用程序的初始化状态文件,所述初始化状态文件包括第一应用程序开始录制脚本时所处的初始化测试环境和初始化的状态参数,所述初始化测试环境包括WIFI的开关、蓝牙的开关和模式开关中的至少一种,所述初始化的状态参数包括所述第一被测应用程序的初始化状态的配置或应用参数;
当判断出所述安卓设备当前前台运行的应用程序跳转到第二被测应用程序时,获取并保存所述第二被测应用程序的初始化状态文件;其中所述第二被测应用程序在所述脚本录制开始后在所述安卓设备中首次跳转并运行。
2.如权利要求1所述的方法,其特征在于,所述初始化状态文件包括被测应用程序的初始化状态数据和初始化应用数据。
3.如权利要求1所述的方法,其特征在于,所述获取所述安卓设备当前前台运行的第一被测应用程序,包括:
获取所述安卓设备后台正在运行的应用程序;
从所述后台正在运行的应用程序中判断并获取所述安卓设备中当前前台运行的第一被测应用程序。
4.如权利要求1所述的方法,其特征在于,所述保存所述第一被测应用程序的初始化状态文件,包括:
获取所述第一被测应用程序的初始化状态文件,并根据所述第一被测应用程序的属性参数提取与所述第一被测应用程序唯一对应的标识;
将所述初始化状态文件存储到所述安卓设备中预设的文件夹中;
建立测试对比列表,将所述第一被测应用程序对应的标识添加到所述测试对比列表中。
5.如权利要求4所述的方法,其特征在于,所述当判断出所述安卓设备当前前台运行的应用程序跳转到第二被测应用程序时,获取并保存所述第二被测应用程序的初始化状态文件,包括:
当检测到所述安卓设备的操作指令时,判断当前前台运行的应用程序对应的标识在所述测试对比列表中是否存在;
若不存在,则判断出所述安卓设备跳转到所述脚本录制开始后首次跳转并运行的第二被测应用程序,将所述第二被测应用程序对应的标识添加到所述测试对比列表中;所述第二被测应用程序对应的标识为根据所述第二被测应用程序的属性参数提取的与所述第二被测应用程序唯一对应的标识;
获取所述第二被测应用程序的初始化状态文件;
将所述初始化状态文件存储到所述安卓设备中预设的文件夹中。
6.如权利要求5所述的方法,其特征在于,所述操作指令包括用于指示进行跳转操作的点击指令、长按指令、滑动指令或敲击指令。
7.一种Android平台的自动化测试状态保存装置,其特征在于,包括:
脚本录制模块,用于当接收到安卓设备开始录制脚本命令时,开始录制脚本;
第一状态保存模块,用于获取所述安卓设备当前前台运行的第一被测应用程序,保存所述第一被测应用程序的初始化状态文件,所述初始化状态文件包括第一应用程序开始录制脚本时所处的初始化测试环境和初始化的状态参数,所述初始化测试环境包括WIFI的开关、蓝牙的开关和模式开关中的至少一种,所述初始化的状态参数包括所述第一被测应用程序的初始化状态的配置或应用参数;
第二状态保存模块,用于当判断出所述安卓设备当前前台运行的应用程序跳转到第二被测应用程序时,获取并保存所述第二被测应用程序的初始化状态文件;其中所述第二被测应用程序在所述脚本录制开始后在所述安卓设备中首次跳转并运行。
8.如权利要求7所述的装置,其特征在于,所述初始化状态文件包括被测应用程序的初始化状态数据和初始化应用数据。
9.如权利要求7所述的装置,其特征在于,所述第一状态保存模块,包括:
第一状态获取单元,用于获取所述安卓设备后台正在运行的应用程序;
第一状态判断单元,用于从所述后台正在运行的应用程序中判断并获取所述安卓设备中当前前台运行的第一被测应用程序。
10.如权利要求7所述的装置,其特征在于,所述第一状态保存模块,包括:
第一获取单元,用于获取所述第一被测应用程序的初始化状态文件,并根据所述第一被测应用程序的属性参数提取与所述第一被测应用程序唯一对应的标识;
第一状态存储单元,用于将所述初始化状态文件存储到所述安卓设备中预设的文件夹中;
列表建立单元,用于建立测试对比列表,将所述第一被测应用程序对应的标识添加到所述测试对比列表中。
11.如权利要求10所述的装置,其特征在于,所述第二状态保存模块包括:
标识对比单元,用于当检测到所述安卓设备的操作指令时,判断当前前台运行的应用程序对应的标识在所述测试对比列表中是否存在;
第二状态判断单元,用于若当前前台运行的应用程序对应的标识在所述测试对比列表中不存在,则判断出所述安卓设备跳转到所述脚本录制开始后首次跳转并运行的第二被测应用程序,将所述第二被测应用程序对应的标识添加到所述测试对比列表中;所述第二被测应用程序对应的标识为根据所述第二被测应用程序的属性参数提取的与所述第二被测应用程序唯一对应的标识;
第二获取单元,用于获取所述第二被测应用程序的初始化状态文件;
第二状态存储单元,用于将所述初始化状态文件存储到所述安卓设备中预设的文件夹中。
12.如权利要求11所述的装置,其特征在于,所述操作指令包括用于指示进行跳转操作的点击指令、长按指令、滑动指令或敲击指令。
CN201410857275.7A 2014-12-31 2014-12-31 一种Android平台的自动化测试状态保存方法及装置 Expired - Fee Related CN104572464B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410857275.7A CN104572464B (zh) 2014-12-31 2014-12-31 一种Android平台的自动化测试状态保存方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410857275.7A CN104572464B (zh) 2014-12-31 2014-12-31 一种Android平台的自动化测试状态保存方法及装置

Publications (2)

Publication Number Publication Date
CN104572464A CN104572464A (zh) 2015-04-29
CN104572464B true CN104572464B (zh) 2018-01-19

Family

ID=53088596

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410857275.7A Expired - Fee Related CN104572464B (zh) 2014-12-31 2014-12-31 一种Android平台的自动化测试状态保存方法及装置

Country Status (1)

Country Link
CN (1) CN104572464B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105224835B (zh) * 2015-09-08 2020-08-21 Tcl通讯科技(成都)有限公司 基于智能终端获取应用程序数据的方法及智能终端
CN111382072A (zh) * 2020-03-04 2020-07-07 四川长虹电器股份有限公司 一种安卓设备自动化配置测试环境的方法
CN111858364A (zh) * 2020-07-24 2020-10-30 中国建设银行股份有限公司 测试终端的参数配置方法、装置及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841789A (zh) * 2012-06-29 2012-12-26 北京奇虎科技有限公司 一种对浏览器中的用户操作进行录制和回放的方法和装置
CN103268289A (zh) * 2013-06-18 2013-08-28 北京云测信息技术有限公司 在移动终端上录制应用测试脚本的方法和系统
CN104166619A (zh) * 2013-05-20 2014-11-26 腾讯科技(深圳)有限公司 应用程序的性能测试方法及终端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8543980B2 (en) * 2010-08-23 2013-09-24 Micro Focus (Us), Inc. State driven testing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102841789A (zh) * 2012-06-29 2012-12-26 北京奇虎科技有限公司 一种对浏览器中的用户操作进行录制和回放的方法和装置
CN104166619A (zh) * 2013-05-20 2014-11-26 腾讯科技(深圳)有限公司 应用程序的性能测试方法及终端
CN103268289A (zh) * 2013-06-18 2013-08-28 北京云测信息技术有限公司 在移动终端上录制应用测试脚本的方法和系统

Also Published As

Publication number Publication date
CN104572464A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN106033393B (zh) 一种应用程序测试方法及系统以及移动终端
CN104424094B (zh) 一种异常信息获取方法、装置及智能终端设备
CN103309797B (zh) 用户界面自动化测试方法及装置
CN105912455B (zh) 业务执行方法及服务器
CN104899016B (zh) 调用堆栈关系获取方法及装置
CN104598380A (zh) 一种基于控件的自动化测试方法及系统
CN104346194B (zh) 一种启动文件加载方法、装置及电子设备
CN103092700A (zh) 内存清理方法、装置和终端设备
CN107622054A (zh) 文本数据的纠错方法及装置
CN111756575A (zh) 存储服务器的性能分析方法及装置、电子设备
CN106484610A (zh) 一种Beta测试方法和装置
CN108345485A (zh) 用于界面视图的标识方法及装置
CN104572464B (zh) 一种Android平台的自动化测试状态保存方法及装置
CN108197114A (zh) 表格数据的检测方法、装置、存储介质及电子装置
CN109376267A (zh) 用于生成模型的方法和装置
CN104866416B (zh) 实现应用程序性能分析的方法和装置
CN106598834A (zh) Ui测试方法及装置
CN106354482A (zh) 一种获取自动化脚本、自动化脚本的应用方法及装置
CN107515716A (zh) 看板卡片管理方法、装置、计算机设备和存储介质
CN106033303A (zh) 一种信息查找、标识方法及其装置
CN108776580A (zh) 窗口的提示方法和装置
CN107003828A (zh) 图形指令的仪器化
CN101937395B (zh) 一种用于漏洞检测的检测对象程序特征提取方法
CN104200164B (zh) 一种加载器Loader病毒的查杀方法、装置及终端
CN104298739B (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
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Patentee after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

Address before: Changan town in Guangdong province Dongguan 523860 usha Beach Road No. 18

Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180119