CN102521118B - 一种Android程序的自动测试方法 - Google Patents

一种Android程序的自动测试方法 Download PDF

Info

Publication number
CN102521118B
CN102521118B CN201110359255.3A CN201110359255A CN102521118B CN 102521118 B CN102521118 B CN 102521118B CN 201110359255 A CN201110359255 A CN 201110359255A CN 102521118 B CN102521118 B CN 102521118B
Authority
CN
China
Prior art keywords
file
android
program
key
test
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
CN201110359255.3A
Other languages
English (en)
Other versions
CN102521118A (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.)
Fujian Kaimi Network Science & Technology Co Ltd
Original Assignee
Fujian Star Net eVideo Information Systems 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 Fujian Star Net eVideo Information Systems Co Ltd filed Critical Fujian Star Net eVideo Information Systems Co Ltd
Priority to CN201110359255.3A priority Critical patent/CN102521118B/zh
Publication of CN102521118A publication Critical patent/CN102521118A/zh
Application granted granted Critical
Publication of CN102521118B publication Critical patent/CN102521118B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种Android程序的自动测试方法,包括:步骤10、通过Android模拟器录制用户操作,该操作被Android操作系统写入串口,再导出串口数据为二进制文件;步骤20、格式化上述二进制文件为程序可识别的键码文件;步骤30、应用所述键码文件进行自动测试。通过本发明方法可以实现对触摸屏和键盘的全局录制,而且不受硬件设备访问权限的影响。

Description

一种Android程序的自动测试方法
【技术领域】
本发明涉及一种Android程序的自动测试方法。
【背景技术】
程序的测试,一直都是应用程序开发中非常关键也是非常繁琐的一环,稳定性测试与批量测试更是其中最为耗时最为繁琐的一个阶段。常见的传统测试方法主要有:(1)人工模拟用户操作进行黑盒测试;(2)通过外挂程序或程序自身模块,读取编写好的键码文件,进行批量测试。二者都存在缺点:人工黑盒测试会耗费非常多的人力和物力;使用编写的键码文件,在键码编写时非常繁琐且不够直观。另外,Android应用层程序对于硬件设备的访问权限非常有限,难以实现对触摸屏和键盘的全局录制。以下是申请人检索到的有关Android程序的自动测试方法:
2011-08-03公开的,公开号为102141960A的中国发明公开了一种基于Android的自动化测试方法,包括:步骤1、调用Android的各类测试程序及内部shell指令;步骤2、对各类测试程序及内部shell指令进行编代码;步骤3、编代码后形成一系列可随机调用测试序列,并产生相应的测试事件;步骤4、代码编写完成后,并预留存储空间以备编写扩展接口程序;步骤5、将代码通过Linux编译环境进行编译,形成可执行文件;步骤6、可执行文件在测试时调用Android的monkey随机测试命令对各类测试程序进行随机测试。该发明主要是将各类自动化测试进行集成,只需手机就能进行自动化测试,效率高。但该方案还是需要人工进行测试脚本的编写,无法实现脚本的录制,当需要测试的内容较多时,脚本编写的工作量巨大。
2011-06-29公开的,公开号为102110053A的中国发明公开了一种基于Android的随机测试方法,其步骤如下:1、使用Windows的CMD命令引导用户进行测试;2、使用CMD命令调用各个.bat文件进行monkey测试;3、使用CMD命令帮助monkey产生随机参数;4、使用monkey命令进行随机测试;5、使用CMD命令导出monkey的log日志文件;6、使用CMD命令筛选monkey出现的log日志文件;7、使用CMD命令来判断文件是否被占用从而判断测试程序是否继续。windows的CMD命令与android的Monkey命令集合起来,使手机的软件测试简单化,且提高测试效率,降低使用门槛。该技术方案仅仅是通过CMD命令简化脚本的编写,依旧没有实现“所见即得”的直接录制功能。
2011-05-11公开的,公开号为102053911A的中国发明提供了一种基于Android的自动化测试方法、系统及其移动终端,首先获取被测程序的至少一界面元素的坐标,即便与该被测程序不属于同一进程,仍可根据该界面元素的坐标向被测程序的某界面元素发送模拟操作指令,以进行跨进程的自动化测试,因此其测试的覆盖面更广;并且,该发明自动化测试技术不需要白盒测试,因此能有效保证程序代码的安全性;另外,本发明利用技术完全模拟人机交互功能,从而减少程序开发周期,减少测试开发的人力资本,提高测试效率。该方法获取到的数据仅是被测程序处于活动状态的页面的元素,获取到元素后依旧需要后续添加测试逻辑,无法直观的进行测试的录制操作。并且,当被测程序的待测页面并不处于活动状态时,该方法无法获取到指定的页面元素,也就无法进行测试。
【发明内容】
本发明要解决的技术问题,在于提供一种Android程序的自动测试方法,可以实现对触摸屏和键盘的全局录制,而且不受硬件设备访问权限的影响。
本发明是这样实现的:一种Android程序的自动测试方法,其包括如下步骤:
步骤10、通过Android模拟器录制用户操作,该操作被Android操作系统写入串口,再导出串口数据为二进制文件;
步骤20、格式化上述二进制文件为程序可识别的键码文件;
步骤30、应用所述键码文件进行自动测试。
其中,所述步骤10具体为:
(1)运行Android模拟器;
(2)进入Android远程终端,方法为运行命令:
~/AndroidSDKPath/adb.exe shell;
(3)在远程终端中导出串口数据,方法为运行命令:
cat/dev/input/event0>/sdcard/dump.bin;该命令将/dev/input/event0的串口数据导出到Android模拟器的/sdcard/dump.bin文件中,执行该命令后,所有对该串口写入的数据,都将同时被写入到指定的文件中;
(4)在模拟器上模拟用户操作;
(5)录制结束后,在远程终端中按Ctrl+C结束录制操作,最终得到的dump.bin文件即为所述二进制文件。该步骤(5)中的dump.bin文件是按照固定的格式存储用户的触摸屏和键盘操作,dump.bin文件包含以下重要信息:a、触摸屏事件,包括按下、移动、弹起以及触摸的坐标;b、键盘事件,包括按下、弹起以及所按按键的键值;c、每个事件的时间戳。
所述步骤30具体是测试人员手动控制程序开始自动键码测试;或者是程序启动时自动向服务器查询是否需要自动测试,若需要则自动从服务器下载键码文件并自动开始进行测试。
本发明具有如下优点:
1、本发明采用串口导出二进制文件的方式进行操作的录制,解决了现有技术中由于权限受限和Android接口的缺乏,Android的应用层程序难以实现对触摸屏和键盘设备的操作进行直接录制的问题;
2、本发明采用Android模拟器进行串口数据的导出,并根据该导出文件转换为应用层可识别的包含虚拟键值的键码文件,并不受硬件设备的影响:
现有技术中Android的串口数据是未格式化的二进制数据,其受硬件的影响较大,例如,触摸屏数据可能因硬件不同而有不同的校准参数,使得不同设备间的坐标信息不统一;相对的,Android应用层提供了虚拟键值等抽象层的外设输入数据,该数据在Android应用层可以确保唯一且不会随系统版本和硬件的变动而改变,而本发明利用Android模拟器提供一个虚拟的硬件环境,在该环境中所有硬件设备都相对统一,因此可以通过Android模拟器进行串口数据的导出,并根据该导出文件转换为应用层可识别的包含虚拟键值的键码文件,来确保最终转换得到的键码的通用性不受硬件设备的影响;
3、本发明能够实现在程序出现错误时自动停止键码的自动播放:
与录制键码的方法不同,本发明将在应用层实现键码的播放,能够实现在程序出现错误时自动停止键码的自动播放,其主要应用了Android系统的以下两个特性:(1)Android应用层程序在出现未捕捉的程序异常时,系统会弹出一个错误提示框,必须由用户点击确定后才会退出应用程序(该提示框属于系统进程,不属于应用程序);(2)Android应用层提供模拟触摸屏和键盘操作的接口,但只允许针对程序自身,若向外部程序或进程模拟用户操作,将抛出异常。当程序出现错误时,系统将弹出提示框,若此时自动键码发送模拟数据将抛出异常,通过捕捉该异常即可在适当时机停止键码的自动播放,并可实现额外操作,例如保存错误信息或状态信息到文件中,极大的方便了程序的调试。
【附图说明】
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法的流程框图。
【具体实施方式】
请参考图1所示,本发明方法包括如下步骤
步骤10、通过Android模拟器录制用户操作,该操作被Android操作系统写入串口,再导出串口数据为二进制文件:
为了方便开发人员进行调试,Google提供了非常简便易用的Android模拟器,并且该模拟器可以独立于开发环境独立运行,因此我们可以方便的使用模拟器来录制所需的用户操作。
Android是基于Linux的操作系统,所有外设输入(包括触摸屏、键盘)都将写入数据到串口,因此即可通过读取串口数据来获取用户进行的操作。
其具体方法为:
(1)运行Android模拟器;
(2)进入Android远程终端,方法为运行命令:
~/AndroidSDKPath/adb.exe shell;
(3)在远程终端中导出串口数据,方法为运行命令:
cat/dev/input/event0>/sdcard/dump.bin;
该命令将/dev/input/event0的串口数据导出到Android模拟器的/sdcard/dump.bin文件中,执行该命令后,所有对该串口写入的数据,都将同时被写入到指定的文件中;
(4)在模拟器上模拟用户操作;
(5)录制结束后,在远程终端中按Ctrl+C结束录制操作,最终得到的dump.bin文件即为我们所需要的二进制文件。
步骤20、格式化上述二进制文件为程序可识别的键码文件:
上述步骤(5)中的dump.bin文件按照固定的格式存储用户的触摸屏和键盘操作,因此,可以将其解码为程序可识别且程序员易读的键码文件,其中键码文件的格式可自行定义。
上述dump.bin文件中包含以下重要信息:
(1)触摸屏事件(包括按下、移动、弹起),以及触摸的坐标;
(2)键盘事件(包括按下、弹起),以及所按按键的键值;
(3)每个事件的时间戳;
通过以上信息,即可记录用户对触摸屏和键盘操作的所有信息。
步骤30、应用键码文件进行自动测试:
Android提供模拟用户触摸屏和键盘操作的接口,在得到具体的键码后,即可在程序中通过键码进行自动测试,包括但不限于以下方法:测试人员手动控制程序开始自动键码测试;或者是在程序启动时自动向服务器查询是否需要自动测试,若需要则自动从服务器下载键码文件并自动开始进行测试。
综上所述,本发明具有如下优点:
1、现有技术中由于权限问题和Android接口的缺乏,Android的应用层程序难以实现对触摸屏和键盘设备的操作进行直接录制,而本发明采用外部直接读取串口数据的方式,可以便捷的实现对这些用户操作的完整录制,并且与具体应用没有关联;
2、本发明采用Android模拟器进行串口数据的导出,并根据该导出文件转换为应用层可识别的包含虚拟键值的键码文件,并不受硬件设备的影响:
现有技术中Android的串口数据是未格式化的二进制数据,其受硬件的影响较大,例如,触摸屏数据可能因硬件不同而有不同的校准参数,使得不同设备间的坐标信息不统一;相对的,Android应用层提供了虚拟键值等抽象层的外设输入数据,该数据在Android应用层可以确保唯一且不会随系统版本和硬件的变动而改变,而本发明利用Android模拟器提供一个虚拟的硬件环境,在该环境中所有硬件设备都相对统一,因此可以通过Android模拟器进行串口数据的导出,并根据该导出文件转换为应用层可识别的包含虚拟键值的键码文件,来确保最终转换得到的键码的通用性不受硬件设备的影响;
3、本发明能够实现在程序出现错误时自动停止键码的自动播放:
与录制键码的方法不同,本发明将在应用层实现键码的播放,能够实现在程序出现错误时自动停止键码的自动播放,其主要应用了Android系统的以下两个特性:(1)Android应用层程序在出现未捕捉的程序异常时,系统会弹出一个错误提示框,必须由用户点击确定后才会退出应用程序(该提示框属于系统进程,不属于应用程序);(2)Android应用层提供模拟触摸屏和键盘操作的接口,但只允许针对程序自身,若向外部程序或进程模拟用户操作,将抛出异常。当程序出现错误时,系统将弹出提示框,若此时自动键码发送模拟数据将抛出异常,通过捕捉该异常即可在适当时机停止键码的自动播放,并可实现额外操作,例如保存错误信息或状态信息到文件中,极大的方便了程序的调试。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

Claims (2)

1.一种Android程序的自动测试方法,其特征在于:包括如下步骤:
步骤10、通过Android模拟器录制用户操作,该操作被Android操作系统写入串口,再导出串口数据为二进制文件;具体为:
(1)运行Android模拟器;
(2)进入Android远程终端,方法为运行命令:
~/AndroidSDKPath/adb.exe shell;
(3)在远程终端中导出串口数据,方法为运行命令:
cat/dev/input/event0>/sdcard/dump.bin;该命令将/dev/input/event0的串口数据导出到Android模拟器的/sdcard/dump.bin文件中,执行该命令后,所有对该串口写入的数据,都将同时被写入到指定的文件中;
(4)在模拟器上模拟用户操作;
(5)录制结束后,在远程终端中按Ctrl+C结束录制操作,最终得到的dump.bin文件即为所述二进制文件;该dump.bin文件是按照固定的格式存储用户的触摸屏和键盘操作,dump.bin文件包含以下重要信息:
a、触摸屏事件,包括按下、移动、弹起以及触摸的坐标;
b、键盘事件,包括按下、弹起以及所按按键的键值;
c、每个事件的时间戳;
步骤20、格式化上述二进制文件为程序可识别的键码文件,该键码文件为应用层可识别的包含虚拟键值的键码文件;
步骤30、应用所述键码文件进行自动测试。
2.根据权利要求1所述的一种Android程序的自动测试方法,其特征在于:所述步骤30具体是测试人员手动控制程序开始自动键码测试;或者是程序启动时自动向服务器查询是否需要自动测试,若需要则自动从服务器下载键码文件并自动开始进行测试。
CN201110359255.3A 2011-11-11 2011-11-11 一种Android程序的自动测试方法 Active CN102521118B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110359255.3A CN102521118B (zh) 2011-11-11 2011-11-11 一种Android程序的自动测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110359255.3A CN102521118B (zh) 2011-11-11 2011-11-11 一种Android程序的自动测试方法

Publications (2)

Publication Number Publication Date
CN102521118A CN102521118A (zh) 2012-06-27
CN102521118B true CN102521118B (zh) 2014-12-10

Family

ID=46292049

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110359255.3A Active CN102521118B (zh) 2011-11-11 2011-11-11 一种Android程序的自动测试方法

Country Status (1)

Country Link
CN (1) CN102521118B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103853658B (zh) * 2012-12-04 2017-07-21 腾讯科技(深圳)有限公司 在安卓设备中进行录制回放的自动化测试方法及安卓设备
CN103970649B (zh) * 2013-01-31 2018-04-27 腾讯科技(深圳)有限公司 Android终端应用程序的测试方法和装置
CN104111864A (zh) * 2013-04-22 2014-10-22 腾讯科技(深圳)有限公司 应用操作的录制方法、回放方法及相应的装置
CN104657259B (zh) * 2013-11-22 2018-05-18 中国银联股份有限公司 一种测试Android应用程序的方法和装置
CN103942142B (zh) * 2014-03-31 2017-11-17 百度在线网络技术(北京)有限公司 应用程序业务的检测方法及装置
CN105005529B (zh) * 2014-04-16 2018-10-23 腾讯科技(深圳)有限公司 一种对应用程序进行测试的方法及装置
CN103995718B (zh) * 2014-05-08 2017-05-10 百度在线网络技术(北京)有限公司 程序的信息收集方法和装置
CN104142852A (zh) * 2014-08-04 2014-11-12 福州靠谱网络有限公司 在电脑上实现安卓模拟器图形加速方法
CN104391695B (zh) * 2014-11-06 2017-11-24 北京凌阳益辉科技有限公司 一种通过外部设备进行同步控制的方法及其装置
CN104572447B (zh) * 2014-12-19 2017-09-29 中国电子科技集团公司第十五研究所 基于安卓操作系统的业务流程录制‑回放方法及系统
CN104536900A (zh) * 2015-01-21 2015-04-22 小米科技有限责任公司 控制移动终端的方法及装置
CN105975367B (zh) * 2016-04-29 2022-03-25 腾讯科技(深圳)有限公司 移动设备的测试方法和装置
CN106059807A (zh) * 2016-05-30 2016-10-26 国家计算机网络与信息安全管理中心 基于用户感知的网络内容访问效果自动验证方法及系统
CN107590067A (zh) * 2017-08-01 2018-01-16 百富计算机技术(深圳)有限公司 通过pos模拟器进行测试的方法及装置
CN107491391A (zh) * 2017-08-21 2017-12-19 深圳市天视通电子科技有限公司 一种软件测试系统及方法
CN107948640B (zh) * 2017-12-19 2020-09-25 百度在线网络技术(北京)有限公司 视频播放测试方法、装置、电子设备和存储介质
CN111382416B (zh) * 2018-12-27 2022-09-30 北京右划网络科技有限公司 应用程序的运行识别方法、装置,终端设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867710A (en) * 1995-09-05 1999-02-02 Motorola, Inc. Portable microkernel operating system verification and testing
JP2002149444A (ja) * 2000-11-13 2002-05-24 Mitsubishi Electric Corp ソフトウェア試験システム及びソフトウェア試験方法及びソフトウェア試験方法を計算機で実現するためのプログラムを記録した計算機で読み取り可能なプログラム記録媒体及びソフトウェア試験方法を計算機で実現するためのプログラム
CN101957793A (zh) * 2010-09-03 2011-01-26 中国科学院软件研究所 一种面向Android及其衍生系统的软件操作录制回放方法
CN102053911A (zh) * 2010-12-30 2011-05-11 东莞宇龙通信科技有限公司 基于Android的自动化测试方法、系统及移动终端

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867710A (en) * 1995-09-05 1999-02-02 Motorola, Inc. Portable microkernel operating system verification and testing
JP2002149444A (ja) * 2000-11-13 2002-05-24 Mitsubishi Electric Corp ソフトウェア試験システム及びソフトウェア試験方法及びソフトウェア試験方法を計算機で実現するためのプログラムを記録した計算機で読み取り可能なプログラム記録媒体及びソフトウェア試験方法を計算機で実現するためのプログラム
CN101957793A (zh) * 2010-09-03 2011-01-26 中国科学院软件研究所 一种面向Android及其衍生系统的软件操作录制回放方法
CN102053911A (zh) * 2010-12-30 2011-05-11 东莞宇龙通信科技有限公司 基于Android的自动化测试方法、系统及移动终端

Also Published As

Publication number Publication date
CN102521118A (zh) 2012-06-27

Similar Documents

Publication Publication Date Title
CN102521118B (zh) 一种Android程序的自动测试方法
CN102841845B (zh) 一种Android设备软件自动测试方法
CN108255729B (zh) 一种基于Unity平台的手机游戏自动化测试方法和系统
CN103064781A (zh) 一种手机软件的自动化测试方法
CN105094783A (zh) 安卓应用稳定性测试的方法及装置
CN102147756B (zh) 终端测试方法和系统
CN108664380B (zh) 一种带性能显示的执行后软件调试系统及调试方法
US8271955B1 (en) Forward post-execution software debugger
CN102053911A (zh) 基于Android的自动化测试方法、系统及移动终端
CN101272422A (zh) 一种手机自动化测试方法
CN103577309A (zh) 自动化测试的方法及装置
CN112270149A (zh) 验证平台自动化集成方法、系统及电子设备和存储介质
KR20140053542A (ko) 내장형 소프트웨어의 자동 테스트 장치, 자동 테스트 방법 및 테스트 시나리오 작성방법
CN102999419B (zh) 一种Android测试事件记录回放方法及装置
TW201312340A (zh) 手持式電子裝置的測試系統及方法
CN111142918B (zh) 一种可编程器件程序参数配置和流程控制方法
CN103123605A (zh) 一种Android平台自动化集成测试方法和装置
KR20080052341A (ko) 내장형 시스템 소프트웨어 자동 테스트 시스템 및 방법과테스트 시나리오 작성 방법
CN103268289A (zh) 在移动终端上录制应用测试脚本的方法和系统
CN110659197B (zh) 应用程序的测试用例生成方法、装置和软件测试系统
CN102929688B (zh) 一种模拟触摸屏的模拟器实现方法及该模拟器
CN112231206A (zh) 应用程序测试的脚本编辑方法、计算机可读存储介质及测试平台
CN102081520B (zh) 嵌入式硬盘录像机的图形用户界面创建方法及其系统
CN109189452A (zh) 一种电子设备的软件更新方法、装置及存储介质
CN102519514B (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
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20120627

Assignee: FUJIAN KAIMI NETWORK SCIENCE & TECHNOLOGY CO., LTD.

Assignor: Fujian Starnet e-Video Information System Co., Ltd.

Contract record no.: 2015350000073

Denomination of invention: Automatic testing method of Android program

Granted publication date: 20141210

License type: Common License

Record date: 20150915

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20151027

Address after: 350018 Fujian city of Fuzhou province Nanjiang gate town of Cangshan District West Coast Road No. 198 Fuzhou Strait International Convention and Exhibition Center basement East Office Center No. A-029 (FTA test area)

Patentee after: FUJIAN KAIMI NETWORK SCIENCE & TECHNOLOGY CO., LTD.

Address before: Cangshan District of Fuzhou City, Fujian province 350000 to build a new town, Jinshan Road No. 618, juyuanzhou Industrial Park No. 19 building one or two layer

Patentee before: Fujian Starnet e-Video Information System Co., Ltd.