著录项信息
专利名称 | 一种基于Monkey命令的自动化测试方法及系统 |
申请号 | CN201610100837.2 | 申请日期 | 2016-02-24 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2016-07-13 | 公开/公告号 | CN105760301A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F11/36 | IPC分类号 | G;0;6;F;1;1;/;3;6查看分类表>
|
申请人 | 惠州TCL移动通信有限公司 | 申请人地址 | 广东省惠州市仲恺高新区和畅七路西86号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 惠州TCL移动通信有限公司 | 当前权利人 | 惠州TCL移动通信有限公司 |
发明人 | 魏亚奇;唐苗苗;余艳萍 |
代理机构 | 深圳市君胜知识产权代理事务所(普通合伙) | 代理人 | 王永文;刘文求 |
摘要
本发明公开了一种基于Monkey命令的自动化测试方法及系统,方法包括:当检测到安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包;测试平台中的Monkey工具接收用户的操作指令,设置Monkey工具中的测试方式,及配置测试项;根据Monkey工具中的测试方式及测试项对安卓设置中的应用程序包进行测试,并实时打印测试的日志信息和测试异常信息;当安卓设备的应用程序包均测试完毕,则根据报告模板生成测试报告,并保存测试日志。本发明可自动获取连接的安卓设备的信息,同时测试多台安卓设备,根据设置自动生成测试命令并连续发送,还可实时分析报告异常信息并最终生成测试报告,方便对应用程序包的自动化测试。
1.一种基于Monkey命令的自动化测试方法,其特征在于,包括以下步骤:
A、当检测到安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包;
B、测试平台中的Monkey工具接收用户的操作指令,设置Monkey工具中的测试方式,及配置测试项;
C、根据Monkey工具中的测试方式及测试项对安卓设置中的应用程序包进行测试,并实时打印测试的日志信息和测试异常信息;
D、当安卓设备的应用程序包均测试完毕时,则根据预先存储的报告模板生成测试报告,并保存测试日志;
所述测试方式包括单应用顺序测试方式和多应用交叉测试方式;
所述测试项包括测试时长、测试命令、log保存位置、log分段大小、测试完成时提示音乐、自动打开测试报告;
所述步骤A具体包括:
A1、测试平台加载安卓设备,获取设备列表,并判断设备列表中的安卓设备是否与测试平台连接成功;
A2、当设备列表中的安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包,并获取待测试的应用程序包所对应应用程序的名称和包名;
当以多应用交互测试方式进行测试时,则分为选取黑名单测试、白名单测试;
所述多应用交叉测试方式在一次设置完成后只发出一次测试指令,所述测试指令根据设置进行交互测试所选择的多个应用。
2.根据权利要求1所述基于Monkey命令的自动化测试方法,其特征在于,所述步骤C具体包括:
C1、判断Monkey工具中的测试方式是单应用顺序测试方式,还是多应用交叉测试方式;
C2、当测试方式是单应用顺序测试方式时,则加载安卓设备的应用程序包;
C3、判断安卓设备的应用程序包是否加载成功,当加载成功时则执行步骤C4,当加载不成功时则执行步骤C14;
C4、设置本地应用,选择测试应用,调整测试应用的顺序,并定义测试时长;
C5、开始运行;
C6、判断是否达到设置的测试时长,当达到测试时长时则执行步骤C7,当未达到测试时长则执行步骤C12;
C7、停止Monkey进程,停止打印和解析Monkey日志;
C8、记录测试时长和出错信息;
C9、判断当前的应用程序包是否为安卓设备中被选定的多个待测试的应用程序包中的最后一个测试包,若当前的应用程序包是最后一个测试包则执行步骤C11,若当前的应用程序包不是最后一个测试包则执行步骤C10;
C10、继续对当前的应用程序包的下一个测试包进行测试,并返回执行步骤C5;
C11、停止测试,并执行步骤D;
C12、判断Monkey进程是否存在,当Monkey进程存在时则执行步骤C13,当Monkey进程不存在时则执行步骤C8;
C13、打印Monkey日志,解析Monkey日志,抓取异常信息,并返回执行步骤C6;
C14、加载安卓设备的应用程序包是否超出预设的时间阈值,当加载超出所述时间阈值则执行步骤C15,当加载未超出所述时间阈值则执行步骤C2;
C15、结束测试。
3.根据权利要求1所述基于Monkey命令的自动化测试方法,其特征在于,所述测试异常信息包括错误包名、错误类型、第一次出现的时间、出现的次数、错误的详细信息截取。
4.根据权利要求1所述基于Monkey命令的自动化测试方法,其特征在于,所述测试报告为excel格式的测试报告。
5.根据权利要求1所述基于Monkey命令的自动化测试方法,其特征在于,所述测试日志包括Monkey日志,程序日志信息和测试结束时的状态log信息。
6.一种基于Monkey命令的自动化测试系统,其特征在于,包括:
设备管理模块,用于当检测到安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包;
配置管理模块,用于测试平台中的Monkey工具接收用户的操作指令,设置Monkey工具中的测试方式,及配置测试项;
运行管理模块,用于根据Monkey工具中的测试方式及测试项对安卓设置中的应用程序包进行测试,并实时打印测试的日志信息和测试异常信息;
统计报告模块,用于当安卓设备的应用程序包均测试完毕时,则根据预先存储的报告模板生成测试报告,并保存测试日志;
所述测试方式包括单应用顺序测试方式和多应用交叉测试方式;
所述测试项包括测试时长、测试命令、log保存位置、log分段大小、测试完成时提示音乐、自动打开测试报告;
测试平台加载安卓设备,获取设备列表,并判断设备列表中的安卓设备是否与测试平台连接成功;
当设备列表中的安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包,并获取待测试的应用程序包所对应应用程序的名称和包名;
当以多应用交互测试方式进行测试时,则分为选取黑名单测试、白名单测试;
所述多应用交叉测试方式在一次设置完成后只发出一次测试指令,所述测试指令根据设置进行交互测试所选择的多个应用。
一种基于Monkey命令的自动化测试方法及系统\n技术领域\n[0001] 本发明涉及自动化测试技术领域,尤其涉及的是一种基于Monkey命令的自动化测试方法及系统。\n背景技术\n[0002] Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。\n[0003] Monkey测试是Android自动化测试的一种手段。但是原来进行Monkey测试只能通过手动在命令窗口输入相应的shell命令,一次只能操作一台Android设备,不能连续发送测试指令,也不能自动收集和分析测试结果,容易出错,效率较低。\n[0004] 因此,现有技术还有待于改进和发展。\n发明内容\n[0005] 鉴于上述现有技术的不足,本发明的目的在于提供一种基于Monkey命令的自动化测试方法及系统,解决了现有技术中进行Monkey测试只能通过手动在命令窗口输入相应的shell命令,一次只能操作一台Android设备,不能连续发送测试指令,也不能自动收集和分析测试结果,容易出错,效率较低的缺陷。\n[0006] 本发明的技术方案如下:\n[0007] 一种基于Monkey命令的自动化测试方法,其中,包括以下步骤:\n[0008] A、当检测到安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包;\n[0009] B、测试平台中的Monkey工具接收用户的操作指令,设置Monkey工具中的测试方式,及配置测试项;\n[0010] C、根据Monkey工具中的测试方式及测试项对安卓设置中的应用程序包进行测试,并实时打印测试的日志信息和测试异常信息;\n[0011] D、当安卓设备的应用程序包均测试完毕时,则根据预先存储的报告模板生成测试报告,并保存测试日志。\n[0012] 所述基于Monkey命令的自动化测试方法,其中,所述步骤A具体包括:\n[0013] A1、测试平台加载安卓设备,获取设备列表,并判断设备列表中的安卓设备是否与测试平台连接成功;\n[0014] A2、当设备列表中的安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包,并获取待测试的应用程序包所对应应用程序的名称和包名。\n[0015] 所述基于Monkey命令的自动化测试方法,其中,所述测试方式包括单应用顺序测试方式和多应用交叉测试方式。\n[0016] 所述基于Monkey命令的自动化测试方法,其中,所述测试项包括测试时长、测试命令、log保存位置、log分段大小、测试完成时提示音乐、自动打开测试报告。\n[0017] 所述基于Monkey命令的自动化测试方法,其中,所述步骤C具体包括:\n[0018] C1、判断Monkey工具中的测试方式的测试方式是单应用顺序测试方式,还是多应用交叉测试方式;\n[0019] C2、当测试方式是单应用顺序测试方式时,则加载安卓设备的应用程序包;\n[0020] C3、判断安卓设备的应用程序包是否加载成功,当加载成功时则执行步骤C4,当加载不成功时则执行步骤C14;\n[0021] C4、设置本地应用,选择测试应用,调整测试应用的顺序,并定义测试时长;\n[0022] C5、开始运行;\n[0023] C6、判断是否达到设置的测试时长,当达到测试时长时则执行步骤C7,当未达到测试时长则执行步骤C12;\n[0024] C7、停止Monkey进程,停止打印和解析Monkey日志;\n[0025] C8、记录测试时长和出错信息;\n[0026] C9、判断当前的应用程序包是否为安卓设备中被选定的多个待测试的应用程序包中的最后一个测试包,若当前的应用程序包是最后一个测试包则执行步骤C11,若当前的应用程序包不是最后一个测试包则执行步骤C10;\n[0027] C10、继续对当前的应用程序包的下一个测试包进行测试,并返回执行步骤C5;\n[0028] C11、停止测试,并执行步骤D;\n[0029] C12、判断Monkey进程是否存在,当Monkey进程存在时则执行步骤C13,当Monkey进程不存在时则执行步骤C8;\n[0030] C13、打印Monkey日志,解析Monkey日志,抓取异常信息,并返回执行步骤C6;\n[0031] C14、加载安卓设备的应用程序包是否超出预设的时间阈值,当加载超出所述时间阈值则执行步骤C15,当加载未超出所述时间阈值则执行步骤C2;\n[0032] C15、结束测试。\n[0033] 所述基于Monkey命令的自动化测试方法,其中,所述测试异常信息包括错误包名、错误类型、第一次出现的时间、出现的次数、错误的详细信息截取。\n[0034] 所述基于Monkey命令的自动化测试方法,其中,所述测试报告为excel格式的测试报告。\n[0035] 所述基于Monkey命令的自动化测试方法,其中,所述测试日志包括Monkey日志,程序日志信息和测试结束时的状态log信息。\n[0036] 一种基于Monkey命令的自动化测试系统,其中,包括:\n[0037] 设备管理模块,用于当检测到安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包;\n[0038] 配置管理模块,用于测试平台中的Monkey工具接收用户的操作指令,设置Monkey工具中的测试方式,及配置测试项;\n[0039] 运行管理模块,用于根据Monkey工具中的测试方式及测试项对安卓设置中的应用程序包进行测试,并实时打印测试的日志信息和测试异常信息;\n[0040] 统计报告模块,用于当安卓设备的应用程序包均测试完毕时,则根据预先存储的报告模板生成测试报告,并保存测试日志。\n[0041] 所述基于Monkey命令的自动化测试系统,其中,所述测试方式包括单应用顺序测试方式和多应用交叉测试方式。\n[0042] 本发明所提供的一种基于Monkey命令的自动化测试方法及系统,方法包括:当检测到安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包;测试平台中的Monkey工具接收用户的操作指令,设置Monkey工具中的测试方式,及配置测试项;根据Monkey工具中的测试方式及测试项对安卓设置中的应用程序包进行测试,并实时打印测试的日志信息和测试异常信息;当安卓设备的应用程序包均测试完毕时,则根据预先存储的报告模板生成测试报告,并保存测试日志。本发明可自动获取连接的安卓设备的信息,同时测试多台安卓设备,根据设置自动生成测试命令并连续发送测试命令,还可实时分析报告异常信息并最终生成测试报告。\n附图说明\n[0043] 图1为本发明所述基于Monkey命令的自动化测试方法较佳实施例的流程图。\n[0044] 图2为本发明所述基于Monkey命令的自动化测试方法中以单应用顺序测试方式进行自动化测试的具体流程图。\n[0045] 图3为本发明所述基于Monkey命令的自动化测试方法中Monkey工具的界面示意图。\n[0046] 图4为本发明所述基于Monkey命令的自动化测试系统较佳实施例的功能模块框图。\n具体实施方式\n[0047] 本发明提供一种基于Monkey命令的自动化测试方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0048] 请参见图1,其为本发明所述基于Monkey命令的自动化测试方法较佳实施例的流程图。如图1所示,所述基于Monkey命令的自动化测试方法,包括以下步骤:\n[0049] 步骤S100、当检测到安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包;\n[0050] 步骤S200、测试平台中的Monkey工具接收用户的操作指令,设置Monkey工具中的测试方式,及配置测试项;\n[0051] 步骤S300、根据Monkey工具中的测试方式及测试项对安卓设置中的应用程序包进行测试,并实时打印测试的日志信息和测试异常信息;\n[0052] 步骤S400、当安卓设备的应用程序包均测试完毕时,则根据预先存储的报告模板生成测试报告,并保存测试日志。\n[0053] 本发明的实施例中,采用四个主要流程来实现安卓设备的应用程序包的自动化测试,分别为:设备管理,配置管理,运行管理和统计报告。在上述四个流程中进行应用程序包的Monkey测试,并得到测试结果。\n[0054] 具体的,采用android 应用开发技术编写隐式apk应用得到测试设备的应用程序包的模块名;通过ADB通信原理实现了“心跳机制”,即实时地监测测试设备的连接状态;通过配置项封装Monkey命令给安卓设备发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的Android应用进行压力测试;采用Java POI技术,实现了对测试结果能够自动生成excel测试报告;采用Inno Setup+exe4j编译生成windows安装包供用户使用。而在Monkey工具的前台界面中,采用Java Swt /Jface技术,呈现给用户良好的视图界面。\n[0055] 进一步的,所述步骤S100具体包括:\n[0056] 步骤S101、测试平台加载安卓设备,获取设备列表,并判断设备列表中的安卓设备是否与测试平台连接成功;\n[0057] 步骤S102、当设备列表中的安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包,并获取待测试的应用程序包所对应应用程序的名称和包名。\n[0058] 在步骤S101-S102中,测试平台(如平板电脑或台式电脑)先自动获得测试设备的设备名;然后时时获取测试设备的连接状态,查看与测试平台有线或无线连接的安卓设备是否是正常连接,连接成功时则呈现绿色标志,当连接失败时时则呈现红色警告标志;最后获取安卓设备中可测试的应用程序的名称和包名。\n[0059] 进一步的,如图2所示,所述步骤S300中以单应用顺序测试方式进行自动化测试的具体流程包括:\n[0060] 步骤S301、判断Monkey工具中的测试方式的测试方式是单应用顺序测试方式,还是多应用交叉测试方式;\n[0061] 步骤S302、当测试方式是单应用顺序测试方式时,则加载安卓设备的应用程序包(即测试包);\n[0062] 步骤S303、判断安卓设备的应用程序包是否加载成功,当加载成功时则执行步骤S304,当加载不成功时则执行步骤S314;\n[0063] 步骤S304、设置本地应用,选择测试应用,调整测试应用的顺序,并定义测试时长;\n[0064] 步骤S305、开始运行;\n[0065] 步骤S306、判断是否达到设置的测试时长,当达到测试时长时则执行步骤S307,当未达到测试时长则执行步骤S312;\n[0066] 步骤S307、停止Monkey进程,停止打印和解析Monkey日志;\n[0067] 步骤S308、记录测试时长和出错信息;\n[0068] 步骤S309、判断当前的应用程序包是否为安卓设备中被选定的多个待测试的应用程序包中的最后一个测试包,若当前的应用程序包是最后一个测试包则执行步骤S311,若当前的应用程序包不是最后一个测试包则执行步骤S310;\n[0069] 步骤S310、继续对当前的应用程序包的下一个测试包进行测试,并返回执行步骤S305;\n[0070] 步骤S311、停止测试,并执行步骤S400;\n[0071] 步骤S312、判断Monkey进程是否存在,当Monkey进程存在时则执行步骤S313,当Monkey进程不存在时则执行步骤S308;\n[0072] 步骤S313、打印Monkey日志,解析Monkey日志,抓取异常信息,并返回执行步骤S306;\n[0073] 步骤S314、加载安卓设备的应用程序包是否超出预设的时间阈值,当加载超出所述时间阈值则执行步骤S315,当加载未超出所述时间阈值则执行步骤S302;\n[0074] 步骤S315、结束测试。\n[0075] 若步骤S300中以多应用交互测试方式进行测试时,则分为选取多个应用测试,黑名单测试,白名单测试。与单应用顺序测试的区别就:一次设置完成后只发出一次测试指令,该指令根据设置交互测试选择的多个应用。\n[0076] 具体的,所述测试项包括测试时长、测试命令、log保存位置、log分段大小、测试完成时提示音乐、自动打开测试报告;所述测试异常信息包括错误包名、错误类型、第一次出现的时间、出现的次数、错误的详细信息截取;所述测试报告为excel格式的测试报告;所述测试日志包括Monkey日志,程序日志信息(即logcat及monkey log日志信息)和测试结束时的必要状态log信息。\n[0077] 如图3所述,其为本发明所述基于Monkey命令的自动化测试方法中Monkey工具的界面示意图。在Monkey工具的界面中,可进行测试方式的选取、测试项的配置等操作。\n[0078] 可见,本发明可自动获取连接的安卓设备的信息,同时测试多台安卓设备,根据设置自动生成测试命令并连续发送测试命令,还可实时分析报告异常信息并最终生成测试报告。\n[0079] 基于上述方法实施例,本发明还提供了一种基于Monkey命令的自动化测试系统。\n如图4所示,所述基于Monkey命令的自动化测试系统,包括:\n[0080] 设备管理模块100,用于当检测到安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包;\n[0081] 配置管理模块200,用于测试平台中的Monkey工具接收用户的操作指令,设置Monkey工具中的测试方式,及配置测试项;\n[0082] 运行管理模块300,用于根据Monkey工具中的测试方式及测试项对安卓设置中的应用程序包进行测试,并实时打印测试的日志信息和测试异常信息;\n[0083] 统计报告模块400,用于当安卓设备的应用程序包均测试完毕时,则根据预先存储的报告模板生成测试报告,并保存测试日志。\n[0084] 进一步的,在所述基于Monkey命令的自动化测试系统中,所述测试方式包括单应用顺序测试方式和多应用交叉测试方式。\n[0085] 进一步的,在所述基于Monkey命令的自动化测试系统中,所述测试项包括测试时长、测试命令、log保存位置、log分段大小、测试完成时提示音乐、自动打开测试报告。\n[0086] 进一步的,在所述基于Monkey命令的自动化测试系统中,所述测试异常信息包括错误包名、错误类型、第一次出现的时间、出现的次数、错误的详细信息截取。\n[0087] 进一步的,在所述基于Monkey命令的自动化测试系统中,所述测试报告为excel格式的测试报告。\n[0088] 进一步的,在所述基于Monkey命令的自动化测试系统中,所述测试日志包括Monkey日志,程序日志信息和测试结束时的状态log信息。\n[0089] 综上所述,本发明所提供的一种基于Monkey命令的自动化测试方法及系统,方法包括:当检测到安卓设备与测试平台连接成功时,则加载安卓设备的应用程序包;测试平台中的Monkey工具接收用户的操作指令,设置Monkey工具中的测试方式,及配置测试项;根据Monkey工具中的测试方式及测试项对安卓设置中的应用程序包进行测试,并实时打印测试的日志信息和测试异常信息;当安卓设备的应用程序包均测试完毕时,则根据预先存储的报告模板生成测试报告,并保存测试日志。本发明可自动获取连接的安卓设备的信息,同时测试多台安卓设备,根据设置自动生成测试命令并连续发送测试命令,还可实时分析报告异常信息并最终生成测试报告。\n[0090] 应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
法律信息
- 2019-07-09
- 2017-01-18
实质审查的生效
IPC(主分类): G06F 11/36
专利申请号: 201610100837.2
申请日: 2016.02.24
- 2016-07-13
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2014-08-06
|
2014-05-21
| | |
2
| |
2012-04-18
|
2011-09-30
| | |
3
| |
2015-02-04
|
2014-11-28
| | |
4
| | 暂无 |
2013-01-10
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |