CN104407980B - 移动应用自动化测试装置和方法 - Google Patents
移动应用自动化测试装置和方法 Download PDFInfo
- Publication number
- CN104407980B CN104407980B CN201410782404.0A CN201410782404A CN104407980B CN 104407980 B CN104407980 B CN 104407980B CN 201410782404 A CN201410782404 A CN 201410782404A CN 104407980 B CN104407980 B CN 104407980B
- Authority
- CN
- China
- Prior art keywords
- application program
- measured
- mobile phone
- recorded
- test
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
- Telephone Function (AREA)
Abstract
本发明提供了一种移动应用自动化测试装置,包括:终端连接单元,用于在PC端安装待测应用程序,手机通过USB线连接PC端,在USB调试模式下识别到手机连接;测试脚本录制单元,用于利用android系统对待测应用程序进行录制、翻译和回放处理,和/或,利用iOS系统对待测应用程序进行录制和回放处理;任务测试单元,用于在自动化脚本中加入相应验证点,对待测应用程序进行验证,并输出验证结果。本发明还提供了一种移动应用自动化测试方法。通过本发明的技术方案,可以在现有的应用测试方式基础上,充分利用简单对象类型完成复杂对象类型的应用测试,建立多对象类型参与的应用测试的通用、统一测试思路。
Description
技术领域
本发明涉及数据处理技术领域,具体地,涉及一种移动应用自动化测试装置和一种移动应用自动化测试方法。
背景技术
软件的自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。测试人员按照测试用例编写自动化测试脚本,再由机器执行验证预先设置好的正常条件和异常条件。自动化脚本便可以在工程师们睡觉的时候运运行,并且记录测试结果;自动化测试还可以不断地重复某个动作而不会感到疲倦;在添加了新功能以后,还可以回归一些原有功能的测试以保证其不受影响。在此过程中节省了人力、时间和硬件资源,提高测试效率和准确率。
由于智能手机操作系统及UI与电脑相比的特殊性,为智能手机应用程序编写自动化测试脚本是一件非常复杂的事情,而且很难保证正确性。
目前智能手机几乎已经普及到人手一部的程度,移动应用自动化测试是该领域不可回避的一个课题。
因此,需要一种新的应用测试技术,可以在现有的应用测试方式基础上,充分利用简单对象类型完成复杂对象类型的应用测试,建立多对象类型参与的应用测试的通用、统一测试思路。
发明内容
本发明正是基于上述问题,提出了一种新的应用测试技术,可以在现有的应用测试方式基础上,充分利用简单对象类型完成复杂对象类型的应用测试,建立多对象类型参与的应用测试的通用、统一测试思路。
有鉴于此,本发明提出了一种移动应用自动化测试装置,包括:终端连接单元,用于在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的自动化测试脚本。在该技术方案中,可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率。
在上述技术方案中,优选地,所述任务测试单元,具体包括:测试任务验证模块,用于基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,将验证点翻译成能被回放的验证语句,对待测应用程序进行验证;验证结果输出模块,用于验证完成后,查看相应的回放结果,配置邮箱地址,将日志定时发送给相应人员。在该技术方案中,可以便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用。
在上述技术方案中,优选地,所述测试任务验证模块对待测应用程序进行验证的操作,进一步包括:对待测应用程序的预期功能、正常条件和异常条件的验证;和/或,所述验证结果输出模块查看的回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图。在该技术方案中,可以使机构的测试活动开展更加过程化,符合CMMI过程改进的思想。
根据本发明的又一个方面,还提出了一种移动应用自动化测试方法,包括:步骤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系统对待测应用程序进行录制的操作,进一步包括:利用UIAutomation对Developer签名的应用程序或者运行在模拟器里的应用程序进行录制,取得用户的行为动作,以对象形式保存;和/或,所述步骤304利用iOS系统对待测应用程序进行回放的操作,进一步包括:将待测应用程序进行Developer签名后,拿到源码后配置上developer的证书,直接通过Xcode编译安装到真实设备中,回放UI Automation的自动化测试脚本。在该技术方案中,可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率。
在上述技术方案中,优选地,所述步骤206,具体包括:步骤402基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,将验证点翻译成能被回放的验证语句,对待测应用程序进行验证;步骤404验证完成后,查看相应的回放结果,配置邮箱地址,将日志定时发送给相应人员。在该技术方案中,可以便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用。
在上述技术方案中,优选地,所述步骤402对待测应用程序进行验证的操作,进一步包括:对待测应用程序的预期功能、正常条件和异常条件的验证;和/或,所述步骤404查看的回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图。在该技术方案中,可以使机构的测试活动开展更加过程化,符合CMMI过程改进的思想。
通过以上技术方案,可以在现有的应用测试方式基础上,充分利用简单对象类型完成复杂对象类型的应用测试,建立多对象类型参与的应用测试的通用、统一测试思路。
附图说明
图1示出了根据本发明的实施例的移动应用自动化测试装置的框图;
图2示出了根据本发明的实施例的移动应用自动化测试方法的流程图;
图3示出了根据本发明的实施例的测试脚本录制单元的流程图;
图4示出了根据本发明的实施例的任务测试单元的流程图;
图5示出了根据本发明的实施例的工具示意图;
图6示出了根据本发明的实施例的业务流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的移动应用自动化测试装置的框图。
如图1所示,根据本发明的实施例的移动应用自动化测试装置100,包括:终端连接单元102,用于在PC端安装待测应用程序,手机通过USB线连接PC端,在USB调试模式下识别到手机连接;测试脚本录制单元104,用于当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理,和/或,利用iOS系统对待测应用程序进行录制和回放处理;任务测试单元106,用于基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,对待测应用程序进行验证,并输出验证结果。在该技术方案中,可以方便地生成自动化脚本,使得测试人员在编写脚本方面的投入大大降低。
在上述技术方案中,优选地,测试脚本录制单元104,具体包括:录制引擎处理模块1042,用于当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理;和/或,自动化引擎处理模块1044,用于当识别到有手机连接时,利用iOS系统对待测应用程序进行录制和回放处理。在该技术方案中,可以被持续集成调用,在自动编译、做盘后进行黑盒测试,测试结果再持续集成系统读出展现,使开发全流程实现闭环。
在上述技术方案中,优选地,录制引擎处理模块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的自动化测试脚本。在该技术方案中,可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率。
在上述技术方案中,优选地,任务测试单元106,具体包括:测试任务验证模块1062,用于基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,将验证点翻译成能被回放的验证语句,对待测应用程序进行验证;验证结果输出模块1064,用于验证完成后,查看相应的回放结果,配置邮箱地址,将日志定时发送给相应人员。在该技术方案中,可以便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用。
在上述技术方案中,优选地,测试任务验证模块1062对待测应用程序进行验证的操作,进一步包括:对待测应用程序的预期功能、正常条件和异常条件的验证;和/或,验证结果输出模块1064查看的回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图。在该技术方案中,可以使机构的测试活动开展更加过程化,符合CMMI过程改进的思想。
图2示出了根据本发明的实施例的移动应用自动化测试方法的流程图。
如图2所示,根据本发明的实施例的移动应用自动化测试方法,包括:步骤202:在PC端安装待测应用程序,手机通过USB线连接PC端,在USB调试模式下识别到手机连接;步骤204:当识别到有手机连接时,利用android系统对待测应用程序进行录制、翻译和回放处理,和/或,利用iOS系统对待测应用程序进行录制和回放处理;步骤206:基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,对待测应用程序进行验证,并输出验证结果。在该技术方案中,可以方便地生成自动化脚本,使得测试人员在编写脚本方面的投入大大降低。
在上述技术方案中,优选地,如图3所示,步骤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的自动化测试脚本。在该技术方案中,可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率。
在上述技术方案中,优选地,如图4所示,步骤206,具体包括:步骤402基于对待测应用程序的处理结果,在自动化脚本中加入相应验证点,将验证点翻译成能被回放的验证语句,对待测应用程序进行验证;步骤404验证完成后,查看相应的回放结果,配置邮箱地址,将日志定时发送给相应人员。在该技术方案中,可以便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用。
在上述技术方案中,优选地,步骤402对待测应用程序进行验证的操作,进一步包括:对待测应用程序的预期功能、正常条件和异常条件的验证;和/或,步骤404查看的回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图。在该技术方案中,可以使机构的测试活动开展更加过程化,符合CMMI过程改进的思想。
本发明的技术方案,正是为了解决现有技术中主流智能手机上应用程序自动化测试问题的工具;鉴于智能手机操作系统绝大部分被android和iOS占据,本发明的技术方案对android和iOS两个系统提供支持。
本发明的技术方案,提供了一种移动应用自动化测试工具,在android、iOS主流智能手机操作系统上实现对其应用的自动化测试。本发明的技术方案需要解决的技术问题如下:
1、自动化脚本生成。以录制的方式生成脚本,代替以往人工编写脚本的方式。
2、脚本可移植性和复用性。工具录制出的自动化脚本以静态文本保存,文件本身不依赖于工具。
3、脚本对回放环境的支持。自动化测试脚本中以对象的形式保存行为动作。只要被测程序中对象存在,而无须考虑回放设备的分辨率、设置等因素即可回放验证。
4、 回放脚本与回放框架相结合。选用性能优异的回放框架对脚本进行回放,节省系统资源。
解决本发明技术问题的技术方案:
㈠工具示意图。参见图5。
㈡工具的UI及操作。
该工具使用java语言编写,界面通过swt生成,简洁易懂。其操作流程是,在PC端安装并打开工具,手机通过USB线连接电脑并开打USB调试模式,这时工具会识别有手机连接(iOS系统手机连接时需要PC端也是苹果的操作系统)。再打开被测应用程序,按录制用例-翻译用例-回放用例的步骤进行。
㈢录制用例
1.android系统录制用例:
在android系统中,有两种采集用户行为动作的方式,第一种方式使用android系统自带的adb命令getevent,用户在手机上操作,动作会以事件流的方式发送到电脑上,解析这个事件流即可得到用户在手机屏幕上的点击位置。第二种方式使用adb命令截图功能,将手机屏幕截图发送到工具PC端的界面中,用户用鼠标点击界面中的手机截图,工具即可获得手机屏幕上的点击位置。同时配合使用sendkey命令向手机发指令,手机屏幕便可以和PC端界面中的截图屏幕保持一致。
现在已经获得了用户在手机上的行为动作,也就是一些坐标信息。如click(200,105)、slip(100,600,230,100)这样动作和坐标的组合,但这样的信息在不同分辨率的手机上回放会有问题。使用uiautomator可以获得当前屏幕中所有对象的坐标、所占用屏幕面积等信息,这样就可以把click(200,105)转化为click(objectName)。
2.iOS系统录制用例:
UI Automation可以对Developer签名的应用程序或者运行在模拟器里的应用程序进行录制。该工具封装了UI Automation,利用其录制功能可以取得用户的行为动作。用例动作如下:
Var target = UITarget.localTarget();
这样的脚本也是以对象形式保存的,这和我们工具的设计初衷保持一致。
㈣翻译用例
1.android系统使用开源的Robotium框架作为回放引擎。翻译时使用java语言读取录制的脚本xml文件,将其内容转译成为Robotium框架所用的测试用例。因为手机上操作种类有限,我们只需要关心诸如点击、双击、放大、缩小、滑动、拖动等动作即可。
2.iOS系统的用例不需要再次翻译,因为UI Automation录制出的脚本已经是可用的测试用例了。
㈤回放用例
1.android系统中回放:
用例的回放动作会在手机屏幕上显示,但在回放执行前,需要预置工具预置回放环境。对于android系统的应用程序而言,只有重签名后才能被Robotium框架所认识,所以该工具要对被测程序的apk包进行解包重签名再打包,重新安装到手机上,这样翻译好的用例就可以在手机上回放之前录制的动作。
2.iOS系统中回放:
被测程序同样需要Developer签名,我们拿到源码后配置上developer的证书,直接通过Xcode编译安装到真实设备中,就可以回放UI Automation的自动化测试脚本了。
㈥结果验证
记用户的行为动作重现并不是最终目的,我们要实现对程序功能的验证。在自动化脚本中加入一些验证点可以实现对预期功能、条件的验证。使用工具使用assert(object,value) 这样的格式向脚本中插入验证点,验证点会被翻译成能被回放框架执行的验证语句,实现对程序正常条件和异常条件的判断。
㈦日志
自动化用例往往是以无人执守的方式运行的,其运行结果要通过完整的日志查看。在回放任务完成后,在工具中可以查看回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图等等。同时也可以配置邮箱地址,将日志定时发送给相关责任人。
㈧、业务流程图,参见图6。
与现有技术相比,本发明的技术方案,至少可以达到以下有益效果:
⑴可以方便的生成自动化脚本,使得测试人员在编写脚本方面的投入大大降低。它还同时兼容Android和iOS两种主流手机操作系统,使得关注重点放在业务流程上而不是频繁的切换、配置测试环境。
⑵可以被持续集成调用,在自动编译、做盘后进行黑盒测试,测试结果再持续集成系统读出展现,使开发全流程实现闭环。
⑶自动化测试可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率,其次自动化测试更便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用,这个特点在功能测试和回归测试中尤其具有意义。此外,测试流程自动化管理可以使机构的测试活动开展更加过程化,符合CMMI过程改进的思想。
以上结合附图详细说明了本发明的技术方案,考虑到相关技术中没有简便的、统一的针对复杂类型应用测试的解决办法。现有的应用测试无法完成有复杂类型参与的应用测试过程。因此,本发明提出了一种移动应用自动化测试装置和一种移动应用自动化测试方法,可以在现有的应用测试方式基础上,充分利用简单对象类型完成复杂对象类型的应用测试,建立多对象类型参与的应用测试的通用、统一测试思路。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
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查看的回放结果,包括执行用例总数、通过数、失败数、跳过数、失败错误堆栈信息、失败截图。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410782404.0A CN104407980B (zh) | 2014-12-17 | 2014-12-17 | 移动应用自动化测试装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410782404.0A CN104407980B (zh) | 2014-12-17 | 2014-12-17 | 移动应用自动化测试装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104407980A CN104407980A (zh) | 2015-03-11 |
CN104407980B true CN104407980B (zh) | 2017-07-11 |
Family
ID=52645613
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410782404.0A Active CN104407980B (zh) | 2014-12-17 | 2014-12-17 | 移动应用自动化测试装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104407980B (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104699610A (zh) * | 2015-03-12 | 2015-06-10 | 安一恒通(北京)科技有限公司 | 测试方法和装置 |
CN104899046B (zh) * | 2015-06-26 | 2018-01-30 | 上海斐讯数据通信技术有限公司 | 一种多功能脚本运行方法和系统 |
CN104915297B (zh) * | 2015-07-08 | 2018-01-16 | 上海斐讯数据通信技术有限公司 | 一种android设备的APP耗电量的自动化测试方法 |
CN105095078A (zh) * | 2015-07-22 | 2015-11-25 | 厦门美图移动科技有限公司 | 一种系统自动化测试设备、方法和计算设备 |
CN105022694B (zh) * | 2015-08-19 | 2018-07-13 | 上海斐讯数据通信技术有限公司 | 用于移动终端测试的测试用例生成方法及系统 |
CN105183647A (zh) * | 2015-09-01 | 2015-12-23 | 北京瑞汛世纪科技有限公司 | 一种应用程序的测试方法、装置及系统 |
CN105430171B (zh) * | 2015-11-02 | 2019-10-18 | Tcl移动通信科技(宁波)有限公司 | 一种触摸屏失灵时启用usb调试端口的方法及移动终端 |
CN106021101B (zh) * | 2016-05-16 | 2019-05-28 | 北京奇虎科技有限公司 | 对移动终端进行测试的方法及装置 |
CN106155863A (zh) * | 2016-07-25 | 2016-11-23 | 北京小米移动软件有限公司 | 终端预期行为控制方法及终端 |
CN106383765B (zh) * | 2016-08-31 | 2019-04-26 | 北京百分点信息科技有限公司 | 一种数据监控方法及装置 |
CN106528404B (zh) | 2016-09-30 | 2019-03-29 | 腾讯科技(深圳)有限公司 | 移动应用程序测试方法和装置 |
CN108733555A (zh) * | 2017-04-25 | 2018-11-02 | 中移信息技术有限公司 | 一种应用测试方法及装置 |
CN108629184A (zh) * | 2018-05-18 | 2018-10-09 | 北京智游网安科技有限公司 | 一种ios用的sdk安全检测方法 |
CN109582566A (zh) * | 2018-11-01 | 2019-04-05 | 苏州蜗牛数字科技股份有限公司 | 一种脚本录制方法 |
CN109684196B (zh) * | 2018-11-01 | 2024-01-09 | 北京中清龙图网络技术有限公司 | 一种测试方法及装置 |
CN110046009B (zh) * | 2019-02-19 | 2022-08-23 | 创新先进技术有限公司 | 录制方法、装置、服务器及可读存储介质 |
CN111611148B (zh) * | 2019-02-22 | 2023-08-29 | 上海哔哩哔哩科技有限公司 | iOS系统应用软件的兼容性并发测试方法及系统 |
CN110502437B (zh) * | 2019-07-31 | 2023-07-28 | 惠州市德赛西威汽车电子股份有限公司 | 一种车载蓝牙应用程序的测试系统及其方法 |
CN111488275B (zh) * | 2020-04-03 | 2023-08-25 | 携程旅游网络技术(上海)有限公司 | Ui自动化测试方法、装置、存储介质及电子设备 |
CN113760685A (zh) * | 2020-06-02 | 2021-12-07 | 北京奇虎科技有限公司 | 一种iOS界面测试方法、系统、存储介质及其计算机设备 |
CN112000581B (zh) * | 2020-08-31 | 2022-05-03 | 威创集团股份有限公司 | 一种用于Cocos2D框架软件的测试方法和工具 |
CN113014996B (zh) * | 2021-02-18 | 2022-07-22 | 上海哔哩哔哩科技有限公司 | 视频生成方法及装置 |
CN113176959A (zh) * | 2021-04-29 | 2021-07-27 | 上海云扩信息科技有限公司 | 一种通用的rpa手机自动化设计系统 |
CN113220569A (zh) * | 2021-05-10 | 2021-08-06 | 中金金融认证中心有限公司 | 一种基于多进程的iOS兼容性自动化测试方法与装置 |
CN115842884A (zh) * | 2022-12-27 | 2023-03-24 | 润芯微科技(江苏)有限公司 | 一种基于记录手机界面坐标来完成手机测试的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841845A (zh) * | 2012-07-30 | 2012-12-26 | 广东欧珀移动通信有限公司 | 一种Android设备软件自动测试方法 |
CN103544100A (zh) * | 2012-07-12 | 2014-01-29 | 腾讯科技(深圳)有限公司 | 便携数据处理设备应用程序的测试方法、系统和客户端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201018991D0 (en) * | 2010-11-10 | 2010-12-22 | Net Magnus Ltd | Opus |
-
2014
- 2014-12-17 CN CN201410782404.0A patent/CN104407980B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544100A (zh) * | 2012-07-12 | 2014-01-29 | 腾讯科技(深圳)有限公司 | 便携数据处理设备应用程序的测试方法、系统和客户端 |
CN102841845A (zh) * | 2012-07-30 | 2012-12-26 | 广东欧珀移动通信有限公司 | 一种Android设备软件自动测试方法 |
Non-Patent Citations (1)
Title |
---|
基于Android自动化平台的研究与实现;林小捷;《中国优秀硕士学位论文全文数据库》;20140515;正文第18-32页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104407980A (zh) | 2015-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104407980B (zh) | 移动应用自动化测试装置和方法 | |
CN105912473B (zh) | 基于bdd的移动app自动测试平台和测试方法 | |
CN106844217B (zh) | 对应用的控件进行埋点的方法及装置、可读存储介质 | |
CN103377120B (zh) | 一种应用程序测试方法及装置 | |
CN103425574B (zh) | 一种测试应用程序的方法及装置 | |
CN110442511B (zh) | 可视化埋点测试方法及装置 | |
US20130132933A1 (en) | Automated compliance testing during application development | |
US20130117855A1 (en) | Apparatus for automatically inspecting security of applications and method thereof | |
CN110309071A (zh) | 测试代码的生成方法及模块、测试方法及系统 | |
CN106681912A (zh) | 用于Android系统的代码覆盖率的自动化测试方法及装置 | |
CN107133174A (zh) | 测试用例代码自动生成装置与方法 | |
Griebe et al. | A model-based approach to test automation for context-aware mobile applications | |
CN104035873A (zh) | 测试代码生成方法及生成装置 | |
CN109684847A (zh) | 脚本漏洞的自动修复方法、装置、设备及存储介质 | |
Gerpheide et al. | Assessing and improving quality of QVTo model transformations | |
CN107894889A (zh) | 埋点方法、设备及计算机可读存储介质 | |
CN105653438B (zh) | 安卓设备的跨进程自动化测试方法和装置 | |
CN104731566B (zh) | 集成开发环境测试装置、方法及系统 | |
CN107038120A (zh) | 一种软件测试方法和设备 | |
CN110134596A (zh) | 测试文档的生成方法及终端设备 | |
US9477582B2 (en) | Executable software specification generation | |
CN107273250B (zh) | 电子化保单自动承保系统的测试方法及装置 | |
CN106528429A (zh) | 一种ui界面测试方法及装置 | |
CN112860556A (zh) | 覆盖率统计方法、装置、计算机系统和可读存储介质 | |
CN114915643B (zh) | 铁路信号集中监测系统的配置方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park Applicant after: Yonyou Network Technology Co., Ltd. Address before: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park Applicant before: UFIDA Software Co., Ltd. |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |