本申请公开了一种Android测试事件记录回放方法及装置。测试事件记录方法包括:实时生成随机测试事件流并执行;在执行随机测试事件流的过程中,记录每个测试事件执行时的系统环境信息;将随机测试事件流中的测试事件从随机模式转换为脚本模式;将脚本模式的测试事件写入测试记录文件,并在所述测试记录文件中记录每个测试事件的执行时的系统环境信息和所述随机测试事件流的总执行时间。测试事件回放方法包括:根据回放时间长度与总执行时间的比例,在测试记录文件的测试事件流中定位回放起始事件,并将回放起始事件之前的测试事件滤除;根据剩余的测试事件以及相应的系统环境信息,生成测试脚本;执行所生成的测试脚本,实现测试事件回放。
【技术实现步骤摘要】
—种Android测试事件记录回放方法及装置
本申请涉及测试
,特别是涉及一种Android测试事件记录回放方法及装置。
技术介绍
安卓(Android)是一种以Linux为基础的开放源码操作系统,主要使用于智能手 机、平板电脑等便携设备。该系统采用Java语言开发,包括操作系统、中间件、用户界面和 应用软件等组成部分。随着Android系统的不断发展,各大硬件厂商也在不断推出各种基 于Android系统的产品,目前,基于Android系统产品已经在市场上占有重要地位。monkey随机测试是Android平台自动化测试的一种手段,其利用monkey程序模拟 用户的按键输入、轨迹球输入、触摸屏输入等操作,并且通过伪随机的形式组织上述事件对 运行在设备上的系统进行压力测试,从而检测系统可能存在的bug。由于Android monkey测试的时间周期长,测试日志可读性差等事实,造成开发人 员仅通过monkey测试的日志信息很难去定位一个bug的具体产生原因,从而无法有效地进 行相关的修复操作。
技术实现思路
为解决上述技术问题,本申请实施例提供一种Android测试事件记录回放方法及 装置,以实现对Android monkey测试事件的记录与回放,技术方案如下本申请实施例提供一种Android测试事件记录方法,包括实时生成随机测试事件流并执行;在执行随机测试事件流的过程中,记录每个测试事件执行时的系统环境信息;将随机测试事件流中的测试事件从随机模式转换为脚本模式;将脚本模式的测试事件写入测试记录文件,并在所述测试记录文件中记录每个测 试事件的执行时的系统环境信息和所述随机测试事件流的总执行时间。 在本申请方案的一种实施方式中,所述将随机测试事件流中的测试事件从随机模 式转换为脚本模式,包括从随机模式测试事件指令中,提取事件状态参数;将随机模式测试事件类型转换为对应的脚本模式测试事件类型,根据所提取的事 件状态参数,生成脚本模式测试事件指令。在本申请方案的一种实施方式中,所述将随机测试事件流中的测试事件从随机模 式转换为脚本模式,包括在随机测试事件流执行完成后,统一将随机测试事件流中的测试事件从随机模式 转换为脚本模式;或在执行随机测试事件流的过程中,将随机测试事件流中的测试事件从随机模式转换为脚本模式。在本申请方案的一种实施方式中,所述在执行随机测试事件流的过程中,将随机 测试事件流中的测试事件从随机模式转换为脚本模式,具体实现为在monkey源代码的测试事件抽象类中添加脚本模式转换方法,根据测试事件的类型,在各个测试事件子类中,重写该脚本模式转换方法。在本申请方案的一种实施方式中,在各个测试事件子类中重写脚本模式转换方法 后,还包括在测试事件子类中为脚本模式转换方法添加标识,所述标识用于限定该方法仅在 随机测试模式下触发。本申请实施例还提供一种Android测试事件回放方法,包括获得测试记录文件,所述测试记录文件中,包括以脚本模式写入的随机测试事件 流,还包括随机测试事件流中每个测试事件的执行时的系统环境信息和所述随机测试事件 流的总执行时间;接收测试用户输入的回放时间长度参数,根据回放时间长度与所述总执行时间的 比例,在测试记录文件的测试事件流中定位回放起始事件,并将回放起始事件之前的测试 事件滤除;根据剩余的测试事件以及相应的系统环境信息,生成测试脚本;执行所生成的测试脚本,实现测试事件回放。在本申请方案的一种实施方式中,在生成测试脚本之前,还包括接收测试用户输入的应用包限定参数,将不符合所述限定参数的测试事件滤除。本申请实施例还提供一种Android测试事件记录装置,包括随机测试事件流生成单元,用于实时生成随机测试事件流并执行;系统环境信息记录单元,用于在执行随机测试事件流的过程中,记录每个测试事 件执行时的系统环境信息;测试事件模式转换单元,用于将随机测试事件流中的测试事件从随机模式转换为 脚本模式;测试记录生成单元,用于将脚本模式的测试事件写入测试记录文件,并在所述测 试记录文件中记录每个测试事件的执行时的系统环境信息和所述随机测试事件流的总执 行时间。在本申请方案的一种实施方式中,所述测试事件模式转换单元,包括事件状态参数提取子单元,用于从随机模式测试事件指令中,提取事件状态参 数;事件指令生成子单元,用于将随机模式测试事件类型转换为对应的脚本模式测试 事件类型,根据所提取的事件状态参数,生成脚本模式测试事件指令。在本申请方案的一种实施方式中,所述测试事件模式转换单元,具体配置为用于在随机测试事件流执行完成后,统一将随机测试事件流中的测试事件从随机 模式转换为脚本模式;或 用于在执行随机测试事件流的过程中,将随机测试事件流中的测试事件从随机模式转换为脚本模式。本申请实施例还提供一种Android测试事件回放装置,包括测试记录文件获得单元,用于获得测试记录脚本文件测试记录文件,所述测试记 录脚本文件测试记录文件中,包括以脚本模式写入的随机测试事件流,还包括随机测试事 件流中每个测试事件的执行时的系统环境信息和所述随机测试事件流的总执行时间;回放时间设置单元,用于接收测试用户输入的回放时间长度参数,根据回放时间 长度与所述总执行时间的比例,在测试记录文件的测试事件流中定位回放起始事件,并将 回放起始事件之前的测试事件滤除;测试脚本生成单元,用于根据剩余的测试事件以及相应的系统环境信息,生成测 试脚本;测试脚本执行单元,用于执行所生成的测试脚本,实现测试事件回放。在本申请方案的一种实施方式中,该装置还包括回放事件设置单元,用于接收测试用户输入的应用包限定参数,将不符合所述限 定参数的测试事件滤除。本申请实施例还提供一种Android测试系统,该系统包括如权利要求8至10任一 项所述的测试事件记录装置以及如权利要求11至12任一项所述的测试事件回放装置。本申请实施例所提供的技术方案,通过将Android monkey随机测试事件流中的测 试事件从随机模式转换为脚本模式的方式,实现对测试事件的记录;在回放过程中,利用以 脚本模式记录的测试记录文件,根据用户所输入的回放时间长度与所述随机测试总执行时 间的比例定位回放起始事件,然后生成新的测试脚本,通过执行新的测试脚本实现Android monkey随机测试事件的回放。应用本申请实施例所提供的方案,为Android monkey随机测 试提供了录制及回放功能,使得开发人员能够更有效地定位bug的具体产生原因,提高测 试效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图图图图图图图具体实施方式首先Android monkey测试进行简单介绍。图1所示为Android的体系结构示意图,Android的体系结构分为驱动层、Native层、Framework层和应用层。Android monkey 测试主要是从framework层进行测试事件注入,对应用程序进行测试,其中主要的涉及到 的操作包括两大部分事件发送与Activity切换。由于现有技术无本文档来自技高网...
【技术保护点】
一种Android测试事件记录方法,其特征在于,包括:实时生成随机测试事件流并执行;在执行随机测试事件流的过程中,记录每个测试事件执行时的系统环境信息;将随机测试事件流中的测试事件从随机模式转换为脚本模式;将脚本模式的测试事件写入测试记录文件,并在所述测试记录文件中记录每个测试事件的执行时的系统环境信息和所述随机测试事件流的总执行时间。
【技术特征摘要】
【专利技术属性】
技术研发人员:冉放,董海峰,林荣文,
申请(专利权)人:百度在线网络技术北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。