基于安卓操作系统的业务流程录制-回放方法及系统的制作方法

文档序号:8258327阅读:665来源:国知局
基于安卓操作系统的业务流程录制-回放方法及系统的制作方法
【技术领域】
[0001] 本发明涉及⑶I (Graphical User Interface,图形用户界面)录制-回放领域,特 别是涉及一种基于安卓操作系统的业务流程录制-回放方法及系统。
【背景技术】
[0002] Gn录制-回放自动化测试技术是自动化测试的一个分支,是一种黑盒自动化测 试技术。测试人员无需关注底层代码实现,从而避免了不同语言编程带来的测试困难。
[0003] 在Windows和Linux平台上,目前已经有很多基于录制-回放技术的⑶I测试 工具,如 HP 的 QuickTest Professional,IBM 的 Rational Functional Tester,开源工具 Selenium等。但由于Android (安卓)安全架构的存在,Windows和Linux上的录制回放技 术无法直接应用到Android平台上,同时也加大了录制-回放技术的实现难度。
[0004] 在Android平台上,到现在为止还没有成熟的⑶I录制技术,各类⑶I回放工具均 是通过解析并执行软件工程师编写的脚本进行回放,并没有形成Android平台上录制-回 放的一体化,从而导致GUI回放技术很难应用于软件自动化测试领域之外的其他领域中。
[0005] 目前,GUI回放技术主要是以脚本为依据往Android操作系统或应用程序本身注 入点击、长按、滑动等事件来达到控制应用程序自动运行的目的。然而,大多数Android应 用程序会从外存或通过网络加载数据,当同一脚本在两次执行时应用程序从外存中或通过 网络加载的数据发生了变化,并且这种变化导致了应用程序的界面逻辑在两次脚本执行过 程中有差异,此时就会出现同一脚本在多次执行过程中GUI状态不一致的情况。

【发明内容】

[0006] 本发明要解决的技术问题是提供一种基于安卓操作系统的业务流程录制-回放 方法及系统,用以解决现有技术在GUI回放时同一脚本在多次执行过程中GUI状态不一致 的问题。
[0007] 为解决上述技术问题,本发明提供一种基于安卓操作系统的业务流程录制-回放 方法,包括录制方法和回放方法,
[0008] 所述录制方法包括以下步骤:
[0009] A、当外部应用启动后,且检测到用户在界面进行操作时,采集并存储动作数据;
[0010] B、当外部应用从外存或网络加载数据后,根据加载的数据采集并存储上下文数 据;
[0011] 所述回放方法包括以下步骤:
[0012] C、加载动作及上下文数据;
[0013] D、选择回放起始位置,并从所述起始位置开始进行回放。
[0014] 进一步,所述步骤A具体包括:
[0015] A1、外部应用启动后初始化动作采集代理,将当前应用显示页面信息告知动作采 集代理;
[0016] A2、检测到用户在界面进行操作时,外部应用将用户动作数据传递给动作采集代 理;
[0017] A3、动作采集代理将动作数据格式化;
[0018] A4、调用动作采集接口保存动作数据。
[0019] 进一步,所述动作数据包括:页面启动动作数据、页面退出动作数据、单击动作数 据、长按动作数据、触摸动作数据和/或按键动作数据。
[0020] 进一步,所述步骤B具体包括:
[0021] B1、外部应用将加载的数据传递给上下文采集代理;
[0022] B2、上下文采集代理将上下文数据格式化;
[0023] B3、调用上下文采集接口保存上下文数据。
[0024] 进一步,所述上下文数据包括当前运行环境上下文对象、上下文标识和Json格式 的上下文数据。
[0025] 进一步,所述步骤C具体包括:
[0026] C1、外部应用初始化回放控制代理,将当前应用显示页面的页面控制对象交给回 放控制代理;
[0027] C2、启动动作及上下文管理组件,加载并将动作及上下文数据按照时间顺序显示。
[0028] 进一步,所述步骤D具体包括:
[0029] D1、选择一条动作数据作为回放起始位置;
[0030] D2、启动回放组件,回放组件从选择的起始动作数据开始预加载动作数据;
[0031] D3、按时间顺序将播放数据逐条传递给回放控制代理;
[0032] D4、回放控制代理通过解析动作数据,生成页面控制指令;
[0033] D5、回放控制代理通过页面控制对象向页面发出控制指令;
[0034]D6、页面收到回放控制代理发出的控制指令,产生页面响应。
[0035] 进一步,在所述步骤D4中,所述生成页面控制指令包括生成单击控制指令,具体 包括:
[0036] D411、从动作数据中解析出单击动作发生的页面控件ID号;
[0037] D412、根据单击动作数据中的页面控件ID号得到页面控件对象;
[0038] D413、向所述控件对象的中心点发出"按下"指令;
[0039] D414、向所述控件对象的中心点发出"弹起"指令。
[0040] 进一步,在所述步骤D4中,所述生成页面控制指令包括生成触摸控制指令,具体 包括:
[0041] D421、从动作数据中解析出触摸动作发生处屏幕横纵坐标;
[0042] D422、判断当前触摸位置是否属于页面中任何控件所覆盖区域,如果是,则转步骤 D424;否则转步骤D423;
[0043] D423、直接向页面相应位置发出触摸指令,并结束;
[0044] D424、根据触摸动作数据中的页面控件ID号得到页面控件对象;
[0045] D425、向所述控件相应位置发出触摸指令。
[0046] 进一步,在所述步骤D4中,所述生成页面控制指令包括生成按键控制指令,具体 包括:
[0047] D431、从动作数据中解析出按键编码;
[0048] D432、向页面发出按键编码对应的键盘按下指令;
[0049] D433、向页面发出按键编码对应的键盘弹起指令。
[0050] 进一步,所述回放方法还包括:E、在回放模式下,外部应用从外存或网络取数据; 具体包括以下步骤:
[0051] E1、当外部应用需要从外存或网络取数据时,截获外部应用数据请求事件,转为向 回放控制代理请求数据;
[0052] E2、回放控制代理根据上下文唯一标识,通过回放控制接口向回放组件发出数据 查询请求;
[0053] E3、回放组件根据上下文唯一标识在数据库中进行查询,将查询到的上下文数据 从数据库中取出,并传递给回放控制代理;
[0054] E4、回放控制代理向外部应用返回上下文数据;
[0055] E5、外部应用根据回放控制代理返回的上下文数据产生页面响应。
[0056] 本发明还提供一种基于安卓操作系统的业务流程录制-回放系统,所述系统包括 数据层、服务层、业务层、接口层和外部代理;
[0057] 所述数据层,提供动作信息和上下文信息的持久化存储;
[0058] 所述服务层,为所述业务层和接口层提供支持,包括动作存取服务、上下文存取服 务、动作及上下文聚合服务和回放控制服务;
[0059] 所述业务层,为外部应用提供直接可用的组件,包括动作及上下文管理组件和回 放组件;
[0060] 所述接口层,为外部应用提供动作采集、上下文采集、回放控制和动作及上下文管 理接口;
[0061] 所述外部代理,为外部应用提供封装好的动作采集、上下文采集、回放控制代理, 外部应用可直接通过所述外部代理实现动作及上下文数据的采集和回放。
[0062] 进一步,所述动作信息包括动作类型、操作控件的Resource ID、动作发生的屏幕 坐标、功能键编码;所述上下文信息包括状态标识和上下文数据。
[0063] 进一步,所述动作存取服务对动作数据做数据库存取操作;所述上下文存取服务 对上下文数据做数据库存取操作;所述动作及上下文聚合服务通过解析动作和上下文数 据,去除、合并其中的冗余数据;所述回放控制服务加载动作和上下文数据,保证回放的流 畅性。
[0064] 进一步,外部应用可直接启动所述动作及上下文管理组件实现对动作及上下文数 据的查询和删除操作;所述回放组件为外部应用提供一个能够播放动作及上下文数据的专 用播放器,其功能包括播放、暂停、重放和变速播放。
[0065] 本发明有益效果如下:
[0066] 1.能够完全重现⑶I状态。本发明不仅能够记录用户动作,还能记录应用加载的 外部数据,使得回放过程仅与已记录下来的动作、上下文数据以及录制的应用程序本身有 关,从而保证了每次回放过程中⑶I状态的一致性。
[0067] 2.实现录制-回放一体化。本发明将录制、回放功能集成后,使用者不用关心录制 产生的中间数据格式,也不需要人工编写回放控制脚本,在很大程度上减小了 Android平
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1