CN109960642A - 自动测试方法和装置 - Google Patents
自动测试方法和装置 Download PDFInfo
- Publication number
- CN109960642A CN109960642A CN201711403538.7A CN201711403538A CN109960642A CN 109960642 A CN109960642 A CN 109960642A CN 201711403538 A CN201711403538 A CN 201711403538A CN 109960642 A CN109960642 A CN 109960642A
- Authority
- CN
- China
- Prior art keywords
- mobile terminal
- information
- target widget
- operation information
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Telephone Function (AREA)
Abstract
本发明提出一种自动测试方法和装置,其中,方法包括:截取用户发出的第一操作并模拟;其中,所述第一操作为用户在所述待测试的应用程序中执行的操作;确定所述第一操作所对应的目标控件的指示信息;利用所述第一操作和所述指示信息,录制操作信息;将所述操作信息携带在HTTP请求中发送给从移动终端,以使所述从移动终端执行所述操作信息对所述应用程序进行测试。通过本方法,能够实现在同一局域网下由一台移动终端对多台移动终端进行实时操作控制,移动终端可以是不同型号、不同Android版本、不同语言的多种设备,达到兼容性测试的目的。
Description
技术领域
本发明涉及自动测试技术领域,尤其涉及一种自动测试方法和装置。
背景技术
APP的兼容性测试在日常测试工作中占有较大的比重,常规的兼容性测试主要包括机型、分辨率、Android版本、ROM和支持的语言等方面。
现有的APP兼容性测试方法主要有借助测试平台进行monkey测试、或者由PC客户端控制手机进行回放测试、或者在Android安装包(Android Package,APK)内部嵌入软件开发工具包(Software Development Kit,SDK)的方式来监听用户操作,再在手机上进行回放测试。
然而,由于Android***的碎片化比较严重,采用现有的测试方法进行测试时,重复工作量较大,测试效率低。PC客户端控制手机进行回放测试时需要搭建脚本执行环境,并且必须借助USB集线器才能连接多部手机,测试工作需要在有PC客户端的场所进行,测试地点受限。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一个目的在于提出一种自动测试方法,能够实现在同一局域网下由一台移动终端对多台移动终端进行实时操作控制,移动终端可以是不同型号、不同Android版本、不同语言的多种设备,达到兼容性测试的目的。通过由移动终端控制移动终端,无需测试平台,无需重新打包APP,也无需安装PC客户端以及搭建PC脚本执行环境,能够实现即装即用,测试成本低。由于无需安装PC客户端,测试场地可随意选择,可用于现场测试,适用性更高。
本发明的第二个目的在于提出另一种自动测试方法。
本发明的第三个目的在于提出一种自动测试装置。
本发明的第四个目的在于提出另一种自动测试装置。
本发明的第五个目的在于提出一种计算机设备。
本发明的第六个目的在于提出另一种计算机设备。
本发明的第七个目的在于提出一种非临时性计算机可读存储介质。
本发明的第八个目的在于提出一种非临时性计算机可读存储介质。
为达上述目的,本发明第一方面实施例提出了一种自动测试方法,用于移动终端上,以非嵌入式的方式对待测的应用程序进行测试,所述方法包括:
截取用户发出的第一操作并模拟;其中,所述第一操作为用户在所述待测试的应用程序中执行的操作;
确定所述第一操作所对应的目标控件的指示信息;
利用所述第一操作和所述指示信息,录制操作信息;
将所述操作信息携带在HTTP请求中发送给从移动终端,以使所述从移动终端执行所述操作信息对所述应用程序进行测试。
本发明实施例的自动测试方法,通过截取用户发出的第一操作并模拟,确定第一操作所对应的目标控件的指示信息,并利用第一操作和指示信息录制操作信息,将操作信息携带在HTTP请求中发送给从移动终端,以使从移动终端执行操作信息对应用程序进行测试。通过在移动终端录制操作信息后向从移动终端发送操作信息,使从移动终端根据操作信息进行回放测试,能够实现在同一局域网下由一台移动终端对多台移动终端进行实时操作控制,移动终端可以是不同型号、不同Android版本、不同语言的多种设备,达到兼容性测试的目的。通过由移动终端控制移动终端,无需测试平台,无需重新打包APP,也无需安装PC客户端以及搭建PC脚本执行环境,能够实现即装即用,测试成本低。由于无需安装PC客户端,测试场地可随意选择,可用于现场测试,适用性更高。
为达上述目的,本发明第二方面实施例提出了另一种自动测试方法,用于移动终端上,以非嵌入式的方式对待测的应用程序进行测试,所述方法包括:
接收主移动终端发送的HTTP请求;
从所述HTTP请求中解析获取操作信息;其中,所述操作信息是根据用户在所述主移动终端的操作生成的;
回放所述操作信息进行测试,获取测试数据。
本发明实施例的自动测试方法,通过接收主移动终端发送的HTTP请求,从HTTP请求中解析获取操作信息,回放操作信息进行测试,获取测试数据。通过接收主移动终端的操作信息进行回放测试,由移动终端控制移动终端,无需测试平台,无需重新打包APP,也无需安装PC客户端以及搭建PC脚本执行环境,能够实现即装即用,测试成本低。由于无需安装PC客户端,测试场地可随意选择,可用于现场测试,适用性更高。
为达上述目的,本发明第三方面实施例提出了一种自动测试装置,用于移动终端上,以非嵌入式的方式对待测的应用程序进行测试,所述装置包括:
截取模块,用于截取用户发出的第一操作并模拟;其中,所述第一操作为用户在所述待测试的应用程序中执行的操作;
确定模块,用于确定所述第一操作所对应的目标控件的指示信息;
录制模块,用于利用所述第一操作和所述指示信息,录制操作信息;
发送模块,用于将所述操作信息携带在HTTP请求中发送给从移动终端,以使所述从移动终端执行所述操作信息对所述应用程序进行测试。
本发明实施例的自动测试装置,通过截取用户发出的第一操作并模拟,确定第一操作所对应的目标控件的指示信息,并利用第一操作和指示信息录制操作信息,将操作信息携带在HTTP请求中发送给从移动终端,以使从移动终端执行操作信息对应用程序进行测试。通过在移动终端录制操作信息后向从移动终端发送操作信息,使从移动终端根据操作信息进行回放测试,能够实现在同一局域网下由一台移动终端对多台移动终端进行实时操作控制,移动终端可以是不同型号、不同Android版本、不同语言的多种设备,达到兼容性测试的目的。通过由移动终端控制移动终端,无需测试平台,无需重新打包APP,也无需安装PC客户端以及搭建PC脚本执行环境,能够实现即装即用,测试成本低。由于无需安装PC客户端,测试场地可随意选择,可用于现场测试,适用性更高。
为达上述目的,本发明第四方面实施例提出了另一种自动测试装置,用于移动终端上,以非嵌入式的方式对待测的应用程序进行测试,所述装置包括:
接收模块,用于接收主移动终端发送的HTTP请求;
解析模块,用于从所述HTTP请求中解析获取操作信息;其中,所述操作信息是根据用户在所述主移动终端的操作生成的;
测试模块,用于回放所述操作信息进行测试,获取测试数据。
本发明实施例的自动测试装置,通过接收主移动终端发送的HTTP请求,从HTTP请求中解析获取操作信息,回放操作信息进行测试,获取测试数据。通过接收主移动终端的操作信息进行回放测试,由移动终端控制移动终端,无需测试平台,无需重新打包APP,也无需安装PC客户端以及搭建PC脚本执行环境,能够实现即装即用,测试成本低。由于无需安装PC客户端,测试场地可随意选择,可用于现场测试,适用性更高。
为达上述目的,本发明第五方面实施例提出了一种计算机设备,包括:处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如第一方面实施例所述的自动测试方法。
为达上述目的,本发明第六方面实施例提出了另一种计算机设备,包括:处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如第二方面实施例所述的自动测试方法。
为达上述目的,本发明第七方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面实施例所述的自动测试方法。
为达上述目的,本发明第八方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第二方面实施例所述的自动测试方法。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本发明实施例一所提供的一种自动测试方法的流程示意图;
图2为本发明实施例二所提供的一种自动控制方法的流程示意图;
图3为本发明实施例三所提供的一种自动测试方法的流程示意图;
图4为本发明实施例一所提供的另一种自动测试方法的流程示意图;
图5为本发明实施例二所提供的另一种自动测试方法的流程示意图;
图6a~6d为自动测试的一种应用示意图;
图7为本发明实施例一所提供的一种自动测试装置的结构示意图;
图8为本发明实施例二所提供的一种自动测试装置的结构示意图;
图9为本发明实施例三所提供的一种自动测试装置的结构示意图;
图10为本发明实施例一所提供的另一种自动测试装置的结构示意图;
图11为本发明实施例二所提供的另一种自动测试装置的结构示意图;以及
图12为适于用来实现本发明实施方式的示例性计算机设备的框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
下面参考附图描述本发明实施例的自动测试方法和装置。
现有的APP兼容性测试方法主要有以下几种:
方法一:将待测试的测试包上传至云平台,在云平台上进行monkey测试。然而,monkey测试时没有测试场景,且商用的测试平台资源使用时长受限,较难发现问题;
方法二:在PC客户端或web页面上同步显示手机的界面,在虚拟的手机上录制用户操作,最后在手机上回放用户操作进行测试。这种方法由PC客户端控制手机进行回放测试,需要搭建脚本执行环境,当需要连接多部手机进行测试时,必须借助USB集线器;
方法三:在APK内部嵌入SDK,由SDK监听用户的操作并录制成用例,再在手机上进行回放测试。采用这种测试方式,需要重新打包APP,接入成本较高,且不能跨APP操作;
方法四:基于图片进行录制回放测试。这种测试方法只支持一种语言的测试,不能实现多语言测试。
针对上述方法存在的至少一个问题,本发明实施例提出了一种自动测试方法,无需测试平台和PC客户端即可实现回放测试,即装即用,且支持多语言测试,能够契合国际化业务测试场景。
图1为本发明实施例一所提供的一种自动测试方法的流程示意图,该方法用于移动终端上,以非嵌入式的方式对待测的应用程序进行测试。
如图1所示,该自动测试方法包括以下步骤:
步骤101,截取用户发出的第一操作并模拟;其中,第一操作为用户在待测试的应用程序中执行的操作。
本实施例中,可以在多个移动终端上安装一个测试工具,该测试工具用于执行本实施例提供的自动测试方法。
当需要对应用程序进行测试时,为了测试应用程序的兼容性,可以将待测试的应用程序安装在多个移动终端中,多个移动终端可以分别为不同厂商、不同型号、不同Android版本、不同语言的手机。在测试时,可以将多个移动终端分为一组进行测试,比如将每10个移动终端分为一组,并从每个分组中随机选择一个移动终端作为主移动终端,该分组中剩余的移动终端作为从移动终端,用户在主移动终端上操作待测试的应用程序,从移动终端通过回放用户在主移动终端上执行的操作来实现待测试的应用程序在从移动终端上的测试。
本实施例中,当用户选择一个移动终端并对该移动终端上的待测试的应用程序进行操作时,该移动终端作为主移动终端,通过测试工具截取通过用户发出用户在待测试的应用程序中执行的操作作为第一操作,然后由测试工具中的模拟器对用户发出的真实的第一操作进行模拟。其中,用户在待测试的应用程序中执行的操作可以是单击操作、双击操作、滑动操作、长按操作等。
具体地,可以针对不同控件设置不同的截取方式。对于主键或者返回键,可以设置广播***,通过移动终端中的广播***,监听模拟出的试图控制用于返回桌面的起始键(home)或者软键盘(recent)的第一操作;对于起始键和软键盘之外的其他控件,可以在移动终端显示界面内嵌入透明浮层,通过透明浮层,截获针对除起始键和软键盘之外的其他控件的第一操作。
需要说明的是,测试人员根据自身的测试需要,可以仅设置广播***来截取用户对主键或者返回键的操作,也可以仅设置透明浮层来截取用户对除主键和返回键之外的其他控件的操作,还可以同时设置广播***和透明浮层来截取用户对所有控件的操作。设置何种截取工具可以根据测试需要进行选择,本发明对此不作限制。本实施例中,为了保证测试的完整性,同时设置广播***和透明浮层来截取用户对所有控件的操作。
步骤102,确定第一操作所对应的目标控件的指示信息。
本实施例中,在模拟出第一操作之后,针对第一操作对应的目标控件,可以进一步获取目标控件的指示信息。其中,指示信息用于指示目标控件的名称,和/或目标控件在待测试的应用程序中的位置。
此处需要说明的是,确定第一操作所对应的目标控件的指示信息的具体实现过程将在后续内容中进行解释说明,为避免赘余,此处不作过多描述。
步骤103,利用第一操作和指示信息,录制操作信息。
本实施例中,截取了第一操作,并确定了第一操作所对应的目标控件的指示信息之后,即可利用第一操作和指示信息录制得到操作信息,根据录制信息,可以回放用户对目标控件执行的第一操作。
步骤104,将操作信息携带在HTTP请求中发送给从移动终端,以使从移动终端执行操作信息对应用程序进行测试。
主移动终端与至少一个从移动终端之间可以通过无线网络进行通信,或者可以在主移动终端和从移动终端之间形成一个局域网,使主移动终端和从移动终端仅在局域网内进行通信。主移动终端录制完成操作信息之后,可以将操作信息封装在HTTP请求中,通过无线网络将携带操作信息的HTTP请求发送给与主移动终端进行无线通信连接的从移动终端,以使从移动终端执行操作信息对待测试的应用程序进行测试。
本实施例中,可以使每一个从移动终端搭载一个HTTP服务器,以实时监听主移动终端发送的HTTP请求,并在接收到HTTP请求之后,对HTTP请求进行解析,并进行指令分发、参数转换等操作,以使从移动终端能够准确回放操作信息,完成对待测试的应用程序的测试。
本实施例的自动测试方法,通过截取用户发出的第一操作并模拟,确定第一操作所对应的目标控件的指示信息,并利用第一操作和指示信息录制操作信息,将操作信息携带在HTTP请求中发送给从移动终端,以使从移动终端执行操作信息对应用程序进行测试。通过在移动终端录制操作信息后向从移动终端发送操作信息,使从移动终端根据操作信息进行回放测试,能够实现在同一局域网下由一台移动终端对多台移动终端进行实时操作控制,移动终端可以是不同型号、不同Android版本、不同语言的多种设备,达到兼容性测试的目的。通过由移动终端控制移动终端,无需测试平台,无需重新打包APP,也无需安装PC客户端以及搭建PC脚本执行环境,能够实现即装即用,测试成本低。由于无需安装PC客户端,测试场地可随意选择,可用于现场测试,适用性更高。
为了更加清楚地描述前述实施例中确定第一操作所对应的目标控件的指示信息,本发明实施例提出了另一种自动测试方法,图2为本发明实施例二所提供的一种自动控制方法的流程示意图。
如图2所示,在如图1所示实施例的基础上,步骤102可以包括以下步骤:
步骤201,获取第一操作的操作区域。
本实施例中,截取了第一操作之后,可以根据发生第一操作的位置,获取第一操作对应的操作区域。
比如,对于电容式触摸屏,由于电容式触摸屏是利用人体的电流感应进行工作的,当用户触摸屏幕时,由于人体电场的存在,用户手指和屏幕的工作面形成一个耦合电容,由于工作面上接有高频信号,当手指吸收走一个很小的电流时,这个电流分别从屏幕的四个角上的电极中流出,且流经四个电极的电流与手指到四个角的距离成比例关系,控制器通过对四个电流比例的精确计算,可以确定手指触摸屏幕的位置。从而,本实施例中,监听到用户在电容式触摸屏上的第一操作之后,第一操作发生的位置也随之确定。例如,当第一操作为单击操作时,主移动终端的控制器通过分析触摸屏工作面的四个角流出的电流值,即可确定用户执行的单击操作对应的操作区域。
步骤202,解析界面信息,根据操作区域,确定第一操作所对应的目标控件。
其中,界面信息比如可以为控件的界面布局文件,存储有待测试的应用程序的各个控件在屏幕中的位置信息。从而,本实施例中,根据获取的第一操作的操作区域,通过查询界面信息,可以确定第一操作所对应的目标控件。
此处需要说明的是,为了能够准确地识别出操作对应的控件,每个控件往往会设置有一个覆盖范围,当一个操作区域落入某个控件的覆盖范围内时,说明用户试图操作的目标控件即为该控件。
步骤203,遍历界面控件树,获取目标控件的指示信息。
其中,指示信息为目标控件的唯一标识符、名称和/或遍历到目标控件的路径信息中的至少一种。
本实施例中,确定第一操作所对应的目标控件之后,可以通过遍历界面控件树的方式,进一步获取目标控件的路径信息,和/或,获取目标控件的名称、唯一标识符等,以在回放时能够唯一确定目标控件。
本实施例的自动测试方法,通过获取第一操作的操作区域,解析界面信息,根据操作区域确定第一操作所对应的目标控件,并遍历界面控件树,获取目标控件的指示信息,能够提高控件识别的准确性,进而提高回放测试的准确率。
当设置透明浮层来截取对除主键和返回键之外的其他控件执行的第一操作时,透明浮层相当于在应用程序上设置的一个屏蔽层,当透明浮层开启时,透明浮层截取用户对控件执行的第一操作,且该第一操作不会立即在应用程序中执行,当透明浮层关闭后,第一操作才生效。需要说明的是,测试工具与待测试的应用程序均为安装在移动终端上的应用程序,测试工具不需要嵌入到待测试的应用程序中,测试工具提供的自动测试方法通过透明浮层的设置,可以实现对待测试的应用程序的一种跨APP的测试。
为了对透明浮层的开关进行控制,以保证第一操作既能被透明浮层截取,又能在应用程序中生效,在本发明实施例一种可能的实现方式中,可以通过设置悬浮窗的方式来控制透明浮层的开启和关闭,图3为本发明实施例三所提供的一种自动测试方法的流程示意图。
如图3所示,该自动测试方法可以包括以下步骤:
步骤301,在显示界面上设置一个可视的悬浮窗,通过悬浮窗控制透明浮层的开启或关闭。
本实施例中,为了对透明浮层的开关进行控制,可以预先在显示界面上设置一个可视的悬浮窗,以通过悬浮窗控制透明浮层的开启或关闭。
进一步地,可以预先为可视的悬浮窗设置多种显示颜色,不同的颜色表示出透明浮层的状态。例如,当可视的悬浮窗显示为红色时,表示透明浮层当前的状态为关闭状态,而当可视的悬浮窗显示为绿色时,表示透明浮层当前的状态为开启状态。本实施例中,由于透明浮层为透明层,用户在视觉上是不可见的,通过可视的悬浮窗的颜色来表示透明浮层的状态,用户就可以直观地得知透明浮层是处于关闭状态还是处于开启状态。
步骤302,通过移动终端显示界面内嵌入的透明浮层,截获第一操作,其中,第一操作试图控制的控件非起始键或者软键盘。
当用户执行的第一操作是试图对除起始键或者软键盘之外的其他控件进行操作时,移动终端显示界面内嵌入的透明浮层可以用来截获第一操作。透明浮层相当于一个屏幕层,默认为开启状态,当用户对除起始键或者软键盘之外的其他控件执行操作时,该操作不会立即在应用程序中生效,透明浮层先截取该操作,并在透明浮层关闭或者消失后该操作在应用程序中才会生效。
步骤303,通过悬浮窗探测第一操作的结束动作,当探测到所述结束动作时,控制透明浮层关闭。
本实施例中,可视的悬浮窗对第一操作的执行过程进行监听,当悬浮窗探测到第一操作的结束动作后,可以控制透明浮层关闭或者消失。其中,结束动作可以是第一操作的抬起动作,用于指示第一操作完成,可以根据用户手指的动作确定。比如,滑动操作包括触摸屏幕、在屏幕上滑动和离开屏幕,当悬浮窗探测到手指的触摸时,继续探测手指的滑动过程,当探测到手指离开屏幕时,认为滑动操作结束,此时悬浮窗控制透明浮层关闭。
步骤304,确定第一操作所对应的目标控件的指示信息。
步骤305,利用第一操作和指示信息,录制操作信息。
需要说明的是,本实施例中对步骤303-步骤304的描述,可以参见前述实施例中对步骤102-步骤103的描述,此处不再赘述。
步骤306,将操作信息携带在HTTP请求中发送给从移动终端,以使从移动终端执行操作信息对应用程序进行测试。
本实施例中,主移动终端可以将录制得到的所有的操作信息封装在HTTP请求中,通过与从移动终端之间建立的无线网络连接,将携带操作信息的HTTP请求发送给从移动终端,以使从移动终端通过执行操作信息完成对应用程序的测试。
步骤307,在移动终端上回放第一操作,获取测试数据。
当悬浮窗控制透明浮层关闭后,可以在移动终端上回放录制的第一操作的操作信息,并获取移动终端对目标控件执行第一操作时的测试数据。其中,测试数据可以是第一操作的响应时间、第一操作的执行结果、应用程序与移动终端中安装的其他应用程序之间的兼容情况等。
步骤308,通过悬浮窗监听第一操作是否在移动终端上回放完成。
步骤309,当监听到第一操作在移动终端上回放完成后,通过悬浮窗控制透明浮层的重新开启,以继续截获用户的下一个操作。
本实施例中,当第一操作在移动终端上的回放完成之后,悬浮窗可以再次控制透明浮层重新开启或者恢复,以通过透明浮层继续录制下一个操作。透明浮层每截取一个第一操作,主移动终端便通过悬浮窗控制透明浮层关闭,并根据第一操作和第一操作所对应的目标控件的指示信息录制操作信息,每录制完成一个操作信息,便在主移动终端上回放该录制信息,并在每次回放完成后,悬浮窗重新开启透明浮层进行下一个操作的截取,直到录制结束或者用户退出应用程序。
本实施例的自动测试方法,通过设置悬浮窗控制透明浮层的开启或关闭,通过移动终端显示界面内嵌入的透明浮层获取第一操作,确定第一操作所对应的目标控件的指示信息,利用第一操作和指示信息录制操作信息,当探测到第一操作的结束动作后,通过悬浮窗控制透明浮层关闭,并在移动终端上回放操作信息执行用户的操作,获取测试数据,回放操作信息完成后通过悬浮窗控制透明浮层重新开启,以继续截获用户的下一个操作,将操作信息携带在HTTP请求中发送给从移动终端,以使从移动终端执行操作信息对应用程序进行测试。通过设置悬浮窗控制透明浮层的开启或关闭,能够保证截获第一操作和回放操作信息的有序进行,在录制操作信息的同时,还能保证在主移动终端上对应用程序进行测试,实现在同一局域网下由一台移动终端对多台移动终端进行实时操作控制,移动终端可以是不同型号、不同Android版本、不同语言的多种设备,达到兼容性测试的目的。
为了保证主移动终端准确发送携带操作信息的HTTP请求至从移动终端,在本发明实施例一种可能的实现方式中,监听获取用户的操作以及所操作的目标控件的标识信息之前,主移动终端可以先接收授权指令,其中,授权指令中包括多个从移动终端的属性信息,授权指令可以由每个从移动终端单独发送给主移动终端,也可以由服务器统一根据各个从移动终端的属性信息生成授权指令后,将授权指令发送给主移动终端。主移动终端接收到授权指令后,利用多个从移动终端形成列表,其中,列表中的每条记录可以包括一个从移动终端的属性信息及其对应的地址信息。本实施例中,主移动终端将操作信息携带在HTTP请求中发送给从移动终端时,具体可以包括:针对每个从移动终端,从列表中获取从移动终端的地址信息,根据地址信息生成从移动终端的HTTP请求;将操作信息添加到HTTP请求中发送给从移动终端。具体地,针对每个从移动终端,可以根据该从移动终端的属性信息,通过查询列表获取该属性信息对应的地址信息,进而根据地址信息生成HTTP请求后再添加操作信息,将添加了操作信息后的HTTP请求发送给该从移动终端。
通过接收授权指令,能够保证将携带操作信息的HTTP请求仅发送给授权的从移动终端,能够保证发送操作信息的准确性,使回放测试仅在授权的从移动终端上进行,使回放测试具有针对性。
上述实施例描述了主移动终端即主控端执行自动测试方法的实现过程,为了更加清楚地描述从移动终端即受控端根据接收的操作信息进行回放测试的具体实现过程,本发明实施例提出了另一种自动测试方法,该方法由与主移动终端对应的从移动终端执行,图4为本发明实施例一所提供的另一种自动测试方法的流程示意图,该方法用于移动终端上,以非嵌入式的方式对待测的应用程序进行测试。
如图4所示,该自动控制方法包括以下步骤:
步骤401,接收主移动终端发送的HTTP请求。
主移动终端与至少一个从移动终端之间可以通过建立无线连接来互传数据当主移动终端录制得到操作信息后,将操作信息封装在HTTP请求中并通过无线网络发送给与主移动终端进行无线通信的从移动终端。每个从移动终端接收主移动终端发送的HTTP请求。
步骤402,从HTTP请求中解析获取操作信息;其中,操作信息是根据用户在主移动终端的操作生成的。
本实施例中,从移动终端接收到主移动终端发送的HTTP请求后,可以从HTTP请求中解析获取操作信息。用户在主移动终端上对待测试的应用程序进行操作,主移动终端截取用户对控件的操作,并根据用户的操作和所对应的控件录制得到操作信息,将操作信息封装在HTTP请求中发送给从移动终端。从移动终端接收到HTTP请求后,对HTTP请求进行解析,能够从中提取出操作信息。
步骤403,回放操作信息进行测试,获取测试数据。
从移动终端从HTTP请求中提取出操作信息后,在从移动终端上回放操作信息进行测试。由于操作信息是根据用户在主移动终端上对控件执行的操作录制而成的,从而,在从移动终端上回放操作信息时,能够模拟用户在主移动终端上对待测试的应用程序所执行的操作,并获取执行结果作为测试数据。
本实施例的自动测试方法,通过接收主移动终端发送的HTTP请求,从HTTP请求中解析获取操作信息,回放操作信息进行测试,获取测试数据。通过接收主移动终端的操作信息进行回放测试,由移动终端控制移动终端,无需测试平台,无需重新打包APP,也无需安装PC客户端以及搭建PC脚本执行环境,能够实现即装即用,测试成本低。由于无需安装PC客户端,测试场地可随意选择,可用于现场测试,适用性更高。
为了更加清楚地描述前述实施例中回放操作信息进行测试的具体实现过程,本发明实施例提出了另一种自动测试方法,图5为本发明实施例二所提供的另一种自动测试方法的流程示意图。
如图5所示,在如图1所示实施例的基础上,步骤403可以包括以下步骤:
步骤501,从操作信息中提取目标控件的指示信息。
其中,指示信息用于对目标控件进行定位,可以为目标控件的唯一标识符、名称和/或遍历到目标控件的路径信息中的至少一种。
由于操作信息是根据用户对目标控件执行的第一操作和所对应的目标控件的指示信息录制得到的,从而,本实施例中通过对操作信息进行解析,可以从操作信息中提取出目标控件的指示信息。
步骤502,根据指示信息对目标控件进行定位。
具体地,主移动终端根据指示信息对目标控件进行定位时,可以先获取移动终端的机型信息和***版本信息,再根据移动终端的机型信息和***版本信息进行坐标转换,最终获取目标控件在转换后的坐标系中的坐标信息。
由于同一应用程序在不同机型和不同***的移动终端中显示情况可能不同,为了能够准确定位目标控件,本实施例中,可以根据从移动终端的机型信息和***版本信息与主移动终端的差异进行坐标转换,使目标控件在转换后的坐标系中的坐标信息与目标控件在主移动终端的坐标系中的坐标信息相同,以准确地在从移动终端中对目标控件进行定位。
步骤503,对目标控件执行相应的操作。
本实施例中,完成对目标控件的定位之后,即可对目标控件执行相应的操作,以模拟用户在主移动终端中对目标控件执行的操作,完成与待测试的应用程序在主移动终端中相同的测试。
本实施例的自动测试方法,通过从操作信息中提取目标控件的指示信息,根据指示信息对目标控件进行定位,进而对目标控件执行相应的操作,能够提高回放测试的准确率。
在本发明实施例一种可能的实现方式中,从移动终端还向主移动终端发送授权指令,将从移动终端的属性信息上报给主移动终端,以使主移动终端根据从移动终端的属性信息将操作信息发送给对应的从移动终端,保证发出授权指令的从移动终端能够接收到操作信息,通过回放操作信息对待测试的应用程序进行测试。
图6a~6d为自动测试的一种应用示意图。如图6a所示,用户在主移动终端61上对待测试的应用程序进行操作,主移动终端61截取用户的操作录制得到用户界面(UserInterface,UI)遍历指令。用户执行操作时产生的缓存数据上传至性能用例模型,得到性能用例;通过对缓存数据进行分析得到场景用例。性能用例、场景用例、UI遍历指令和其他各类指令(安装、启动、UI操作、设定)通过Wi-Fi网络传输至从移动终端62,在从移动终端62中进行回放测试,得到测试数据。通过由一个主移动终端控制多个从移动终端,能够避免单个测试的重复工作,降低工作量,提高测试效率。
如图6b所示,以移动终端为手机为例进行解释说明,主移动终端为控制手机,从移动终端为受控手机。其中,控制手机中设置有控制模块,该控制模块可以控制模拟出的截获的用户操作,然后通过录制模块录制成操作信息,发送给从移动终端。控制手机中还设置有一个套接字服务模块(socket server),可以通过adk指令调用socket server,通过socketserver可以在截获到第一操作的坐标后,对坐标进行转换成界面能够识别的可扩展标记语言(Extensible Markup Language,XML),然后发送给录制模块进行深度优先(DOM)遍历,得到目标控件的指示信息,其中,目标控件指示信息包括:Xpath路径、ID、文本(或者名称)或者坐标等。
如图6b所示,控制手机中的显示界面上设置有一个透明浮层,通过该透明浮层可以进行第一操作的截获,该透明浮层在实际应用中用户是不可见的。透明浮层的左上角的小人为一个可视的悬浮窗,通过该可视的悬浮窗来对透明浮层的开启或者关闭进行控制,并且可以通过可视的悬浮窗的颜色来向用户展示透明浮层的状态,例如,可视的悬浮窗为红色时显示透明浮层处于关闭状态,可视的悬浮窗为绿色时显示透明浮层处于启用状态。进一步地,控制手机中还设置有广播***,在图6b中并未示出,通过广播***来监听home或者recent键的操作。
进一步地,在确定了目标控件的指示信息后,可以通过控制模块将录制的操作信息,通过HTTP请求发送给受控手机。在从受控手机上需要设置有HTTP服务模块、回放模块以及执行模块,HTTP服务模块接收操作指令,在回放模块进行回放,由执行模块来执行操作信息。
如图6c所示,同时对多个手机进行自动化测试,测试之前选择一个作为控制手机,剩余的作为受控手机。受控手机可以向控制手机上报设备信息,如IP地址、机型信息等。控制手机可以接收上报的设备信息,并根据接收到的设备信息,形成一个受控手机的列表。
在测试时控制手机就通过HTTP请求直接向受控手机中的HTTP服务模块发送录制的操作指令。控制手机和受控手机的内部组成可参见图6b。在测试过程中,控制手机与受控手机之间为单向通信。
如图6d所示,控制手机通过HTTP请求将录制的操作信息,发送给受控手机中的HTTP服务模块,然后由受控手机中的回放模块对操作指令进行http请求解析、坐标换算、坐标计算,然后通过adb指令无线调用执行模块中的套接字服务,对坐标进行解析得到界面可以识别的XML格式的坐标,然后在通过UI DOM遍历对控件进行定位,然后对定位出的控件执行第一操作。为了实现上述实施例,本发明还提出一种自动测试装置。
图7为本发明实施例一所提供的一种自动测试装置的结构示意图,该装置用于移动终端上,以非嵌入式的方式对待测的应用程序进行测试。
如图7所示,该自动测试装置70包括:截取模块710、确定模块720、录制模块730,以及发送模块740。其中,
截取模块710,用于截取用户发出的第一操作并模拟;其中,第一操作为用户在待测试的应用程序中执行的操作。
具体地,截取模块710用于通过移动终端显示界面内嵌入的透明浮层,截获第一操作,其中,第一操作试图控制的控件非用于返回桌面的起始键或者软键盘;和/或,通过移动终端中的广播***,监听模拟出的试图控制起始键或者软键盘的第一操作。
确定模块720,用于确定第一操作所对应的目标控件的指示信息。
录制模块730,用于利用第一操作和指示信息,录制操作信息。
发送模块740,用于将操作信息携带在HTTP请求中发送给从移动终端,以使从移动终端执行操作信息对应用程序进行测试。
进一步地,在本发明实施例一种可能的实现方式中,如图8所示,在如图7所示实施例的基础上,确定模块720包括:
获取单元721,用于获取第一操作的操作区域。
解析确定单元722,用于解析界面信息,根据操作区域,确定第一操作所对应的目标控件。
遍历单元723,用于遍历界面控件树,获取目标控件的指示信息;其中,指示信息为目标控件的唯一标识符、名称和/或遍历到目标控件的路径信息中的至少一种。
通过获取第一操作的操作区域,解析界面信息,根据操作区域确定第一操作所对应的目标控件,并遍历界面控件树,获取目标控件的指示信息,能够提高控件识别的准确性,进而提高回放测试的准确率。
当自动测试装置70设置透明浮层来截取对除主键和返回键之外的其他控件执行的第一操作时,透明浮层相当于在应用程序上设置的一个屏蔽层,当透明浮层开启时,透明浮层截取用户对控件执行的第一操作,且该第一操作不会立即在应用程序中执行,当透明浮层关闭后,第一操作才生效。为了对透明浮层的开关进行控制,以保证第一操作既能被透明浮层截取,又能在应用程序中生效,在本发明实施例一种可能的实现方式中,如图9所在,在如图7所示实施例的基础上,该自动测试装置70还包括:
控制单元700,用于在显示界面上设置一个可视的悬浮窗,通过悬浮窗控制透明浮层的开启或关闭;以及,当在移动终端上回放操作信息完成后,通过悬浮窗控制透明浮层的重新开启,以继续截获用户的下一个操作。
此时,截取模块710具体用于通过移动终端显示界面内嵌入的透明浮层,截获第一操作,其中,第一操作试图控制的控件非主键或者返回键。
探测模块750,用于在录制单元730利用第一操作和指示信息,录制操作信息之后,对第一操作的动作进行探测,在探测到第一操作的结束动作时,通过悬浮窗控制透明浮层关闭。
回放模块760,用于在移动终端上回放操作信息执行用户的操作,获取测试数据。
通过设置悬浮窗控制透明浮层的开启或关闭,能够保证截获第一操作和回放操作信息的有序进行,在录制操作信息的同时,还能保证在主移动终端上对应用程序进行测试。
在本发明实施例一种可能的实现方式中,自动测试装置70还用于接收授权指令,其中,授权指令中包括多个从移动终端的属性信息,并利用多个从移动终端形成列表,其中,列表中的每条记录可以包括一个从移动终端的属性信息及其对应的地址信息。本实施例中,发送模块740具体用于针对每个从移动终端,从列表中获取从移动终端的地址信息,根据地址信息生成从移动终端的HTTP请求;将操作信息添加到HTTP请求中发送给从移动终端。
通过接收授权指令,能够保证将携带操作信息的HTTP请求仅发送给授权的从移动终端,能够保证发送操作信息的准确性,使回放测试仅在授权的从移动终端上进行,使回放测试具有针对性。
需要说明的是,前述对自动测试方法实施例的解释说明也适用于该实施例的自动测试装置,其实现原理类似,此处不再赘述。
本实施例的自动测试装置,通过截取用户发出的第一操作并模拟,确定第一操作所对应的目标控件的指示信息,并利用第一操作和指示信息录制操作信息,将操作信息携带在HTTP请求中发送给从移动终端,以使从移动终端执行操作信息对应用程序进行测试。通过在移动终端录制操作信息后向从移动终端发送操作信息,使从移动终端根据操作信息进行回放测试,能够实现在同一局域网下由一台移动终端对多台移动终端进行实时操作控制,移动终端可以是不同型号、不同Android版本、不同语言的多种设备,达到兼容性测试的目的。通过由移动终端控制移动终端,无需测试平台,无需重新打包APP,也无需安装PC客户端以及搭建PC脚本执行环境,能够实现即装即用,测试成本低。由于无需安装PC客户端,测试场地可随意选择,可用于现场测试,适用性更高。
为了实现上述实施例,本发明还提出另一种自动测试装置。
图10为本发明实施例一所提供的另一种自动测试装置的结构示意图,用于移动终端上,以非嵌入式的方式对待测的应用程序进行测试。
如图10所示,该自动测试装置100包括:接收模块110、解析模块120,以及测试模块130。其中,
接收模块110,用于接收主移动终端发送的HTTP请求。
解析模块120,用于从HTTP请求中解析获取操作信息;其中,操作信息是根据用户在主移动终端的操作生成的。
测试模块130,用于回放操作信息进行测试,获取测试数据。
进一步地,在本发明实施例一种可能的实现方式中,如图11所示,在如图10所示实施例的基础上,测试模块130包括:
提取单元131,用于从操作信息中提取目标控件的指示信息。
定位单元132,用于根据指示信息对目标控件进行定位。
具体地,定位单元132用于获取移动终端的机型信息和***版本信息;根据移动终端的机型信息和***版本信息进行坐标转换;获取目标控件在转换后的坐标系中的坐标信息。
执行单元133,用于对目标控件执行相应的操作。
通过从操作信息中提取目标控件的指示信息,根据指示信息对目标控件进行定位,进而对目标控件执行相应的操作,能够提高回放测试的准确率。
在本发明实施例一种可能的实现方式中,自动测试装置110还可以在接收主移动终端发送的HTTP请求之前,向主移动终端发送授权指令,将移动终端的属性信息上报给主移动终端,以使主移动终端根据从移动终端的属性信息将操作信息发送给对应的从移动终端,保证发出授权指令的从移动终端能够接收到操作信息,通过回放操作信息对待测试的应用程序进行测试。
需要说明的是,前述对自动测试方法实施例的解释说明也适用于该实施例的自动测试装置,其实现原理类似,此处不再赘述。
本实施例的自动测试装置,通过接收主移动终端发送的HTTP请求,从HTTP请求中解析获取操作信息,回放操作信息进行测试,获取测试数据。通过接收主移动终端的操作信息进行回放测试,由移动终端控制移动终端,无需测试平台,无需重新打包APP,也无需安装PC客户端以及搭建PC脚本执行环境,能够实现即装即用,测试成本低。由于无需安装PC客户端,测试场地可随意选择,可用于现场测试,适用性更高。
为了实现上述实施例,本发明还提出一种计算机设备,包括:处理器和存储器;其中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于实现如前述实施例所述的一种自动测试方法。
为了实现上述实施例,本发明还提出另一种计算机设备,包括:处理器和存储器;其中,处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于实现如前述实施例所述的另一种自动测试方法。
为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述实施例所述的一种自动测试方法。
为了实现上述实施例,本发明还提出另一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述实施例所述的另一种自动测试方法。
图12示出了适于用来实现本发明实施方式的示例性计算机设备的框图。图12显示的计算机设备10仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图12所示,计算机设备12以通用计算设备的形式表现。计算机设备10的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及***组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
计算机设备10典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机设备10访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备10可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图12未显示,通常称为“硬盘驱动器”)。尽管图12中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本申请所描述的实施例中的功能和/或方法。
计算机设备10也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机***/服务器12交互的设备通信,和/或与使得该计算机***/服务器10能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备10还可以通过网络适配器20与一个或者多个网络(例如局域网(Local AreaNetwork;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图12所示,网络适配器20通过总线18与计算机设备10的其它模块通信。应当明白,尽管图12中未示出,可以结合计算机设备10使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
处理单元16通过运行存储在***存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的自动测试方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (19)
1.一种自动测试方法,其特征在于,用于移动终端上,以非嵌入式的方式对待测的应用程序进行测试,所述方法包括:
截取用户发出的第一操作并模拟;其中,所述第一操作为用户在所述待测试的应用程序中执行的操作;
确定所述第一操作所对应的目标控件的指示信息;
利用所述第一操作和所述指示信息,录制操作信息;
将所述操作信息携带在HTTP请求中发送给从移动终端,以使所述从移动终端执行所述操作信息对所述应用程序进行测试。
2.根据权利要求1所述的方法,其特征在于,所述截取模拟出的第一操作,包括:
通过所述移动终端显示界面内嵌入的透明浮层,截获所述第一操作,其中,所述第一操作试图控制的控件非用于返回桌面的起始键或者软键盘。
3.根据权利要求1所述的方法,其特征在于,所述截取用户发出的第一操作,包括:
通过所述移动终端中的广播***,监听所述用户试图控制用于返回桌面的起始键或者软键盘的所述第一操作。
4.根据权利要求1所述的方法,其特征在于,所述确定所述第一操作所对应的目标控件的指示信息,包括:
获取所述第一操作的操作区域;
解析界面信息,根据所述操作区域,确定所述第一操作所对应的所述目标控件;
遍历界面控件树,获取所述目标控件的指示信息;其中,所述指示信息为所述目标控件的唯一标识符、名称和/或遍历到所述目标控件的路径信息中的至少一种。
5.根据权利要求2所述的方法,其特征在于,还包括:
在所述显示界面上设置一个可视的悬浮窗,通过所述悬浮窗控制所述透明浮层的开启或关闭。
6.根据权利要求5所述的方法,其特征在于,所述利用所述第一操作和所述指示信息,录制操作信息之后,还包括:
通过所述悬浮窗探测所述第一操作的结束动作,当探测到所述结束动作时,控制所述透明浮层关闭;
在所述移动终端上回放所述操作信息执行所述第一操作,获取测试数据。
7.根据权利要求6所述的方法,其特征在于,还包括:
通过所述悬浮窗监听所述第一操作是否在所述移动终端上回放完成;
当监听到所述第一操作在所述移动终端上回放完成时,通过所述悬浮窗控制所述透明浮层的重新开启,以继续截获所述用户的下一个操作。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述监听获取所述用户的操作以及所操作的目标控件的标识信息之前,还包括:
接收授权指令,其中,所述授权指令中包括多个从移动终端的属性信息;
利用所述多个从移动终端形成列表。
9.根据权利要求8所述的方法,其特征在于,所述将所述操作信息携带在HTTP请求中发送给从移动终端,包括:
针对每个从移动终端,从所述列表中获取所述从移动终端的地址信息,根据所述地址信息生成所述从移动终端的HTTP请求;
将所述操作信息添加到所述HTTP请求中发送给所述从移动终端。
10.一种自动测试方法,其特征在于,用于移动终端上,以非嵌入式的方式对待测的应用程序进行测试,所述方法包括:
接收主移动终端发送的HTTP请求;
从所述HTTP请求中解析获取操作信息;其中,所述操作信息是根据用户在所述主移动终端的操作生成的;
回放所述操作信息进行测试,获取测试数据。
11.根据权利要求10所述的方法,其特征在于,所述回放所述操作信息进行测试,包括:
从所述操作信息中提取目标控件的指示信息;
根据所述指示信息对所述目标控件进行定位;
对所述目标控件执行相应的操作。
12.根据权利要求11所述的方法,其特征在于,所述根据所述指示信息对所述目标控件进行定位,包括:
获取移动终端的机型信息和***版本信息;
根据所述移动终端的机型信息和***版本信息进行坐标转换;
获取所述目标控件在转换后的坐标系中的坐标信息。
13.根据权利要求10-12任一项所述的方法,其特征在于,所述接收主移动终端发送的HTTP请求之前,还包括:
发送授权指令,将所述移动终端的属性信息上报给主移动终端。
14.一种自动测试装置,其特征在于,用于移动终端上,以非嵌入式的方式对待测的应用程序进行测试,所述装置包括:
截取模块,用于截取用户发出的第一操作并模拟;其中,所述第一操作为用户在所述待测试的应用程序中执行的操作;
确定模块,用于确定所述第一操作所对应的目标控件的指示信息;
录制模块,用于利用所述第一操作和所述指示信息,录制操作信息;
发送模块,用于将所述操作信息携带在HTTP请求中发送给从移动终端,以使所述从移动终端执行所述操作信息对所述应用程序进行测试。
15.一种自动测试装置,其特征在于,用于移动终端上,以非嵌入式的方式对待测的应用程序进行测试,所述装置包括:
接收模块,用于接收主移动终端发送的HTTP请求;
解析模块,用于从所述HTTP请求中解析获取操作信息;其中,所述操作信息是根据用户在所述主移动终端的操作生成的;
测试模块,用于回放所述操作信息进行测试,获取测试数据。
16.一种计算机设备,其特征在于,包括处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求1-9中任一项所述的自动测试方法。
17.一种计算机设备,其特征在于,包括处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求10-13中任一项所述的自动测试方法。
18.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-9中任一项所述的自动测试方法。
19.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求10-13中任一项所述的自动测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711403538.7A CN109960642B (zh) | 2017-12-22 | 2017-12-22 | 自动测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711403538.7A CN109960642B (zh) | 2017-12-22 | 2017-12-22 | 自动测试方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109960642A true CN109960642A (zh) | 2019-07-02 |
CN109960642B CN109960642B (zh) | 2022-07-19 |
Family
ID=67019182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711403538.7A Active CN109960642B (zh) | 2017-12-22 | 2017-12-22 | 自动测试方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109960642B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515854A (zh) * | 2019-08-30 | 2019-11-29 | 网易(杭州)网络有限公司 | 应用程序异常的复现方法、装置和电子设备 |
CN110928766A (zh) * | 2019-10-12 | 2020-03-27 | 平安银行股份有限公司 | 应用软件的测试方法、装置、设备及计算机可读存储介质 |
CN111090577A (zh) * | 2019-10-12 | 2020-05-01 | 平安壹钱包电子商务有限公司 | 多终端同步测试方法、装置、计算机设备及存储介质 |
CN112328492A (zh) * | 2020-11-19 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种主播间的互动控制方法、装置和电子设备 |
CN112416741A (zh) * | 2019-12-26 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 一种应用程序兼容性的测试方法及装置 |
CN112817866A (zh) * | 2021-02-25 | 2021-05-18 | 北京百家科技集团有限公司 | 录制回放方法、装置、***、计算机设备以及存储介质 |
CN113377664A (zh) * | 2021-06-25 | 2021-09-10 | 上海商汤科技开发有限公司 | 模型测试方法及装置、电子设备和存储介质 |
CN113760750A (zh) * | 2021-08-13 | 2021-12-07 | 深圳Tcl新技术有限公司 | 一种智能设备测试方法、装置、电子设备和存储介质 |
US20220269586A1 (en) * | 2021-02-24 | 2022-08-25 | Applause App Quality, Inc. | Systems and methods for automating test and validity |
CN115297110A (zh) * | 2021-04-15 | 2022-11-04 | 京东科技控股股份有限公司 | 终端设备的控制方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62108344A (ja) * | 1985-11-07 | 1987-05-19 | Mitsubishi Electric Corp | 端末制御システムの試験処理方式 |
CN104579822A (zh) * | 2014-12-10 | 2015-04-29 | 华南理工大学 | 基于Http协议的移动应用自动化性能测试***及方法 |
CN105335292A (zh) * | 2015-11-12 | 2016-02-17 | 广州华多网络科技有限公司 | 应用程序兼容性测试方法和*** |
CN106598396A (zh) * | 2016-12-21 | 2017-04-26 | 北京金山安全软件有限公司 | 基于悬浮窗的显示方法、装置和电子设备 |
-
2017
- 2017-12-22 CN CN201711403538.7A patent/CN109960642B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62108344A (ja) * | 1985-11-07 | 1987-05-19 | Mitsubishi Electric Corp | 端末制御システムの試験処理方式 |
CN104579822A (zh) * | 2014-12-10 | 2015-04-29 | 华南理工大学 | 基于Http协议的移动应用自动化性能测试***及方法 |
CN105335292A (zh) * | 2015-11-12 | 2016-02-17 | 广州华多网络科技有限公司 | 应用程序兼容性测试方法和*** |
CN106598396A (zh) * | 2016-12-21 | 2017-04-26 | 北京金山安全软件有限公司 | 基于悬浮窗的显示方法、装置和电子设备 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110515854A (zh) * | 2019-08-30 | 2019-11-29 | 网易(杭州)网络有限公司 | 应用程序异常的复现方法、装置和电子设备 |
CN110515854B (zh) * | 2019-08-30 | 2023-08-11 | 网易(杭州)网络有限公司 | 应用程序异常的复现方法、装置和电子设备 |
CN110928766A (zh) * | 2019-10-12 | 2020-03-27 | 平安银行股份有限公司 | 应用软件的测试方法、装置、设备及计算机可读存储介质 |
CN111090577A (zh) * | 2019-10-12 | 2020-05-01 | 平安壹钱包电子商务有限公司 | 多终端同步测试方法、装置、计算机设备及存储介质 |
CN111090577B (zh) * | 2019-10-12 | 2024-04-09 | 平安壹钱包电子商务有限公司 | 多终端同步测试方法、装置、计算机设备及存储介质 |
CN112416741A (zh) * | 2019-12-26 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 一种应用程序兼容性的测试方法及装置 |
CN112328492B (zh) * | 2020-11-19 | 2022-10-14 | 腾讯科技(深圳)有限公司 | 一种主播间的互动控制方法、装置和电子设备 |
CN112328492A (zh) * | 2020-11-19 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种主播间的互动控制方法、装置和电子设备 |
US20220269586A1 (en) * | 2021-02-24 | 2022-08-25 | Applause App Quality, Inc. | Systems and methods for automating test and validity |
CN112817866A (zh) * | 2021-02-25 | 2021-05-18 | 北京百家科技集团有限公司 | 录制回放方法、装置、***、计算机设备以及存储介质 |
CN115297110A (zh) * | 2021-04-15 | 2022-11-04 | 京东科技控股股份有限公司 | 终端设备的控制方法、装置、设备及存储介质 |
CN113377664A (zh) * | 2021-06-25 | 2021-09-10 | 上海商汤科技开发有限公司 | 模型测试方法及装置、电子设备和存储介质 |
CN113760750A (zh) * | 2021-08-13 | 2021-12-07 | 深圳Tcl新技术有限公司 | 一种智能设备测试方法、装置、电子设备和存储介质 |
CN113760750B (zh) * | 2021-08-13 | 2024-04-02 | 深圳Tcl新技术有限公司 | 一种智能设备测试方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109960642B (zh) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109960642A (zh) | 自动测试方法和装置 | |
CN109086203A (zh) | 页面的检测方法和装置 | |
US9161238B2 (en) | Mobile device monitoring and testing | |
US8452813B2 (en) | Test planning using attribute value properties | |
CN101320350B (zh) | 一种性能监控方法及装置 | |
CN102395945B (zh) | 用于触摸屏终端的用户行为跟踪方法、装置和*** | |
EP2169541B1 (en) | Method, system and graphical user interface for configuring a simulator to simulate a plurality of devices | |
CN110554831B (zh) | 操作同步方法、装置、设备及存储介质 | |
CN107025165A (zh) | 游戏自动化测试方法及相关装置 | |
CN104699591A (zh) | 一种测试场景重现方法以及装置 | |
WO2018201615A1 (zh) | 一种电池管理单元的测试方法及*** | |
CN104915297B (zh) | 一种android设备的APP耗电量的自动化测试方法 | |
CN112817790B (zh) | 模拟用户行为的方法 | |
CN107659455A (zh) | 一种iOS端Mock数据的方法、存储介质、设备及*** | |
CN108762715A (zh) | 电子设备声音控制方法、装置及设备 | |
CN109101228A (zh) | 应用程序的执行方法和装置 | |
CN102981949A (zh) | 一种在线自动测试服务器的方法 | |
CN107368568A (zh) | 一种笔记生成的方法、装置、设备和存储介质 | |
CN109783343A (zh) | 控件测试方法、装置、客户端设备和计算机可读存储介质 | |
CN107278294A (zh) | 输入设备实现方法及其实现装置 | |
CN102929688B (zh) | 一种模拟触摸屏的模拟器实现方法及该模拟器 | |
CN109032947A (zh) | 用于操作***的测试方法、装置、设备和存储介质 | |
CN110188303A (zh) | 页面错误识别方法和装置 | |
CN103049601A (zh) | 一种信息***仿真建模方法 | |
CN106776301A (zh) | 子元素测试方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |