著录项信息
专利名称 | 移动应用自动化测试装置和方法 |
申请号 | CN201410782404.0 | 申请日期 | 2014-12-17 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-03-11 | 公开/公告号 | CN104407980A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F11/36 | IPC分类号 | G;0;6;F;1;1;/;3;6查看分类表>
|
申请人 | 用友软件股份有限公司 | 申请人地址 | 北京市海淀区北清路68号用友软件园
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 用友网络科技股份有限公司 | 当前权利人 | 用友网络科技股份有限公司 |
发明人 | 刘建男 |
代理机构 | 北京中恒高博知识产权代理有限公司 | 代理人 | 宋敏 |
摘要
本发明提供了一种移动应用自动化测试装置,包括:终端连接单元,用于在PC端安装待测应用程序,手机通过USB线连接PC端,在USB调试模式下识别到手机连接;测试脚本录制单元,用于利用android系统对待测应用程序进行录制、翻译和回放处理,和/或,利用iOS系统对待测应用程序进行录制和回放处理;任务测试单元,用于在自动化脚本中加入相应验证点,对待测应用程序进行验证,并输出验证结果。本发明还提供了一种移动应用自动化测试方法。通过本发明的技术方案,可以在现有的应用测试方式基础上,充分利用简单对象类型完成复杂对象类型的应用测试,建立多对象类型参与的应用测试的通用、统一测试思路。
1.一种移动应用自动化测试装置,其特征在于,包括:
终端连接单元,用于在PC端安装待测应用程序,手机通过USB线连接PC端,在USB调试模式下识别到手机连接;
测试脚本录制单元,用于当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理,和/或,利用iOS系统对待测应用程序进行录制和回放处理;
任务测试单元,用于基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,对待测应用程序进行验证,并输出验证结果,所述测试脚本录制单元,具体包括:
录制引擎处理模块,用于当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理;
和/或,
自动化引擎处理模块,用于当识别到有手机连接时,利用iOS系统对待测应用程序进行录制和回放处理,所述录制引擎处理模块利用android系统对待测应用程序进行录制的操作,进一步包括:
使用android系统自带的adb命令getevent,用户在手机上操作,动作以事件流的方式发送到PC端上,解析盖事件流获取用户在手机屏幕上的点击位置;和/或,使用adb命令截图功能,将手机屏幕截图发送到工具PC端的界面中,用户用鼠标点击界面中的手机截图,获取手机屏幕上的点击位置;同时配合使用sendkey命令向手机发指令,手机屏幕能够和PC端界面中的截图屏幕保持一致;
获取用户在手机上的行为动作和/或坐标信息后,使用uiautomator获得当前屏幕中包含所有对象的坐标、所占用屏幕面积的信息;
和/或,
所述录制引擎处理模块利用android系统对待测应用程序进行翻译的操作,进一步包括:
使用开源的Robotium框架作为回放引擎,使用java语言读取录制的脚本xml文件,将其内容转译成为Robotium框架所用的测试用例;
和/或,
所述录制引擎处理模块利用android系统对待测应用程序进行回放的操作,进一步包括:
预置回放环境,对待测应用程序的apk包进行解包重签名再打包,重新安装到手机上,使得翻译好的用例能够在手机上回放之前录制的动作;
和/或,
所述自动化引擎处理模块利用iOS系统对待测应用程序进行录制的操作,进一步包括:
利用UI Automation对Developer签名的应用程序或者运行在模拟器里的应用程序进行录制,取得用户的行为动作,以对象形式保存;
和/或,
所述自动化引擎处理模块利用iOS系统对待测应用程序进行回放的操作,进一步包括:
将待测应用程序进行Developer签名后,拿到源码后配置上developer的证书,直接通过Xcode编译安装到真实设备中,回放UI Automation的自动化测试脚本。
2.根据权利要求1所述的移动应用自动化测试装置,其特征在于,所述任务测试单元,具体包括:
测试任务验证模块,用于基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,将验证点翻译成能被回放的验证语句,对待测应用程序进行验证;
验证结果输出模块,用于验证完成后,查看相应的回放结果,配置邮箱地址,将日志定时发送给相应人员。
3.根据权利要求2所述的移动应用自动化测试装置,其特征在于,所述测试任务验证模块对待测应用程序进行验证的操作,进一步包括:
对待测应用程序的预期功能、正常条件和异常条件的验证;
和/或,
所述验证结果输出模块查看的回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图。
4.一种移动应用自动化测试方法,其特征在于,包括:
步骤202:在PC端安装待测应用程序,手机通过USB线连接PC端,在USB调试模式下识别到手机连接;
步骤204:当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理,和/或,利用iOS系统对待测应用程序进行录制和回放处理;
步骤206:基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,对待测应用程序进行验证,并输出验证结果,所述步骤204,具体包括:
步骤302:当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理;
和/或,
步骤304:当识别到有手机连接时,利用iOS系统对待测应用程序进行录制和回放处理,所述步骤302利用android系统对待测应用程序进行录制的操作,进一步包括:
使用android系统自带的adb命令getevent,用户在手机上操作,动作以事件流的方式发送到PC端上,解析盖事件流获取用户在手机屏幕上的点击位置;和/或,使用adb命令截图功能,将手机屏幕截图发送到工具PC端的界面中,用户用鼠标点击界面中的手机截图,获取手机屏幕上的点击位置;同时配合使用sendkey命令向手机发指令,手机屏幕能够和PC端界面中的截图屏幕保持一致;
获取用户在手机上的行为动作和/或坐标信息后,使用uiautomator获得当前屏幕中包含所有对象的坐标、所占用屏幕面积的信息;
和/或,
所述步骤302利用android系统对待测应用程序进行翻译的操作,进一步包括:
使用开源的Robotium框架作为回放引擎,使用java语言读取录制的脚本xml文件,将其内容转译成为Robotium框架所用的测试用例;
和/或,
所述步骤302利用android系统对待测应用程序进行回放的操作,进一步包括:
预置回放环境,对待测应用程序的apk包进行解包重签名再打包,重新安装到手机上,使得翻译好的用例能够在手机上回放之前录制的动作;
和/或,
所述步骤304利用iOS系统对待测应用程序进行录制的操作,进一步包括:
利用UI Automation对Developer签名的应用程序或者运行在模拟器里的应用程序进行录制,取得用户的行为动作,以对象形式保存;
和/或,
所述步骤304利用iOS系统对待测应用程序进行回放的操作,进一步包括:
将待测应用程序进行Developer签名后,拿到源码后配置上developer的证书,直接通过Xcode编译安装到真实设备中,回放UI Automation的自动化测试脚本。
5.根据权利要求4所述的移动应用自动化测试方法,其特征在于,所述步骤206,具体包括:
步骤402基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,将验证点翻译成能被回放的验证语句,对待测应用程序进行验证;
步骤404验证完成后,查看相应的回放结果,配置邮箱地址,将日志定时发送给相应人员。
6.根据权利要求5所述的移动应用自动化测试方法,其特征在于,所述步骤402对待测应用程序进行验证的操作,进一步包括:
对待测应用程序的预期功能、正常条件和异常条件的验证;
和/或,
所述步骤404查看的回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图。
移动应用自动化测试装置和方法\n技术领域\n[0001] 本发明涉及数据处理技术领域,具体地,涉及一种移动应用自动化测试装置和一种移动应用自动化测试方法。\n背景技术\n[0002] 软件的自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。测试人员按照测试用例编写自动化测试脚本,再由机器执行验证预先设置好的正常条件和异常条件。自动化脚本便可以在工程师们睡觉的时候运运行,并且记录测试结果;自动化测试还可以不断地重复某个动作而不会感到疲倦;在添加了新功能以后,还可以回归一些原有功能的测试以保证其不受影响。在此过程中节省了人力、时间和硬件资源,提高测试效率和准确率。\n[0003] 由于智能手机操作系统及UI与电脑相比的特殊性,为智能手机应用程序编写自动化测试脚本是一件非常复杂的事情,而且很难保证正确性。\n[0004] 目前智能手机几乎已经普及到人手一部的程度,移动应用自动化测试是该领域不可回避的一个课题。\n[0005] 因此,需要一种新的应用测试技术,可以在现有的应用测试方式基础上,充分利用简单对象类型完成复杂对象类型的应用测试,建立多对象类型参与的应用测试的通用、统一测试思路。\n发明内容\n[0006] 本发明正是基于上述问题,提出了一种新的应用测试技术,可以在现有的应用测试方式基础上,充分利用简单对象类型完成复杂对象类型的应用测试,建立多对象类型参与的应用测试的通用、统一测试思路。\n[0007] 有鉴于此,本发明提出了一种移动应用自动化测试装置,包括:终端连接单元,用于在PC端安装待测应用程序,手机通过USB线连接PC端,在USB调试模式下识别到手机连接;\n测试脚本录制单元,用于当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理,和/或,利用iOS系统对待测应用程序进行录制和回放处理;任务测试单元,用于基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,对待测应用程序进行验证,并输出验证结果。在该技术方案中,可以方便地生成自动化脚本,使得测试人员在编写脚本方面的投入大大降低。\n[0008] 在上述技术方案中,优选地,所述测试脚本录制单元,具体包括:录制引擎处理模块,用于当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理;和/或,自动化引擎处理模块,用于当识别到有手机连接时,利用iOS系统对待测应用程序进行录制和回放处理。在该技术方案中,可以被持续集成调用,在自动编译、做盘后进行黑盒测试,测试结果再持续集成系统读出展现,使开发全流程实现闭环。\n[0009] 在上述技术方案中,优选地,所述录制引擎处理模块利用android系统对待测应用程序进行录制的操作,进一步包括:使用android系统自带的adb命令getevent,用户在手机上操作,动作以事件流的方式发送到PC端上,解析盖事件流获取用户在手机屏幕上的点击位置;和/或,使用adb命令截图功能,将手机屏幕截图发送到工具PC端的界面中,用户用鼠标点击界面中的手机截图,获取手机屏幕上的点击位置;同时配合使用sendkey命令向手机发指令,手机屏幕能够和PC端界面中的截图屏幕保持一致;获取用户在手机上的行为动作和/或坐标信息后,使用uiautomator获得当前屏幕中包含所有对象的坐标、所占用屏幕面积的信息;和/或,所述录制引擎处理模块利用android系统对待测应用程序进行翻译的操作,进一步包括:使用开源的Robotium框架作为回放引擎,使用java语言读取录制的脚本xml文件,将其内容转译成为Robotium框架所用的测试用例;和/或,所述录制引擎处理模块利用android系统对待测应用程序进行回放的操作,进一步包括:预置回放环境,对待测应用程序的apk包进行解包重签名再打包,重新安装到手机上,使得翻译好的用例能够在手机上回放之前录制的动作;和/或,所述自动化引擎处理模块利用iOS系统对待测应用程序进行录制的操作,进一步包括:利用UI Automation对Developer签名的应用程序或者运行在模拟器里的应用程序进行录制,取得用户的行为动作,以对象形式保存;和/或,所述自动化引擎处理模块利用iOS系统对待测应用程序进行回放的操作,进一步包括:将待测应用程序进行Developer签名后,拿到源码后配置上developer的证书,直接通过Xcode编译安装到真实设备中,回放UI Automation的自动化测试脚本。在该技术方案中,可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率。\n[0010] 在上述技术方案中,优选地,所述任务测试单元,具体包括:测试任务验证模块,用于基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,将验证点翻译成能被回放的验证语句,对待测应用程序进行验证;验证结果输出模块,用于验证完成后,查看相应的回放结果,配置邮箱地址,将日志定时发送给相应人员。在该技术方案中,可以便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用。\n[0011] 在上述技术方案中,优选地,所述测试任务验证模块对待测应用程序进行验证的操作,进一步包括:对待测应用程序的预期功能、正常条件和异常条件的验证;和/或,所述验证结果输出模块查看的回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图。在该技术方案中,可以使机构的测试活动开展更加过程化,符合CMMI过程改进的思想。\n[0012] 根据本发明的又一个方面,还提出了一种移动应用自动化测试方法,包括:步骤\n202:在PC端安装待测应用程序,手机通过USB线连接PC端,在USB调试模式下识别到手机连接;步骤204:当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理,和/或,利用iOS系统对待测应用程序进行录制和回放处理;步骤206:基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,对待测应用程序进行验证,并输出验证结果。在该技术方案中,可以方便地生成自动化脚本,使得测试人员在编写脚本方面的投入大大降低。\n[0013] 在上述技术方案中,优选地,所述步骤204,具体包括:步骤302:当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理;和/或,步骤304:当识别到有手机连接时,利用iOS系统对待测应用程序进行录制和回放处理。在该技术方案中,可以被持续集成调用,在自动编译、做盘后进行黑盒测试,测试结果再持续集成系统读出展现,使开发全流程实现闭环。\n[0014] 在上述技术方案中,优选地,所述步骤302利用android系统对待测应用程序进行录制的操作,进一步包括:使用android系统自带的adb命令getevent,用户在手机上操作,动作以事件流的方式发送到PC端上,解析盖事件流获取用户在手机屏幕上的点击位置;和/或,使用adb命令截图功能,将手机屏幕截图发送到工具PC端的界面中,用户用鼠标点击界面中的手机截图,获取手机屏幕上的点击位置;同时配合使用sendkey命令向手机发指令,手机屏幕能够和PC端界面中的截图屏幕保持一致;获取用户在手机上的行为动作和/或坐标信息后,使用uiautomator获得当前屏幕中包含所有对象的坐标、所占用屏幕面积的信息;和/或,所述步骤302利用android系统对待测应用程序进行翻译的操作,进一步包括:使用开源的Robotium框架作为回放引擎,使用java语言读取录制的脚本xml文件,将其内容转译成为Robotium框架所用的测试用例;和/或,所述步骤302利用android系统对待测应用程序进行回放的操作,进一步包括:预置回放环境,对待测应用程序的apk包进行解包重签名再打包,重新安装到手机上,使得翻译好的用例能够在手机上回放之前录制的动作;和/或,所述步骤304利用iOS系统对待测应用程序进行录制的操作,进一步包括:利用UI Automation对Developer签名的应用程序或者运行在模拟器里的应用程序进行录制,取得用户的行为动作,以对象形式保存;和/或,所述步骤304利用iOS系统对待测应用程序进行回放的操作,进一步包括:将待测应用程序进行Developer签名后,拿到源码后配置上developer的证书,直接通过Xcode编译安装到真实设备中,回放UI Automation的自动化测试脚本。在该技术方案中,可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率。\n[0015] 在上述技术方案中,优选地,所述步骤206,具体包括:步骤402基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,将验证点翻译成能被回放的验证语句,对待测应用程序进行验证;步骤404验证完成后,查看相应的回放结果,配置邮箱地址,将日志定时发送给相应人员。在该技术方案中,可以便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用。\n[0016] 在上述技术方案中,优选地,所述步骤402对待测应用程序进行验证的操作,进一步包括:对待测应用程序的预期功能、正常条件和异常条件的验证;和/或,所述步骤404查看的回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图。\n在该技术方案中,可以使机构的测试活动开展更加过程化,符合CMMI过程改进的思想。\n[0017] 通过以上技术方案,可以在现有的应用测试方式基础上,充分利用简单对象类型完成复杂对象类型的应用测试,建立多对象类型参与的应用测试的通用、统一测试思路。\n附图说明\n[0018] 图1示出了根据本发明的实施例的移动应用自动化测试装置的框图;\n[0019] 图2示出了根据本发明的实施例的移动应用自动化测试方法的流程图;\n[0020] 图3示出了根据本发明的实施例的测试脚本录制单元的流程图;\n[0021] 图4示出了根据本发明的实施例的任务测试单元的流程图;\n[0022] 图5示出了根据本发明的实施例的工具示意图;\n[0023] 图6示出了根据本发明的实施例的业务流程图。\n具体实施方式\n[0024] 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。\n[0025] 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。\n[0026] 图1示出了根据本发明的实施例的移动应用自动化测试装置的框图。\n[0027] 如图1所示,根据本发明的实施例的移动应用自动化测试装置100,包括:终端连接单元102,用于在PC端安装待测应用程序,手机通过USB线连接PC端,在USB调试模式下识别到手机连接;测试脚本录制单元104,用于当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理,和/或,利用iOS系统对待测应用程序进行录制和回放处理;任务测试单元106,用于基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,对待测应用程序进行验证,并输出验证结果。在该技术方案中,可以方便地生成自动化脚本,使得测试人员在编写脚本方面的投入大大降低。\n[0028] 在上述技术方案中,优选地,测试脚本录制单元104,具体包括:录制引擎处理模块\n1042,用于当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理;和/或,自动化引擎处理模块1044,用于当识别到有手机连接时,利用iOS系统对待测应用程序进行录制和回放处理。在该技术方案中,可以被持续集成调用,在自动编译、做盘后进行黑盒测试,测试结果再持续集成系统读出展现,使开发全流程实现闭环。\n[0029] 在上述技术方案中,优选地,录制引擎处理模块1042利用android系统对待测应用程序进行录制的操作,进一步包括:使用android系统自带的adb命令getevent,用户在手机上操作,动作以事件流的方式发送到PC端上,解析盖事件流获取用户在手机屏幕上的点击位置;和/或,使用adb命令截图功能,将手机屏幕截图发送到工具PC端的界面中,用户用鼠标点击界面中的手机截图,获取手机屏幕上的点击位置;同时配合使用sendkey命令向手机发指令,手机屏幕能够和PC端界面中的截图屏幕保持一致;获取用户在手机上的行为动作和/或坐标信息后,使用uiautomator获得当前屏幕中包含所有对象的坐标、所占用屏幕面积的信息;和/或,录制引擎处理模块1042利用android系统对待测应用程序进行翻译的操作,进一步包括:使用开源的Robotium框架作为回放引擎,使用java语言读取录制的脚本xml文件,将其内容转译成为Robotium框架所用的测试用例;和/或,录制引擎处理模块1042利用android系统对待测应用程序进行回放的操作,进一步包括:预置回放环境,对待测应用程序的apk包进行解包重签名再打包,重新安装到手机上,使得翻译好的用例能够在手机上回放之前录制的动作;和/或,自动化引擎处理模块1044利用iOS系统对待测应用程序进行录制的操作,进一步包括:利用UI Automation对Developer签名的应用程序或者运行在模拟器里的应用程序进行录制,取得用户的行为动作,以对象形式保存;和/或,自动化引擎处理模块1044利用iOS系统对待测应用程序进行回放的操作,进一步包括:将待测应用程序进行Developer签名后,拿到源码后配置上developer的证书,直接通过Xcode编译安装到真实设备中,回放UI Automation的自动化测试脚本。在该技术方案中,可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率。\n[0030] 在上述技术方案中,优选地,任务测试单元106,具体包括:测试任务验证模块\n1062,用于基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,将验证点翻译成能被回放的验证语句,对待测应用程序进行验证;验证结果输出模块1064,用于验证完成后,查看相应的回放结果,配置邮箱地址,将日志定时发送给相应人员。在该技术方案中,可以便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用。\n[0031] 在上述技术方案中,优选地,测试任务验证模块1062对待测应用程序进行验证的操作,进一步包括:对待测应用程序的预期功能、正常条件和异常条件的验证;和/或,验证结果输出模块1064查看的回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图。在该技术方案中,可以使机构的测试活动开展更加过程化,符合CMMI过程改进的思想。\n[0032] 图2示出了根据本发明的实施例的移动应用自动化测试方法的流程图。\n[0033] 如图2所示,根据本发明的实施例的移动应用自动化测试方法,包括:步骤202:在PC端安装待测应用程序,手机通过USB线连接PC端,在USB调试模式下识别到手机连接;步骤\n204:当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理,和/或,利用iOS系统对待测应用程序进行录制和回放处理;步骤206:基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,对待测应用程序进行验证,并输出验证结果。在该技术方案中,可以方便地生成自动化脚本,使得测试人员在编写脚本方面的投入大大降低。\n[0034] 在上述技术方案中,优选地,如图3所示,步骤204,具体包括:步骤302:当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理;和/或,步骤\n304:当识别到有手机连接时,利用iOS系统对待测应用程序进行录制和回放处理。在该技术方案中,可以被持续集成调用,在自动编译、做盘后进行黑盒测试,测试结果再持续集成系统读出展现,使开发全流程实现闭环。\n[0035] 在上述技术方案中,优选地,步骤302利用android系统对待测应用程序进行录制的操作,进一步包括:使用android系统自带的adb命令getevent,用户在手机上操作,动作以事件流的方式发送到PC端上,解析盖事件流获取用户在手机屏幕上的点击位置;和/或,使用adb命令截图功能,将手机屏幕截图发送到工具PC端的界面中,用户用鼠标点击界面中的手机截图,获取手机屏幕上的点击位置;同时配合使用sendkey命令向手机发指令,手机屏幕能够和PC端界面中的截图屏幕保持一致;获取用户在手机上的行为动作和/或坐标信息后,使用uiautomator获得当前屏幕中包含所有对象的坐标、所占用屏幕面积的信息;和/或,步骤302利用android系统对待测应用程序进行翻译的操作,进一步包括:使用开源的Robotium框架作为回放引擎,使用java语言读取录制的脚本xml文件,将其内容转译成为Robotium框架所用的测试用例;和/或,步骤302利用android系统对待测应用程序进行回放的操作,进一步包括:预置回放环境,对待测应用程序的apk包进行解包重签名再打包,重新安装到手机上,使得翻译好的用例能够在手机上回放之前录制的动作;和/或,步骤304利用iOS系统对待测应用程序进行录制的操作,进一步包括:利用UI Automation对Developer签名的应用程序或者运行在模拟器里的应用程序进行录制,取得用户的行为动作,以对象形式保存;和/或,步骤304利用iOS系统对待测应用程序进行回放的操作,进一步包括:将待测应用程序进行Developer签名后,拿到源码后配置上developer的证书,直接通过Xcode编译安装到真实设备中,回放UI Automation的自动化测试脚本。在该技术方案中,可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率。\n[0036] 在上述技术方案中,优选地,如图4所示,步骤206,具体包括:步骤402基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,将验证点翻译成能被回放的验证语句,对待测应用程序进行验证;步骤404验证完成后,查看相应的回放结果,配置邮箱地址,将日志定时发送给相应人员。在该技术方案中,可以便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用。\n[0037] 在上述技术方案中,优选地,步骤402对待测应用程序进行验证的操作,进一步包括:对待测应用程序的预期功能、正常条件和异常条件的验证;和/或,步骤404查看的回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图。在该技术方案中,可以使机构的测试活动开展更加过程化,符合CMMI过程改进的思想。\n[0038] 本发明的技术方案,正是为了解决现有技术中主流智能手机上应用程序自动化测试问题的工具;鉴于智能手机操作系统绝大部分被android和iOS占据,本发明的技术方案对android和iOS两个系统提供支持。\n[0039] 本发明的技术方案,提供了一种移动应用自动化测试工具,在android、iOS主流智能手机操作系统上实现对其应用的自动化测试。本发明的技术方案需要解决的技术问题如下:\n[0040] 1、自动化脚本生成。以录制的方式生成脚本,代替以往人工编写脚本的方式。\n[0041] 2、脚本可移植性和复用性。工具录制出的自动化脚本以静态文本保存,文件本身不依赖于工具。\n[0042] 3、脚本对回放环境的支持。自动化测试脚本中以对象的形式保存行为动作。只要被测程序中对象存在,而无须考虑回放设备的分辨率、设置等因素即可回放验证。\n[0043] 4、 回放脚本与回放框架相结合。选用性能优异的回放框架对脚本进行回放,节省系统资源。\n[0044] 解决本发明技术问题的技术方案:\n[0045] ㈠工具示意图。参见图5。\n[0046] ㈡工具的UI及操作。\n[0047] 该工具使用java语言编写,界面通过swt生成,简洁易懂。其操作流程是,在PC端安装并打开工具,手机通过USB线连接电脑并开打USB调试模式,这时工具会识别有手机连接(iOS系统手机连接时需要PC端也是苹果的操作系统)。再打开被测应用程序,按录制用例-翻译用例-回放用例的步骤进行。\n[0048] ㈢录制用例\n[0049] 1.android系统录制用例:\n[0050] 在android系统中,有两种采集用户行为动作的方式,第一种方式使用android系统自带的adb命令getevent,用户在手机上操作,动作会以事件流的方式发送到电脑上,解析这个事件流即可得到用户在手机屏幕上的点击位置。第二种方式使用adb命令截图功能,将手机屏幕截图发送到工具PC端的界面中,用户用鼠标点击界面中的手机截图,工具即可获得手机屏幕上的点击位置。同时配合使用sendkey命令向手机发指令,手机屏幕便可以和PC端界面中的截图屏幕保持一致。\n[0051] 现在已经获得了用户在手机上的行为动作,也就是一些坐标信息。如click(200,\n105)、slip(100,600,230,100)这样动作和坐标的组合,但这样的信息在不同分辨率的手机上回放会有问题。使用uiautomator可以获得当前屏幕中所有对象的坐标、所占用屏幕面积等信息,这样就可以把click(200,105)转化为click(objectName)。\n[0052] 2.iOS系统录制用例:\n[0053] UI Automation可以对Developer签名的应用程序或者运行在模拟器里的应用程序进行录制。该工具封装了UI Automation,利用其录制功能可以取得用户的行为动作。用例动作如下:\n[0054] Var target = UITarget.localTarget();\n[0055] 这样的脚本也是以对象形式保存的,这和我们工具的设计初衷保持一致。\n[0056] ㈣翻译用例\n[0057] 1.android系统使用开源的Robotium框架作为回放引擎。翻译时使用java语言读取录制的脚本xml文件,将其内容转译成为Robotium框架所用的测试用例。因为手机上操作种类有限,我们只需要关心诸如点击、双击、放大、缩小、滑动、拖动等动作即可。\n[0058] 2.iOS系统的用例不需要再次翻译,因为UI Automation录制出的脚本已经是可用的测试用例了。\n[0059] ㈤回放用例\n[0060] 1.android系统中回放:\n[0061] 用例的回放动作会在手机屏幕上显示,但在回放执行前,需要预置工具预置回放环境。对于android系统的应用程序而言,只有重签名后才能被Robotium框架所认识,所以该工具要对被测程序的apk包进行解包重签名再打包,重新安装到手机上,这样翻译好的用例就可以在手机上回放之前录制的动作。\n[0062] 2.iOS系统中回放:\n[0063] 被测程序同样需要Developer签名,我们拿到源码后配置上developer的证书,直接通过Xcode编译安装到真实设备中,就可以回放UI Automation的自动化测试脚本了。\n[0064] ㈥结果验证\n[0065] 记用户的行为动作重现并不是最终目的,我们要实现对程序功能的验证。在自动化脚本中加入一些验证点可以实现对预期功能、条件的验证。使用工具使用assert(object,value) 这样的格式向脚本中插入验证点,验证点会被翻译成能被回放框架执行的验证语句,实现对程序正常条件和异常条件的判断。\n[0066] ㈦日志\n[0067] 自动化用例往往是以无人执守的方式运行的,其运行结果要通过完整的日志查看。在回放任务完成后,在工具中可以查看回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图等等。同时也可以配置邮箱地址,将日志定时发送给相关责任人。\n[0068] ㈧、业务流程图,参见图6。\n[0069] 与现有技术相比,本发明的技术方案,至少可以达到以下有益效果:\n[0070] ⑴可以方便的生成自动化脚本,使得测试人员在编写脚本方面的投入大大降低。\n它还同时兼容Android和iOS两种主流手机操作系统,使得关注重点放在业务流程上而不是频繁的切换、配置测试环境。\n[0071] ⑵可以被持续集成调用,在自动编译、做盘后进行黑盒测试,测试结果再持续集成系统读出展现,使开发全流程实现闭环。\n[0072] ⑶自动化测试可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率,其次自动化测试更便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用,这个特点在功能测试和回归测试中尤其具有意义。\n此外,测试流程自动化管理可以使机构的测试活动开展更加过程化,符合CMMI过程改进的思想。\n[0073] 以上结合附图详细说明了本发明的技术方案,考虑到相关技术中没有简便的、统一的针对复杂类型应用测试的解决办法。现有的应用测试无法完成有复杂类型参与的应用测试过程。因此,本发明提出了一种移动应用自动化测试装置和一种移动应用自动化测试方法,可以在现有的应用测试方式基础上,充分利用简单对象类型完成复杂对象类型的应用测试,建立多对象类型参与的应用测试的通用、统一测试思路。\n[0074] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2017-07-11
- 2016-01-06
著录事项变更
申请人由用友软件股份有限公司变更为用友网络科技股份有限公司
地址由100094 北京市海淀区北清路68号用友软件园变更为100094 北京市海淀区北清路68号用友软件园
- 2015-04-08
实质审查的生效
IPC(主分类): G06F 11/36
专利申请号: 201410782404.0
申请日: 2014.12.17
- 2015-03-11
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-12-26
|
2012-07-30
| | |
2
| |
2014-01-29
|
2012-07-12
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |