CN109902030A - 一种手机应用程序自动化测试步骤记录与回放的方法 - Google Patents
一种手机应用程序自动化测试步骤记录与回放的方法 Download PDFInfo
- Publication number
- CN109902030A CN109902030A CN201910340454.6A CN201910340454A CN109902030A CN 109902030 A CN109902030 A CN 109902030A CN 201910340454 A CN201910340454 A CN 201910340454A CN 109902030 A CN109902030 A CN 109902030A
- Authority
- CN
- China
- Prior art keywords
- record
- test
- mobile phone
- app
- application program
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Telephone Function (AREA)
Abstract
本发明实施例公开了一种手机应用程序自动化测试步骤记录与回放的方法,所述自动化测试步骤的记录方法为:在手机安装测试记录APP,打开测试记录APP选择将要进行测试的应用程序,开启服务后,点击测试记录APP的开始录制按钮,进行应用程序测试,在测试过程中,测试记录APP记录手机操作界面的定位信息,测试结束,点击测试APP录制结束按钮,所有测试过程中的操作记录存储在测试记录APP中。本发明解决了现有在非root手机上不能自动化录制应用程序测试步骤的问题。
Description
技术领域
本发明实施例涉及软件测试技术领域,具体涉及一种手机应用程序自动化测试步骤记录与回放的方法。
背景技术
现有手机应用程序进行更新时,应用程序开发者需要对应用程序进行测试,检测应用程序是否存在漏洞和不合理之处,每次更新企业都要面对大量应用程序需要测试,传统测试方案中一般采用点对点的方式对应用程序进行测试,该方案需要消耗大量时间,导致测试效率极低,或者采用批量测试的方案,需要对手机进行root,从而获得更多权限,但是手机root后会破坏用户的手机***,并不能真正模拟用户操作环境,并且现有手机厂商不允许对手机进行root,防止对手机***造成损坏。
发明内容
为此,本发明实施例提供一种手机应用程序自动化测试步骤记录与回放的方法,以解决现有在非root手机上不能自动化录制应用程序测试步骤的问题。
为了实现上述目的,本发明实施例提供如下技术方案:
根据本发明实施例的第一方面,公开了一种手机应用程序自动化测试步骤记录的方法,所述自动化测试步骤的记录方法为:在手机安装测试记录APP,打开测试记录APP选择将要进行测试的应用程序,点击测试记录APP的开始录制按钮,进行应用程序测试,在测试过程中,测试记录APP记录手机操作界面的定位信息,测试结束,点击测试APP录制结束按钮,所有测试过程中的操作记录存储在测试记录APP中。
进一步地,所述手机操作界面的定位信息包括:事件类型、事件时间、事件包名、事件类名、事件文字、事件索引和事件描述。
进一步地,所述测试记录APP定义一个AccessibilityService继承派生的类,定义服务类,所述测试记录APP在开始录制操作前,重写基类的onAccessibilityEvent,在AccessibilityService服务中定义一个布尔类型成员变量isRecord,若isRecord为false则不做任何数据收集操作,若isRecord为ture则监听并记录用户的AccessibilityEvent_TYPE_VIEW_CLICKED以及AccessibilityEvent_TYPE_VIEW_TEXT_SELECTION_CHANGED事件。
进一步地,所述测试记录APP定义List<AccessibilityNodeInfo>的类型变量为recordNodeInfos,定义List<RecordEven>类型变量为recordEvents,根据isRecord状态实时记录AccessibilityNodeInfo和AccessibilityEvents数据。
进一步地,所述测试记录APP点击开始录制按钮,isRecord的状态改为ture,同时在手机通知栏显示录制的状态、录制APP的名称、APP图标和是否结束录制按钮。
进一步地,所述测试记录APP在录制过程中,由于监听到的AccessibilityEvent类型数据不能序列化,而影响数据传递,需要封装成可序列化的RecordEvent类,对监听到的AccessibilityEvent进行数据收集和过滤,每次用户的点击操作对应一个recordEvent对象,所有的recordEvent对象保存在List<recordEvent>类型的成员变量RecordEvents中,通过调用AccessibilityEvent.getSources()方法得到AccessibilityNodeInfo类型的变量NodeInfo,将NodeInfo保存在recordNodeInfos中,recordEvents的长度和recordNodeInfos的长度相等,并且事件一一对应,在多个属性上具有互补效果。
进一步地,所述测试记录APP点击结束录制,录制过程中收集的RecordEvents和NodeInfos数据传输到ModifyRecordInfosActivity,通过Intent得到之前记录的recordEvents和recordNodeInfos,提醒用户正在处理中,启动handleRecords线程处理整合收集的数据,整合封装成名为RecordRunningInfos的类,定义List<RecordRunningInfos>变量。
进一步地,测试记录APP将收集的步骤数据进行判断,连续两个数据的事件类型,若前一个为TYPE_VIEW_TEXT_SELECTION_CHANGED事件,而后一个不为该类型,则当前TYPE_VIEW_TEXT_SELECTION_CHANGED事件的数据就为该步骤中最后所需获取的数据,同时将收集的Events以及NodeInfos进行处理,使recordEvents和recordNodeInfos在空值区域形成互补,得到稳定数据。
进一步地,所述测试记录APP对收集的Events以及NodeInfos处理完成后,将记录的RecordRunningInfos监听事件遍历显示在ModifyRecordInfosActivity页面中,用户ModifyRecordInfosActivity页面中可以查看、拖拽、修改当前已经收集到的操作步骤数据,启动handleRecordEvents2FileBean线程,将mRunInfoList中整合出来的回放的事件信息封装成Json保存到本地文件中。
根据本发明实施例的第二方面,公开了一种手机应用程序自动化测试步骤回放的方法,所述回放方法为:将手机通过USB数据线与电脑连接,通过电脑向手机传送回放指令,手机自动运行录制的测试操作,自动完成测试过程。
本发明实施例具有如下优点:
本发明实施例公开了一种手机应用程序自动化测试步骤记录与回放的方法,不用对手机进行root,通过安装测试记录APP将应用程序的测试过程中的界面操作信息及录入信息进行记录,并且录制过程中对操作元素进行精准定位并圈出矩形框,明确每个操作步骤,用户能够修改和删除录制的操作步骤,能够同时连接多部手机进行自动化测试,提升应用程序的测试效率。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
图1为本发明实施例提供的一种手机应用程序自动化测试步骤记录流程图;
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
本实施例公开了一种手机应用程序自动化测试步骤记录与回放的方法,所述自动化测试步骤的记录方法为:在手机安装测试记录APP,打开测试记录APP选择将要进行测试的应用程序,点击测试记录APP的开始录制按钮,进行应用程序测试,在测试过程中,测试记录APP记录手机操作界面的定位信息,测试结束,点击测试APP录制结束按钮,所有测试过程中的操作记录存储在测试记录APP中。
所述测试记录APP在开始录制操作前,测试记录APP定义一个AccessibilityService继承派生的类,定义服务类,重写基类的onAccessibilityEvent,在AccessibilityService服务中定义一个布尔类型成员变量isRecord,若isRecord为false则不做任何数据收集操作,若isRecord为ture则监听并记录用户的AccessibilityEvent_TYPE_VIEW_CLICKED以及AccessibilityEvent_TYPE_VIEW_TEXT_SELECTION_CHANGED事件,测试记录APP定义List<AccessibilityNodeInfo>的类型变量为recordNodeInfos,定义List<RecordEvent>类型变量为recordEvents,根据isRecord状态实时记录AccessibilityNodeInfo和AccessibilityEvents数据。
测试记录APP点击开始录制按钮,isRecord的状态改为ture,同时在手机通知栏显示录制的状态、录制APP的名称、APP图标和是否结束录制按钮,在测试过程中,测试记录APP记录手机操作界面的定位信息,所述手机操作界面的定位信息包括:事件类型、事件时间、事件包名、事件类名、事件文字、事件索引、事件数目和事件描述;
在测试过程中,能够通过定位框框选每一步操作,定位出每一次点击操作和信息录入操纵,便于进行观察,确认每一步操作的真实性。
测试记录APP在录制过程中,由于监听到的AccessibilityEvent该类型数据不能序列化,而影响数据传递,需要封装成可序列化的RecordEvent类,对监听到的AccessibilityEvent进行数据收集和过滤,每次用户的点击操作对应一个recordEvent对象,所有的recordEvent对象保存在List<recordEvent>类型的成员变量RecordEvents中,通过调用AccessibilityEvent.getSources()方法得到AccessibilityNodeInfo类型的变量NodeInfo,将NodeInfo保存在recordNodeInfos中,recordEvents的长度和recordNodeInfos的长度相等,并且事件一一对应,在多个属性上具有互补效果。
测试记录APP点击结束录制,录制过程中收集的RecordEvents和NodeInfos数据传输到ModifyRecordInfosActivity,通过Intent得到之前记录的recordEvents和recordNodeInfos,提醒用户正在处理中,启动handleRecords线程处理整合收集的数据,整合封装成名为RecordRunningInfos的类,定义List<RecordRunningInfos>变量。
测试记录APP将收集的步骤数据进行判断,连续两个数据的事件类型,若前一个为TYPE_VIEW_TEXT_SELECTION_CHANGED事件,而后一个不为该类型,则当前TYPE_VIEW_TEXT_SELECTION_CHANGED事件的数据就为该步骤中最后所需获取的数据,用户每输入一个字符,都会触发该事件,如第一次输入A,则事件里的值为A,第二次输入B,则事件中的值变为AB,所以用户输入完成的情况下,这里只需获取最后一次的总数据,故需要过滤出最后一次的事件即可;同时将收集的Events以及NodeInfos进行处理,使recordEvents和recordNodeInfos在空值区域形成互补,得到稳定数据。
所述测试记录APP对收集的Events以及NodeInfos处理完成后,将记录的RecordRunningInfos监听事件遍历显示在ModifyRecordInfosActivity页面中,用户ModifyRecordInfosActivity页面中可以查看、拖拽、修改当前已经收集到的操作步骤数据,启动handleRecordEvents2FileBean线程,将mRunInfoList中整合出来的回放的事件信息封装成Json保存到本地文件中,便于回放操作使用。
进行回放操作时,将手机通过USB数据线与电脑连接,通过电脑向手机传送回放指令,回放指令为adb shell am instrument-w-r-e debug false-e classasuper.com.srecordandroid.UiAutoTest_1asuper.com.srecordan droid.test/android.support.test.runner.AndroidJUnitRunner。该指令调用asuper.com.srecordandroid包路径中通过使用UiAutoMator框架封装的代码类UiAutoTest,自动读取保存的Json数据,自动运行录制的测试操作,自动完成测试过程,提升应用程序测试效率。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (10)
1.一种手机应用程序自动化测试步骤记录的方法,其特征在于,所述自动化测试步骤的记录方法为:在手机安装测试记录APP,打开测试记录APP选择将要进行测试的应用程序,点击测试记录APP的开始录制按钮,进行应用程序测试,在测试过程中,测试记录APP记录手机操作界面的定位信息,测试结束,点击测试APP录制结束按钮,所有测试过程中的操作记录存储在测试记录APP中。
2.如权利要求1所述的一种手机应用程序自动化测试步骤记录的方法,其特征在于,所述手机操作界面的定位信息包括:事件类型、事件时间、事件包名、事件类名、事件文字、事件索引和事件描述。
3.如权利要求1所述的一种手机应用程序自动化测试步骤记录的方法,其特征在于,所述测试记录APP定义一个AccessibilityService继承派生的类,定义服务类,所述测试记录APP在开始录制操作前,重写基类的onAccessibilityEvent,在AccessibilityService服务中定义一个布尔类型成员变量isRecord,若isRecord为false则不做任何数据收集操作,若isRecord为ture则监听并记录用户的AccessibilityEvent_TYPE_VIEW_CLICKED以及AccessibilityEvent_TYPE_VIEW_TEXT_SELECTION_CHANGED事件。
4.如权利要求3所述的一种手机应用程序自动化测试步骤记录的方法,其特征在于,所述测试记录APP定义List<AccessibilityNodeInfo>的类型变量为recordNodeInfos,定义List<RecordEven>类型变量为recordEvents,根据isRecord状态实时记录AccessibilityNodeInfo和AccessibilityEvents数据。
5.如权利要求1所述的一种手机应用程序自动化测试步骤记录的方法,其特征在于,所述测试记录APP点击开始录制按钮,isRecord的状态改为ture,同时在手机通知栏显示录制的状态、录制APP的名称、APP图标和是否结束录制按钮。
6.如权利要求1所述的一种手机应用程序自动化测试步骤记录的方法,其特征在于,所述测试记录APP在录制过程中,由于监听到的AccessibilityEvent类型数据不能序列化,而影响数据传递,需要封装成可序列化的RecordEvent类,对监听到的AccessibilityEvent进行数据收集和过滤,每次用户的点击操作对应一个recordEvent对象,所有的recordEvent对象保存在List<recordEvent>类型的成员变量RecordEvents中,通过调用AccessibilityEvent.getSources()方法得到AccessibilityNodeInfo类型的变量NodeInfo,将NodeInfo保存在recordNodeInfos中,recordEvents的长度和recordNodeInfos的长度相等,并且事件一一对应,在多个属性上具有互补效果。
7.如权利要求6所述的一种手机应用程序自动化测试步骤记录的方法,其特征在于,所述测试记录APP点击结束录制,录制过程中收集的RecordEvents和NodeInfos数据传输到ModifyRecordInfosActivity,通过Intent得到之前记录的recordEvents和recordNodeInfos,提醒用户正在处理中,启动handleRecords线程处理整合收集的数据,整合封装成名为RecordRunningInfos的类,定义List<RecordRunningInfos>变量。
8.如权利要求7所述的一种手机应用程序自动化测试步骤记录的方法,其特征在于,所述测试记录APP将收集的步骤数据进行判断,连续两个数据的事件类型,若前一个为TYPE_VIEW_TEXT_SELECTION_CHANGED事件,而后一个不为该类型,则当前TYPE_VIEW_TEXT_SELECTION_CHANGED事件的数据就为该步骤中最后所需获取的数据,同时将收集的Events以及NodeInfos进行处理,使recordEvents和recordNodeInfos在空值区域形成互补,得到稳定数据。
9.如权利要求8所述的一种手机应用程序自动化测试步骤记录的方法,其特征在于,所述测试记录APP对收集的Events以及NodeInfos处理完成后,将记录的RecordRunningInfos监听事件遍历显示在ModifyRecordInfosActivity页面中,用户ModifyRecordInfosActivity页面中可以查看、拖拽、修改当前已经收集到的操作步骤数据,启动handleRecordEvents2FileBean线程,将mRunInfoList中整合出来的回放的事件信息封装成Json保存到本地文件中。
10.一种手机应用程序自动化测试步骤回放的方法,其特征在于,所述回放方法为:将手机通过USB数据线与电脑连接,通过电脑向手机传送回放指令,手机自动运行录制的测试操作,自动完成测试过程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910340454.6A CN109902030B (zh) | 2019-04-25 | 2019-04-25 | 一种手机应用程序自动化测试步骤记录与回放的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910340454.6A CN109902030B (zh) | 2019-04-25 | 2019-04-25 | 一种手机应用程序自动化测试步骤记录与回放的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109902030A true CN109902030A (zh) | 2019-06-18 |
CN109902030B CN109902030B (zh) | 2022-05-24 |
Family
ID=66956313
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910340454.6A Active CN109902030B (zh) | 2019-04-25 | 2019-04-25 | 一种手机应用程序自动化测试步骤记录与回放的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109902030B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502437A (zh) * | 2019-07-31 | 2019-11-26 | 惠州市德赛西威汽车电子股份有限公司 | 一种车载蓝牙应用程序的测试***及其方法 |
CN111464381A (zh) * | 2020-03-26 | 2020-07-28 | 深圳市万事富科技有限公司 | 一种手机软件功能app的测试方法 |
CN112597050A (zh) * | 2020-12-28 | 2021-04-02 | 上海品顺信息科技有限公司 | 关联源码与测试用例的测试方法、***、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853658A (zh) * | 2012-12-04 | 2014-06-11 | 腾讯科技(深圳)有限公司 | 在安卓设备中进行录制回放的自动化测试方法及安卓设备 |
CN103970649A (zh) * | 2013-01-31 | 2014-08-06 | 腾讯科技(深圳)有限公司 | Android终端应用程序的测试方法和装置 |
CN106034174A (zh) * | 2015-03-13 | 2016-10-19 | 展讯通信(上海)有限公司 | 一种操作回放***及方法以及移动终端 |
CN107025165A (zh) * | 2017-03-07 | 2017-08-08 | 腾讯科技(深圳)有限公司 | 游戏自动化测试方法及相关装置 |
CN107357724A (zh) * | 2017-06-27 | 2017-11-17 | 深圳市泰衡诺科技有限公司上海分公司 | 安卓***中的软件自动化测试方法及装置 |
-
2019
- 2019-04-25 CN CN201910340454.6A patent/CN109902030B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853658A (zh) * | 2012-12-04 | 2014-06-11 | 腾讯科技(深圳)有限公司 | 在安卓设备中进行录制回放的自动化测试方法及安卓设备 |
CN103970649A (zh) * | 2013-01-31 | 2014-08-06 | 腾讯科技(深圳)有限公司 | Android终端应用程序的测试方法和装置 |
CN106034174A (zh) * | 2015-03-13 | 2016-10-19 | 展讯通信(上海)有限公司 | 一种操作回放***及方法以及移动终端 |
CN107025165A (zh) * | 2017-03-07 | 2017-08-08 | 腾讯科技(深圳)有限公司 | 游戏自动化测试方法及相关装置 |
CN107357724A (zh) * | 2017-06-27 | 2017-11-17 | 深圳市泰衡诺科技有限公司上海分公司 | 安卓***中的软件自动化测试方法及装置 |
Non-Patent Citations (2)
Title |
---|
万木林: "面向Android手机应用的功能测试软件的设计与实现", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》 * |
张灿等: "一种基于Android平台GUI录制回放工具的设计与实现", 《计算机应用与软件》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502437A (zh) * | 2019-07-31 | 2019-11-26 | 惠州市德赛西威汽车电子股份有限公司 | 一种车载蓝牙应用程序的测试***及其方法 |
CN111464381A (zh) * | 2020-03-26 | 2020-07-28 | 深圳市万事富科技有限公司 | 一种手机软件功能app的测试方法 |
CN112597050A (zh) * | 2020-12-28 | 2021-04-02 | 上海品顺信息科技有限公司 | 关联源码与测试用例的测试方法、***、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109902030B (zh) | 2022-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE49486E1 (en) | System and method for tracking web interactions with real time analytics | |
US11886464B1 (en) | Triage model in service monitoring system | |
US10942960B2 (en) | Automatic triage model execution in machine data driven monitoring automation apparatus with visualization | |
US11258693B2 (en) | Collaborative incident management for networked computing systems | |
US10932106B2 (en) | System, a method and a computer program product for automated remote control | |
US9639412B1 (en) | Application performance management tools with a service monitor for collecting network breadcrumb data | |
CN104899016B (zh) | 调用堆栈关系获取方法及装置 | |
US20170286038A1 (en) | Technology Add-On Control Console | |
CN109902030A (zh) | 一种手机应用程序自动化测试步骤记录与回放的方法 | |
EP3499360B1 (en) | Systems and methods for client-side data analysis | |
CN106844136A (zh) | 一种程序崩溃信息的收集方法及*** | |
US9723075B2 (en) | Systems and methods for data synchronization management between call centers and CRM systems | |
CN105243007B (zh) | 移动终端中内存的老化测试方法和装置 | |
CN110069464A (zh) | 日志分析处理方法、装置、设备及可读存储介质 | |
WO2021129335A1 (zh) | 操作监控方法及装置、操作分析方法及装置 | |
CN112667426A (zh) | 日志分析方法及装置 | |
CN110610376A (zh) | 行为数据的响应方法、装置、计算机设备及存储介质 | |
CN106997313A (zh) | 一种应用程序的信号处理方法、***及终端设备 | |
CN105094810B (zh) | 基于通用网关接口插件的数据处理方法和装置 | |
CN109144841B (zh) | 广告应用的识别方法和装置、计算机设备和存储介质 | |
CN109684156A (zh) | 基于混合模式应用的监控方法、装置、终端及存储介质 | |
CN115828256A (zh) | 一种越权与未授权逻辑漏洞检测方法 | |
CN104636372B (zh) | 基于表格实现大数据量处理的方法及装置 | |
CN111338960A (zh) | 埋点数据采集方法及其装置 | |
CN110597810A (zh) | 一种数据处理方法、装置、终端及存储介质 |
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 |