CN103853658B - 在安卓设备中进行录制回放的自动化测试方法及安卓设备 - Google Patents
在安卓设备中进行录制回放的自动化测试方法及安卓设备 Download PDFInfo
- Publication number
- CN103853658B CN103853658B CN201210512851.5A CN201210512851A CN103853658B CN 103853658 B CN103853658 B CN 103853658B CN 201210512851 A CN201210512851 A CN 201210512851A CN 103853658 B CN103853658 B CN 103853658B
- Authority
- CN
- China
- Prior art keywords
- android device
- file
- android
- recorded
- executable binary
- 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
Links
Abstract
本申请提供一种在安卓设备中进行录制回放的自动化测试方法以及安卓设备。所述方法包括以下步骤:获取安卓设备端的开始录制命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第一可执行二进制文件,所述第一可执行二进制文件用于录制被测应用程序,监听位于安卓系统底层的所有被测应用程序的所有操作事件所对应的记录文件;获取安卓设备端的结束录制命令,根据所述记录文件生成录制文件;获取安卓设备端的开始回放命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第二可执行二进制文件,读取所述录制文件中的内容并将所述录制文件中的内容重新写入至对应的所述记录文件中。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种在安卓设备中进行录制回放的自动化测试方法及安卓设备。
背景技术
目前对Android设备(操作系统为安卓系统的手机、平板电脑、电视等电子设备)的用户操作进行录制和回放的方式主要有以下两种:第一种为基于Monkeyrunner的录制和回放,第二种为基于Instrumentat ion的录制和回放。其中,Monkeyrunner为Google官方提供的一套api,它用于在Android的代码之外控制Android设备和模拟器。Instrumentation为Google官方为Android系统测试提供的一种机制,该机制是一系列对Android系统进行控制的方法的集合。可以在Android程序正常的生命周期之外独立的控制Android应用的各个组件。
对于Monkeyrunner内在的录制和回放,由于Monkeyrunner本身是可以基于屏幕坐标来实现点击屏幕区域,模拟键盘按键输入,拖拽屏幕。因此可以提供pc上的客户端程序或者web程序。他们负责监听用户的操作,记录下用户的操作到某个文件,并同时利用的对应monkeyrunner api去进行实际的用户操作,完成录制。回放的时候,根据存储的操作文件,生成对应的monkeyrunner代码去进行实际的用户操作。
对于基于Ins trumentat ion的testdroid(商业化的Android自动化测试工具)的录制和回放功能。Ins trumentation内部提供类似于“sendKeyDownUpSync”这样的方法来触发对键盘或者屏幕的操作。与方法一一样,基于这个原理同样可以通过自己实现的pc客户端程序或者web程序监听用户的操作,记录,然后用这种方式来播放操作。
但是,现有技术的两种方法分别存在以下缺点:第一种方法由于Monkeyrunner自身不够稳定,使用中经常会有问题;支持的操作有限,目前仅有屏幕点击,键盘输入,拖拽,不包括比如“摇一摇”等操作;第二种方法只能针对被测Android应用本身的界面进行录制和回放,无法跨不同应用测试进行录制跟回放。
发明内容
本申请的目的在于,提供一种在Android设备上就能进行录制回放的自动化解决方案。
本申请的目的及解决其技术问题是采用以下技术方案来实现的。
一种在安卓设备中进行录制回放的自动化测试方法,包括以下步骤:获取安卓设备端的开始录制命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第一可执行二进制文件,所述第一可执行二进制文件用于录制被测应用程序,监听位于安卓系统底层的所有被测应用程序的所有操作事件所对应的记录文件;获取安卓设备端的结束录制命令,根据所述记录文件生成录制文件;获取安卓设备端的开始回放命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第二可执行二进制文件,读取所述录制文件中的内容并将所述录制文件中的内容重新写入至对应的所述记录文件中。
一种安卓设备,包括:第一获取执行模块,用于获取安卓设备端的开始录制命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第一可执行二进制文件,所述第一可执行二进制文件用于录制被测应用程序,监听位于安卓系统底层的所有被测应用程序的所有操作事件所对应的记录文件;第二获取执行模块,用于获取安卓设备端的结束录制命令,根据所述记录文件生成录制文件;第三获取执行模块,用于获取安卓设备端的开始回放命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第二可执行二进制文件,读取所述录制文件中的内容并将所述录制文件中的内容重新写入至对应的所述记录文件中。
相对于现有技术,本发明提供的在安卓设备中进行录制回放的自动化测试方法及安卓设备具有以下优点:1.支持跨应用(不同的app)的界面操作的录制和回放,不受instrument只能在本程序内的约束,可以方便的对无源码第三方app以及系统应用实现自动操作;2.支持几乎所有用户操作类型,在已知的范围内,Android的用户操作事件都会被记录在eventX记录文件中,因此不会像其他方案会漏掉一些上层应用不支持的操作,比如:摇一摇,指南针,屏幕旋转等操作;3.在Android设备中就可以完成录制跟回放,不需要连接PC,不受办公地点限制,可以非常方便的完成录制回放测试,可以自动适配不同Android设备(不同硬件输入设备的)录制跟回放。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其他目的、特征和优点能够更明显易懂,以下特举较佳实施例,并配合附图,详细说明如下。
附图说明
图1是本申请第一实施例提供的在安卓设备中进行录制回放的自动化测试方法的流程图。
图2是本申请第二实施例提供的在安卓设备中进行录制回放的自动化测试方法的流程图。
图3是本申请第三实施例提供的安卓设备的软件性能测试方法的流程图。
图4是本申请第三实施例提供的在安卓设备中进行录制回放的自动化测试方法的原理图。
图5是没有设置快捷键的用户操作流程图。
图6是设有快捷键的用户操作流程图。
图7是本申请第四实施例提供的安卓设备的结构示意图。
图8是本申请第五实施例提供的安卓设备的结构示意图。
图9是本申请第六实施例提供的安卓设备的结构示意图。
具体实施方式
为更进一步阐述本申请为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本申请提出的软件性能测试方法和测试装置的具体实施方式、方法、步骤、特征及其功效,详细说明如下。
有关本申请的前述及其他技术内容、特点及功效,在以下配合参考图式的较佳实施例的详细说明中将可清楚呈现。通过具体实施方式的说明,当可对本申请为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图式仅是提供参考与说明之用,并非用来对本申请加以限制。
第一实施例
请参考图1,图1是本申请第一实施例提供的在安卓设备中进行录制回放的自动化测试方法的流程图。所述测试方法包括以下步骤:
S11:获取安卓设备端的开始录制命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第一可执行二进制文件,所述第一可执行二进制文件用于录制被测应用程序,监听位于安卓系统底层的所有被测应用程序的所有操作事件所对应的记录文件。
第一可执行二进制文件负责记录事件,后面提到的第二可执行二进制文件负责回放事件。录制事件指的是记录用户在安卓设备上的操作的过程,将用户的操作按照某种特殊的方式记录下来。回放事件指的是按照录制记录的内容,让安卓设备自动执行用户的操作。第一可执行二进制文件与第二可执行二进制文件都是由C程序编译的Android系统可执行的二进制文件,然后在Android程序中通过命令行方式(shell)调用这两个二进制文件就可以执行相关功能。第一可执行二进制文件与第二可执行二进制文件被打包到APK里面形成一个Android应用程序。当这个Android应用程序被安装后,初次启动时,会将第一可执行二进制文件与第二可执行二进制文件拷贝到安卓设备系统的某个可读写操作目录下(例如/data/local),同时修改第一可执行二进制文件与第二可执行二进制文件的属性为可执行。由于第一可执行二进制文件与第一可执行二进制文件都装载于被测的安卓设备中,因此在Android设备中就可以完成录制跟回放,不需要连接PC,不受办公地点限制,可以非常方便的完成录制回放测试,可以自动适配不同Android设备(不同硬件输入设备的)录制跟回放。
因为Android系统使用标准的Linux输入系统,所以应用程序的所有操作事件包括键盘事件、屏幕的鼠标点击事件等等都会被记录到系统底层的例如/dev/input/eventX这样的记录文件中,其中X是从0开始的数字,例如键盘事件可能记录/dev/input/event0文件中,屏幕鼠标点击事件记录到/dev/input/event1文件中,设备中重力感应事件记录到/dev/input/event2文件中。根据不同的Android设备拥有不同硬件设备,例如重力感应器、指南针、光线感应器等等,X会从0到不同的数字(常见是从0到6)。
本发明的测试方法支持几乎所有用户操作类型,在已知的范围内,Android的用户操作事件都会被记录在eventX记录文件中,因此不会像现有技术会漏掉一些上层应用不支持的操作,比如:摇一摇,指南针,屏幕旋转等操作。同时,本发明的测试方法能够支持跨应用(不同的app)的界面操作的录制和回放,可以方便的对无源码第三方app以及系统应用实现自动操作。
进一步的,第一可执行二进制文件在初始化的时候可以先通过安卓系统的shell指令查看系统底层/dev/input/下面所有的文件,查找到所有与操作事件相关的记录文件,然后记录所述记录文件的数量,避免以后读取跟写入时候出错,便于兼容不同Android设备用户操作的录制和回放。
S12:获取安卓设备端的结束录制命令,根据所述记录文件生成录制文件。
录制时候触发的每个操作事件的记录文件的内容被记录到录制文件里,录制文件可以是一个临时文件。
S13:获取安卓设备端的开始回放命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第二可执行二进制文件,读取所述录制文件中的内容并将所述录制文件中的内容重新写入至对应的所述记录文件中并将所述录制文件中的内容重写写入至对应的所述记录文件中。
第二实施例
请参阅图2,图2是本申请第二实施例提供的在安卓设备中进行录制回放的自动化测试方法的流程图。所述测试方法包括以下步骤:
S21:获取安卓设备端的开始录制命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第一可执行二进制文件,所述第一可执行二进制文件用于录制被测应用程序,监听位于安卓系统底层的所有被测应用程序的所有操作事件所对应的记录文件;
S22:获取安卓设备端的结束录制命令,根据所述记录文件生成录制文件;
S23:获取安卓设备端的开始回放命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第二可执行二进制文件,读取所述录制文件中的内容并将所述录制文件中的内容重新写入至对应的所述记录文件中。
与第一实施例不同的是,于本实施例中,步骤S21进一步包括:
S211:接收安卓设备端提供的录制文件名称;
S212:监听所述安卓设备系统底层的所有操作事件记录文件,当被录制的被测应用程序的发生操作事件时,读取所发生的操作事件对应的记录文件中的内容并将其记录于与安卓设备端提供的录制文件名称相同的录制文件中。
于步骤S21中,永久监听当前设备所有的系统底层的/dev/input/eventX记录文件。当发生可读事件时(例如用户进行浏览网页操作、输入网址、打开网页等),读取对应eventX记录文件上的内容,记录到用户指定的文件中,例如与安卓设备端提供的录制文件名称相同的录制文件中。
于本实施例中,步骤S23进一步包括:
S231:接收安卓设备端提供的回放次数以及录制文件名称;
S232:按照所述回放次数重复读取与安卓设备端提供的录制文件名称相同的录制文件中的内容,并将所述录制文件中的内容重新写入至对应的所述记录文件中。
可选的,于步骤S21的通过安卓系统的shell指令调用并执行所述第一可执行二进制文件前进一步包括:
检测所述第一可执行二进制文件是否已被装载于所述安卓设备中,如果没有装载,则将所述第一可执行二进制文件装载于所述安卓设备中,如果已经装载,则直接执行所述通过安卓系统的shell指令调用并执行所述第一可执行二进制文件的步骤。
可选的,于步骤S23的通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第二可执行二进制文件前进一步包括:
检测所述第二可执行二进制文件是否已被装载于所述安卓设备中,如果没有装载,则将所述第二可执行二进制文件装载于所述安卓设备中,如果已经装载,则直接执行所述通过安卓系统的shell指令调用并执行所述第二可执行二进制文件的步骤。
第三实施例
图3是本申请第三实施例提供的在安卓设备中进行录制回放的自动化测试方法的流程图,图4是本申请第三实施例提供的在安卓设备中进行录制回放的自动化测试方法的原理图。请同时参照图3及图4,所述测试方法包括以下步骤:
S31:获取安卓设备端的开始录制命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第一可执行二进制文件,所述第一可执行二进制文件用于录制被测应用程序,监听位于安卓系统底层的所有被测应用程序的所有操作事件所对应的记录文件;
S32:获取安卓设备端的结束录制命令,根据所述记录文件生成录制文件;
S33:获取安卓设备端的开始回放命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第二可执行二进制文件,读取所述录制文件中的内容并将所述录制文件中的内容重新写入至对应的所述记录文件中。
与第一实施例不同的是,于本实施例中,于步骤S31前进一步包括:
S30:生成测试用户交互界面,所述测试用户交互界面包括:开始录制按钮、结束录制按钮、开始回放按钮、录制文件名称输入框以及回放次数输入框,当所述开始录制按钮被点击,所述安卓设备端的发出所述开始录制命令,当所述结束录制按钮被点击,所述安卓设备端的发出所述结束录制命令,当所述开始回放按钮被点击,所述安卓设备端的发出所述开始回放命令。
于步骤S30中,通过编写Android的应用程序给用户交互使用,名称例如可以叫做应用程序R&R(Record&Replay),R&R提供UI交互让用户方便操作。应用程序R&R例如包括以下几部分:开始录制按钮、结束录制按钮、开始回放按钮、录制文件名称输入框以及回放次数输入框。录制开始,结束以及回放开始还可以提供相应的快捷键设置方式(例如照相机按键或者关机按键等等)。点击开始录制按钮、结束录制按钮都会调用第一可执行二进制文件,点击开始回放按钮或者输入回放次数会调用第二可执行二进制文件。
录制开始后,用户一般会切换到被测程序进行各种操作(例如切换到浏览器,输入网址,打开网页等等),当完成各种操作后,用户需要切换回应用程序R&R,然后点击结束录制按钮,也就是用户需要切换到应用程序R&R才进行操作,这样不是很方便。在应用程序R&R里面也可以提供快捷键设置,例如可以把开始录制映射为短按或者长按音量键上,把结束录制映射为短按或者长按音量键下等等。举个例子,用户在Android设备上任何界面,如果想开始录制脚本,只需要按下音量键上,然后进行各种操作;然后想结束录制,只需要按下音量键下就可以完成录制。这样,开始录制与结束录制不需要切换到应用程序R&R就可以完成了。
具体的用户操作流程可以参考图5及图6,图5是没有设置快捷键的用户操作流程图,图6是设有快捷键的用户操作流程图。
第四实施例
图7是本申请第四实施例提供的安卓设备的结构示意图,请参照图7,于本实施例中,所述安卓设备40包括:第一获取执行模块41、第二获取执行模块42与第三获取执行模块43。
其中,第一获取执行模块41用于获取安卓设备端的开始录制命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第一可执行二进制文件,所述第一可执行二进制文件用于录制被测应用程序,监听位于安卓系统底层的所有被测应用程序的所有操作事件所对应的记录文件。第二获取执行模块42用于获取安卓设备端的结束录制命令,根据所述记录文件生成录制文件。第三获取执行模块43用于获取安卓设备端的开始回放命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第二可执行二进制文件,读取所述录制文件中的内容并将所述录制文件中的内容重新写入至对应的所述记录文件中。所述第一可执行二进制文件与所述第二可执行二进制文件为经过C程序编译的安卓系统可执行的二进制文件。
进一步的,安卓设备40还可以包括:初始化模块44以及第一记录模块45。初始化模块44用于初始化第一可执行二进制文件。第一记录模块45用于通过安卓系统的shell指令查看系统底层的所有与操作事件相关的记录文件,记录所述记录文件的数量。
第五实施例
图8是本申请第五实施例提供的安卓设备的结构示意图,请参照图8,于本实施例中,所述安卓设备50包括:第一获取执行模块51、第二获取执行模块52与第三获取执行模块53。
与第四实施例不同的是,所述第一获取执行模块51包括第一接收模块511、监听模块512、第二记录模块513。第一接收模块511用于接收安卓设备端提供的录制文件名称。监听模块512用于监听所述安卓设备系统底层的所有操作事件记录文件,当被录制的被测应用程序的发生操作事件时,读取所发生的操作事件对应的记录文件中的内容并将其记录于所述录制文件中。第二记录模块513用于将所发生的操作事件对应的记录文件中的内容记录于与安卓设备端提供的录制文件名称相同的录制文件中。
于本实施例中,第三获取执行模块53包括:第二接收模块531、读取模块532。第二接收模块531用于接收安卓设备端提供的回放次数。读取模块532用于按照所述回放次数重复读取所述录制文件中的内容。
可选的,所述安卓设备50还包括第一检测执行模块54以及第二检测执行模块55。第一检测执行模块54用于检测所述第一可执行二进制文件是否已被装载于所述安卓设备中,如果没有装载,则将所述第一可执行二进制文件装载于所述安卓设备中。第二检测执行模块55用于检测所述第二可执行二进制文件是否已被装载于所述安卓设备中,如果没有装载,则将所述第二可执行二进制文件装载于所述安卓设备中。
第六实施例
图9是本申请第六实施例提供的安卓设备的结构示意图,请参照图9,于本实施例中,所述安卓设备60包括:第一获取执行模块61、第二获取执行模块62与第三获取执行模块63。
与第四实施例不同的是,于本实施例中,所述安卓设备60进一步包括界面生成模块64。
界面生成模块64用于生成测试用户交互界面,所述测试用户交互界面包括:开始录制按钮、结束录制按钮、开始回放按钮以及回放次数输入框,当所述开始录制按钮被点击,所述安卓设备端的发出所述开始录制命令,当所述结束录制按钮被点击,所述安卓设备端的发出所述结束录制命令,当所述开始回放按钮被点击,所述安卓设备端的发出所述开始回放命令。所述开始录制命令、结束录制命令或开始回放命令被映射于所述安卓设备的自带按键上形成快捷键。
综上所述,相对于现有技术,本发明提供的在安卓设备中进行录制回放的自动化测试方法及安卓设备具有以下优点:1.支持跨应用(不同的app)的界面操作的录制和回放,不受instrument只能在本程序内的约束,可以方便的对无源码第三方app以及系统应用实现自动操作;2.支持几乎所有用户操作类型,在已知的范围内,Android的用户操作事件都会被记录在eventX记录文件中,因此不会像其他方案会漏掉一些上层应用不支持的操作,比如:摇一摇,指南针,屏幕旋转等操作;3.在Android设备中就可以完成录制跟回放,不需要连接PC,不受办公地点限制,可以非常方便的完成录制回放测试,可以自动适配不同Android设备(不同硬件输入设备的)录制跟回放。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅是本申请的较佳实施例而已,并非对本申请作任何形式上的限制,虽然本申请已以较佳实施例揭露如上,然而并非用以限定本申请,任何熟悉本专业的技术人员,在不脱离本申请技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本申请技术方案内容,依据本申请的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本申请技术方案的范围内。
Claims (18)
1.一种在安卓设备中进行录制回放的自动化测试方法,其特征在于:包括以下步骤:
初始化第一可执行二进制文件;通过安卓系统的shell指令查看系统底层的所有与操作事件相关的记录文件,记录所述记录文件的数量;
获取安卓设备端的开始录制命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第一可执行二进制文件,所述第一可执行二进制文件用于录制被测应用程序,监听位于安卓系统底层的所有被测应用程序的所有操作事件所对应的记录文件;
获取安卓设备端的结束录制命令,根据所述记录文件生成录制文件;
获取安卓设备端的开始回放命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第二可执行二进制文件,读取所述录制文件中的内容并将所述录制文件中的内容重新写入至对应的所述记录文件中。
2.如权利要求1所述的测试方法,其特征在于:所述第一可执行二进制文件与所述第二可执行二进制文件为经过C程序编译的安卓系统可执行的二进制文件。
3.如权利要求1所述的测试方法,其特征在于:所述执行装载于所述安卓设备中的第一可执行二进制文件包括:
监听所述安卓设备系统底层的所有操作事件记录文件,当被录制的被测应用程序发生操作事件时,读取所发生的操作事件对应的记录文件中的内容并将其记录于所述录制文件中。
4.如权利要求3所述的测试方法,其特征在于:所述执行装载于所述安卓设备中的第一可执行二进制文件进一步包括:
接收安卓设备端提供的录制文件名称;将所发生的操作事件对应的记录文件中的内容记录于与安卓设备端提供的录制文件名称相同的录制文件中。
5.如权利要求1所述的测试方法,其特征在于:所述执行所述第二可执行二进制文件的步骤包括:
接收安卓设备端提供的回放次数以及录制文件名称;
按照所述回放次数重复读取与安卓设备端提供的录制文件名称相同的录制文件中的内容,并将所述录制文件中的内容重新写入至对应的所述记录文件中。
6.如权利要求1所述的测试方法,其特征在于:于所述步骤通过安卓系统的shell指令调用并执行所述第一可执行二进制文件前进一步包括:
检测所述第一可执行二进制文件是否已被装载于所述安卓设备中,如果没有装载,则将所述第一可执行二进制文件装载于所述安卓设备中,如果已经装载,则直接执行所述通过安卓系统的shell指令调用并执行所述第一可执行二进制文件的步骤。
7.如权利要求1所述的测试方法,其特征在于:于所述步骤通过安卓系统的shell指令调用并执行所述第二可执行二进制文件前进一步包括:
检测所述第二可执行二进制文件是否已被装载于所述安卓设备中,如果没有装载,则将所述第二可执行二进制文件装载于所述安卓设备中,如果已经装载,则直接执行所述通过安卓系统的shell指令调用并执行所述第二可执行二进制文件的步骤。
8.如权利要求1所述的测试方法,其特征在于:于所述获取安卓设备端的开始录制命令步骤前进一步包括:
生成测试用户交互界面,所述测试用户交互界面包括:开始录制按钮、结束录制按钮、开始回放按钮、录制文件名称输入框以及回放次数输入框,当所述开始录制按钮被点击,所述安卓设备端的发出所述开始录制命令,当所述结束录制按钮被点击,所述安卓设备端的发出所述结束录制命令,当所述开始回放按钮被点击,所述安卓设备端的发出所述开始回放命令。
9.如权利要求1所述的测试方法,其特征在于:所述开始录制命令、结束录制命令或开始回放命令被映射于所述安卓设备的自带按键上形成快捷键。
10.一种安卓设备,其特征在于:所述安卓设备中包括:
初始化模块,用于初始化第一可执行二进制文件;
第一记录模块,用于通过安卓系统的shell指令查看系统底层的所有与操作事件相关的记录文件,记录所述记录文件的数量;
第一获取执行模块,用于获取安卓设备端的开始录制命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第一可执行二进制文件,所述第一可执行二进制文件用于录制被测应用程序,监听位于安卓系统底层的所有被测应用程序的所有操作事件所对应的记录文件;
第二获取执行模块,用于获取安卓设备端的结束录制命令,根据所述记录文件生成录制文件;
第三获取执行模块,用于获取安卓设备端的开始回放命令,通过安卓系统的shell指令调用并执行装载于所述安卓设备中的第二可执行二进制文件,读取所述录制文件中的内容并将所述录制文件中的内容重新写入至对应的所述记录文件中。
11.如权利要求10所述的安卓设备,其特征在于:所述第一可执行二进制文件与所述第二可执行二进制文件为经过C程序编译的安卓系统可执行的二进制文件。
12.如权利要求10所述的安卓设备,其特征在于:所述第一获取执行模块包括:
监听模块,用于监听所述安卓设备系统底层的所有操作事件记录文件,当被录制的被测应用程序发生操作事件时,读取所发生的操作事件对应的记录文件中的内容并将其记录于所述录制文件中。
13.如权利要求12所述的安卓设备,其特征在于:所述第一获取执行模块包括:
第一接收模块,用于接收安卓设备端提供的录制文件名称;
第二记录模块,用于将所发生的操作事件对应的记录文件中的内容记录于与安卓设备端提供的录制文件名称相同的录制文件中。
14.如权利要求10所述的安卓设备,其特征在于:所述第三获取执行模块包括:
第二接收模块,用于接收安卓设备端提供的回放次数;
读取模块,用于按照所述回放次数重复读取所述录制文件中的内容。
15.如权利要求10所述的安卓设备,其特征在于:所述安卓设备进一步包括:
第一检测执行模块,用于检测所述第一可执行二进制文件是否已被装载于所述安卓设备中,如果没有装载,则将所述第一可执行二进制文件装载于所述安卓设备中。
16.如权利要求10所述的安卓设备,其特征在于:所述安卓设备进一步包括:
第二检测执行模块,用于检测所述第二可执行二进制文件是否已被装载于所述安卓设备中,如果没有装载,则将所述第二可执行二进制文件装载于所述安卓设备中。
17.如权利要求10所述的安卓设备,其特征在于:所述安卓设备进一步包括:
界面生成模块,用于生成测试用户交互界面,所述测试用户交互界面包括:开始录制按钮、结束录制按钮、开始回放按钮以及回放次数输入框,当所述开始录制按钮被点击,所述安卓设备端的发出所述开始录制命令,当所述结束录制按钮被点击,所述安卓设备端的发出所述结束录制命令,当所述开始回放按钮被点击,所述安卓设备端的发出所述开始回放命令。
18.如权利要求10所述的安卓设备,其特征在于:所述开始录制命令、结束录制命令或开始回放命令被映射于所述安卓设备的自带按键上形成快捷键。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210512851.5A CN103853658B (zh) | 2012-12-04 | 2012-12-04 | 在安卓设备中进行录制回放的自动化测试方法及安卓设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210512851.5A CN103853658B (zh) | 2012-12-04 | 2012-12-04 | 在安卓设备中进行录制回放的自动化测试方法及安卓设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103853658A CN103853658A (zh) | 2014-06-11 |
CN103853658B true CN103853658B (zh) | 2017-07-21 |
Family
ID=50861335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210512851.5A Active CN103853658B (zh) | 2012-12-04 | 2012-12-04 | 在安卓设备中进行录制回放的自动化测试方法及安卓设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103853658B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407829B (zh) * | 2014-11-06 | 2018-01-23 | 北京凌阳益辉科技有限公司 | 一种图像镜像显示方法及其装置 |
CN104572447B (zh) * | 2014-12-19 | 2017-09-29 | 中国电子科技集团公司第十五研究所 | 基于安卓操作系统的业务流程录制‑回放方法及系统 |
CN106610825A (zh) * | 2015-10-23 | 2017-05-03 | 中兴通讯股份有限公司 | 智能终端快捷方式建立方法及装置 |
CN105653460A (zh) * | 2016-02-29 | 2016-06-08 | 东南大学 | 触屏式产品人机接口测试动作录制与回放的方法及系统 |
CN109298994A (zh) * | 2017-07-24 | 2019-02-01 | 中国移动通信集团公司 | 一种脚本录制、软件测试方法和设备 |
CN107491391A (zh) * | 2017-08-21 | 2017-12-19 | 深圳市天视通电子科技有限公司 | 一种软件测试系统及方法 |
CN108037960A (zh) * | 2017-12-06 | 2018-05-15 | 苏州精濑光电有限公司 | 一种将图像处理需求整合到对应软件的方法及系统 |
CN110716849B (zh) * | 2018-07-11 | 2021-05-28 | 亿度慧达教育科技(北京)有限公司 | 应用程序的测试用例录制方法和装置 |
CN110825595B (zh) * | 2018-08-13 | 2022-12-23 | 腾讯科技(深圳)有限公司 | 录制回放方法及系统、存储介质 |
CN109902030B (zh) * | 2019-04-25 | 2022-05-24 | 安然 | 一种手机应用程序自动化测试步骤记录与回放的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242621A (zh) * | 2008-01-21 | 2008-08-13 | 中兴通讯股份有限公司 | 一种基于界面的自动化测试方法及系统 |
CN102521118A (zh) * | 2011-11-11 | 2012-06-27 | 福建星网视易信息系统有限公司 | 一种Android程序的自动测试方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110161005A1 (en) * | 2009-12-31 | 2011-06-30 | The Aerospace Corporation | Systems and methods for end-to-end location and media content tracking |
-
2012
- 2012-12-04 CN CN201210512851.5A patent/CN103853658B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242621A (zh) * | 2008-01-21 | 2008-08-13 | 中兴通讯股份有限公司 | 一种基于界面的自动化测试方法及系统 |
CN102521118A (zh) * | 2011-11-11 | 2012-06-27 | 福建星网视易信息系统有限公司 | 一种Android程序的自动测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103853658A (zh) | 2014-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103853658B (zh) | 在安卓设备中进行录制回放的自动化测试方法及安卓设备 | |
US8239840B1 (en) | Sensor simulation for mobile device applications | |
US9342237B2 (en) | Automated testing of gesture-based applications | |
US8479154B1 (en) | Interaction with partially constructed mobile device applications | |
Gomez et al. | Reran: Timing-and touch-sensitive record and replay for android | |
Gonsalves | Evaluating the mobile development frameworks Apache Cordova and Flutter and their impact on the development process and application characteristics | |
US10659566B1 (en) | Demo recording utility | |
Meier | Professional Android 4 application development | |
US20130205277A1 (en) | Environment and method for cross-platform development of software applications | |
CN105677571B (zh) | 移动终端软件兼容性测试装置及方法 | |
CN105868105A (zh) | 一种应用遍历测试方法、设备及移动终端 | |
CN105320602B (zh) | 一种应用启动速度的测试方法及装置 | |
CN106970873A (zh) | 线上mock测试方法、装置及系统 | |
CN109074278B (zh) | 验证移动应用中的有状态动态链接 | |
CN109254910A (zh) | 一种应用程序的测试方法、装置、电子设备及存储介质 | |
CN103440144B (zh) | 一种对设备使用的默认软件的设置方法和装置 | |
Hesenius et al. | Automating UI tests for mobile applications with formal gesture descriptions | |
JP5870126B2 (ja) | アプリケーションテストシステム、方法及びプログラム | |
CN106951371B (zh) | 一种基于依赖注入的安卓应用半自动化测试方法 | |
CN109800135A (zh) | 一种信息处理方法及终端 | |
Akour et al. | Mobile software testing: Thoughts, strategies, challenges, and experimental study | |
Husmann et al. | UI testing cross-device applications | |
US9588874B2 (en) | Remote device automation using a device services bridge | |
US9229846B1 (en) | Testing application code changes using a state assertion framework | |
CN109542754A (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 |