CN106874206A - 用于跨平台自动测试的方法、装置及电子设备 - Google Patents
用于跨平台自动测试的方法、装置及电子设备 Download PDFInfo
- Publication number
- CN106874206A CN106874206A CN201710108814.0A CN201710108814A CN106874206A CN 106874206 A CN106874206 A CN 106874206A CN 201710108814 A CN201710108814 A CN 201710108814A CN 106874206 A CN106874206 A CN 106874206A
- Authority
- CN
- China
- Prior art keywords
- measured target
- target equipment
- screen
- equipment
- action events
- 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.)
- Pending
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/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
-
- 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/3684—Test management for test design, e.g. generating new test cases
-
- 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)
Abstract
本申请涉及用于跨平台自动测试的方法、装置及电子设备,方法包括:持续接收被测目标设备发送的屏幕画面并将所述屏幕画面渲染到在屏幕中指定的设备映射区;监听对所述设备映射区的操作,根据所述操作得到对所述被测目标设备的操作事件;将所述操作事件封装成所述被测目标设备的操作系统对应的输入事件,将所述输入事件发送给所述被测目标设备。本申请的技术方案能够有效提高用户的跨平台测试效率。
Description
技术领域
本申请涉及自动化测试技术领域,具体而言,涉及用于跨平台自动测试的方法、装置及电子设备。
背景技术
近年来,智能移动设备呈爆发性增长。随着移动设备的应用需求日益增大,为移动设备的应用程序提供软件测试的需求越来越多。
相关技术中,提出了一种对移动设备上安装的应用程序进行自动化测试的方法。对于安卓移动设备,将安卓移动设备通过USB连接到PC端,将用户在移动设备上的操作动作通过USB发送到PC端上,PC端获取用户在移动设备屏幕上的点击位置,通过uiautomator(一种安卓的自动化界面测试工具)获取用户操作的对象。在生成脚本文件之后,通过Robotium框架(一款主要针对安卓平台的应用进行黑盒自动化测试的安卓自动化测试框架)使用java语言读取录制的脚本xml文件,根据脚本文件转换为Robotium框架所用的测试用例。
对于ios移动设备,使用UI Automation对Developer签名的应用程序或者运行在模拟器中的应用程序进行录制,获得用户的行为动作并保存。利用ios系统对待测试的应用程序进行测试脚本回放的操作包括:将待测应用程序进行Developer签名后,拿到源码后配置上Developer的证书,通过Xcode编译安装到真实设备中,回放UI Automation的自动化测试脚本。
以上技术对于安卓移动设备来说,是通过用户在移动设备上操作进而获取录制数据,使用adb命令getevent获取事件,使用adb截图功能获取设备屏幕图像,而adb截图和事件获取的速度很慢(秒量级),用户需要手动在移动设备上操作,使用上造成较大不便。对于ios移动设备来说,使用UI Automation录制用户在移动设备上的行为动作,回放时待测应用程序进行对应的签名等支持操作,进而回放测试脚本。因此,以上技术要求用户操作不同的设备时使用不同的方式,因此学习和使用成本较高,流程无法跨平台,以致工作效率不高。
发明内容
本申请公开用于跨平台自动测试的方法,使得用户的跨平台测试效率有效提高。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的一个方面,提供一种用于跨平台自动测试的方法,包括:
持续接收被测目标设备发送的屏幕画面并将所述屏幕画面渲染到在屏幕中指定的设备映射区;
监听对所述设备映射区的操作,根据所述操作得到对所述被测目标设备的操作事件;
将所述操作事件封装成所述被测目标设备的操作系统对应的输入事件,将所述输入事件发送给所述被测目标设备。
根据一些实施例,监听对所述设备映射区的操作包括:监听对所述设备映射区的鼠标按下操作、鼠标抬起操作、鼠标按下并移动操作、以及键盘输入操作中的至少一种。
根据一些实施例,若所述被测目标设备为触屏设备,根据所述操作得到对所述被测目标设备的操作事件包括:
根据鼠标按下操作得到对所述被测目标设备进行手指按下操作的操作事件;
根据鼠标抬起操作得到对所述被测目标设备进行手指抬起操作的操作事件;
根据鼠标移按下并移动操作得到对所述被测目标设备进行手指划动操作的操作事件;
根据键盘输入操作得到对所述被测目标设备进行功能按键操作的操作事件。
根据一些实施例,所述被测目标设备包括触屏设备、远程PC、本地PC。
根据一些实施例,所述触屏设备包括智能移动终端、以及触摸屏的智能设备。
根据一些实施例,所述被测目标设备的操作系统包括安卓系统、ios系统、以及Windows系统。
根据一些实施例,持续接收被测目标设备发送的屏幕画面的包括:通过本地传输、USB传输、有线网络传输、以及无线网络传输中的一种传输方式持续接收被测目标设备发送的屏幕画面。
根据一些实施例,在根据所述操作得到对所述被测目标设备的操作事件之后还包括:根据所述操作事件录制测试脚本。
根据本发明的另一方面,提供一种用于跨平台自动测试的装置,其包括:
设备映射模块,用于持续接收被测目标设备发送的屏幕画面并将所述屏幕画面渲染到在屏幕中指定的设备映射区;
操作捕捉模块,用于监听对所述设备映射区的操作,根据所述操作得到对所述被测目标设备的操作事件;
封装与发送模块,用于将所述操作事件封装成所述被测目标设备的操作系统对应的输入事件,将所述输入事件发送给所述被测目标设备。
根据一些实施例,所述操作捕捉模块用于:监听对所述设备映射区的鼠标按下操作、鼠标抬起操作、鼠标按下并移动操作、以及键盘输入操作中的至少一种。
根据一些实施例,若所述被测目标设备为触屏设备,所述操作捕捉模块用于:
根据鼠标按下操作得到对所述被测目标设备进行手指按下操作的操作事件;
根据鼠标抬起操作得到对所述被测目标设备进行手指抬起操作的操作事件;
根据鼠标按下并移动操作得到对所述被测目标设备进行手指划动操作的操作事件;
根据键盘输入操作得到对所述被测目标设备进行功能按键操作的操作事件。
根据本发明的另一方面,提供一种电子设备,包括:处理器;存储器,存储用于所述处理器控制如第一方面任一项操作的指令。
本申请的实施例提供的技术方案可以包括以下有益效果:
针对跨平台自动化测试的应用场景,本申请的实施例提供的技术方案将基于安卓、ios、Windows等操作系统上的应用程序的图像流和操作流进行统一化封装,使得测试过程中调用流程的统一化,以使自动化测试中用户不再需要关心不同平台下的底层接口的用法,并且用户可以直接通过操作脚本生产工具中的设备映射区对目标设备进行操作。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
通过参照附图详细描述其示例实施例,本发明的上述和其它特征及优点将变得更加明显。
图1示出了根据本发明一实施例的用于跨平台自动测试的方法;
图2示出了根据本发明另一实施例的用于跨平台自动测试的方法;
图3示出了根据本发明另一实施例的连接被测目标设备示意图;
图4示出了根据本发明另一实施例的不同操作系统的被测目标设备统一映射方法结构示意图;
图5示出了根据本发明一实施例的用于跨平台自动测试的装置的框图;
图6示出了根据本发明另一实施例的用于跨平台自动测试的装置的框图;
图7示出了根据本发明一实施例的电子设备。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了根据本发明一实施例的用于跨平台自动测试的方法,本实施例可适用于通过PC机所安装的脚本生产工具对该PC机上的被测应用程序或与该PC机连接的被测目标设备上的被测应用程序进行测试的情况,如图1所示,本实施例所述的用于跨平台自动测试的方法包括:
在步骤S110中,持续接收被测目标设备发送的屏幕画面并将所述屏幕画面渲染到在屏幕中指定的设备映射区。
在步骤S120中,监听对所述设备映射区的操作,根据所述操作得到对所述被测目标设备的操作事件。
在步骤S130中,将所述操作事件封装成所述被测目标设备的操作系统对应的输入事件,将所述输入事件发送给所述被测目标设备。
其中,监听对所述设备映射区的操作可包括:监听对所述设备映射区的鼠标按下操作、鼠标抬起操作、鼠标按下并移动操作、以及键盘输入等操作。
需要说明的是,若所述被测目标设备为触屏设备,则根据所述操作得到对所述被测目标设备的操作事件包括:
根据鼠标按下操作得到对所述被测目标设备进行手指按下操作的操作事件、根据鼠标抬起操作得到对所述被测目标设备进行手指抬起操作的操作事件、根据鼠标按下并移动操作得到对所述被测目标设备进行手指划动操作的操作事件、以及根据键盘输入操作得到对所述被测目标设备进行功能按键操作的操作事件。
需要说明的是,本实施例对所述被测目标设备并不作限定,只要能包括可视化操作接口即可,例如可包括触屏设备、远程PC、本地PC等。
例如,所述触屏设备可包括智能移动终端、以及触摸屏的智能设备。
而且,本实施例对所述被测目标设备也并不作限定,所述被测目标设备的操作系统可以为任意操作系统,例如可以为安卓系统、ios系统、或Windows系统等。
本领域普通技术人员需要明确的是,本实施例适用于被测目标设备与脚本生产工具之间任意连接方式,只要两者能正常即时地通信即可,例如两者可为同一PC机,或者两者为不同设备,其中脚本生产工具为PC机,被测目标设备为与该脚本生产工具直接相连或远程通信的PC机或者触屏设备。
其中,若被测目标设备为与该脚本生产工具直接相连的PC机或者触屏设备,则其与脚本生产工具所在的PC机可通过USB连接通过USB传输数据,或者通过有线网线路连接通过网线传输数据。或者,若被测目标设备为与该脚本生产工具不直接相连的PC机或者触屏设备,其与脚本生产工具所在的PC机可通过无线网、蓝牙或其他近场通信模块传输数据。
因此,持续接收被测目标设备发送的屏幕画面的包括:通过本地传输、USB传输、有线网络传输、以及无线网络传输中的一种传输方式持续接收被测目标设备发送的屏幕画面。
本实施例通过安装在PC端的脚本生产工具以直接相连或远程通信的方式持续接收被测目标设备发送的屏幕画面并将所述屏幕画面渲染到在屏幕中指定的设备映射区,监听对所述设备映射区的操作,根据所述操作得到对所述被测目标设备的操作事件,将所述操作事件封装成所述被测目标设备的操作系统对应的输入事件,将所述输入事件发送给所述被测目标设备,因为所述被测目标设备可以是不同操作系统的与所述PC端直接相连或远程通信的PC机、安卓终端、或IOS终端等,因此测试人员无需关心不同平台下的底层接口的用法,可直接通过脚本生产工具中的设备映射区对目标设备进行测试,能够有效提高用户的跨平台测试效率。
图2示出了根据本发明另一实施例的用于跨平台自动测试的方法,适用于被测目标设备,如图2所示,本实施例所述的用于跨平台自动测试的方法包括:
在步骤S210中,通过被测程序中内置的通信模块创建截图进程,通过所述截图进程持续获取所述被测程序的窗口截图,并将所述窗口截图发送给脚本生产工具;
在步骤S220中,监听所述脚本生产工具发送的输入事件,将所述输入事件发送给所述被测程序,以使所述被测程序根据所述输入事件进行操作响应。
根据本发明的一些实施例,通过所述截图进程持续获取所述被测程序的窗口截图包括:通过所述通信模块获取所述被测程序的窗口标识,所述截图进程根据所述窗口标识持续获取所述应用程序的窗口位置与大小并进行窗口截图。
本实施例通过被测目标设备通过被测程序中内置的通信模块创建截图进程,通过所述截图进程持续获取所述被测程序的窗口截图,并将所述窗口截图发送给脚本生产工具,在监听到脚本生产工具将用于测试的操作事件封装成该被测目标设备的操作系统对应的输入事件之后,将所述输入事件发送给所述被测程序,以使所述被测程序根据所述输入事件进行操作响应,能实现用户远程操作被测目标设备的目的。
在本实施例中,不同操作系统的设备通过映射(例如安卓和ios)或者嵌套(PC应用程序)的方式,集成到脚本生产工具内的设备映射区,用户只需要在脚本生产工具中的设备映射区进行操作,即可完成所需的测试过程。
图3示出了根据本实施例的连接被测目标设备示意图,如图3所示,对于不同类型的测试目标,本发明基于设备映射方式统一化的思路,建立统一化的设备图像流、操作流的映射模型,并针对不同的平台进行更底层的封装。通过这种方式,用户不再需要关心跨平台的底层实现,只需要调用统一的上层封装方法,即可实现对设备的控制、自动化脚本录制过程。
图4示出了根据本实施例的不同操作系统的被测目标设备统一映射方法结构示意图。如图4所示,本实施例中的设备映射主要分为两块,一是设备画面映射(由设备到脚本生产工具),二是操作映射(由脚本生产工具到设备)。通过在设备上封装“窗口截图采集模块”进行设备图像的采集,进而在生产画面上进行实时的画面呈现,通过在脚本生产工具中封装“操作捕捉模块”,进而实现用户远程操作被测目标设备的目的。
以下内容将分别对上图4中的各个模块在不同操作系统平台上的实现作出具体阐述。
内容一、被测目标设备的窗口截图采集模块。
对于本地PC上的应用程序来说,其直接嵌入在脚本生产工具中,用户可以直接看到该应用程序本身并正常进行操作,不需要再次封装画面传输功能,也就不用额外封装“窗口截图采集模块”。
对于安卓设备、ios设备、远程PC应用程序,用户均通过脚本生产工具中的设备操作区进行被测目标设备画面查看。由被测目标设备方对设备画面进行屏幕画面获取并发送给脚本生产工具,实现画面的传输。
对于远程机器上的PC应用程序,应用程序需要内置一个与脚本生产工具的通信模块,应用程序与脚本生产工具建立连接后,通信模块可以获取应用程序的窗口id,起一个截图进程持续获取应用程序窗口位置、大小信息并进行窗口截图,将获取的内容发送给脚本生产工具中的“设备映射模块”,脚本生产工具的“设备映射模块”将获取到的截图渲染到设备映射区内,为用户提供实时的远程应用程序的实时画面。
对于安卓设备来说,“窗口截图采集模块”是一个运行在设备里的minicap进程,脚本生产工具连接安卓设备时会启动一个通信进程,用于与安卓设备的minicap进程进行通信。安卓设备中的minicap进程可以持续性快速的获取设备屏幕输出,并将其发送给已建立连接的脚本生产工具。minicap的好处就是快,每帧屏幕实时画面获取时间小于0.1s,可以基本实现实时的屏幕画面映射。相比之下,adb截屏获取屏幕的方法,一般需要0.8-2秒之间,无法实现流畅的设备画面映射。
对于ios设备来说,可以在待测试的应用程序中集成libimobiledevice模块作为截图辅助工具,由libimobiledevice集成模块持续对设备截屏,并将对应的屏幕画面发送给已建立连接的脚本生产工具。脚本生产工具中在连接ios设备后,会起一个用于和应用程序通信的进程,进而从设备程序中获取画面并实现渲染。
内容二、脚本生产工具的设备映射模块。
对于脚本生产工具来说,与不同的安卓设备、ios设备、远程PC应用程序建立连接后,由“设备映射模块”持续接收被测目标设备发来的画面,其将接收到的被测目标设备画面渲染到设备映射区内,供用户进行实时观看。
内容三、脚本生产工具的操作捕捉模块。
对于本地PC上的应用程序,脚本生产工具只是将对应的应用程序窗口嵌入进来,正常的鼠标操作和键盘事件均可以直接进行,不需要另外再实现操作传输的通路。
对于安卓设备、ios设备、远程PC应用程序,用户均通过脚本生产工具中的设备操作区进行被测目标设备操作,要由脚本生产工具对用户的操作进行捕获,再将对应的操作传输给被测目标设备。
脚本生产工具中的“操作捕捉模块”,本质上是脚本生产工具内的一个监听进程,其在捕捉到用户对应的操作事件后,根据对应的设备类型,按照对应设备的响应指令的格式,封装成对应格式的指令,发送给被测目标设备的“操作响应模块”。
对于在PC平台上的脚本生产工具,用户的操作交互手段为鼠标和键盘。当脚本生产工具处于操作动作录制状态下时,脚本生产工具需要对用户在设备映射区中的鼠标键盘操作进行捕获。
本发明使用hook工具完成这一工作。对于被测目标设备来说,捕捉动作包括:点击、滑动(拖动)、键盘输入。其中需要捕捉的有鼠标按下事件(位置)、鼠标移动事件(位置)、鼠标抬起事件(位置)、键盘按键事件(键盘按键种类)。
当脚本生产工具处于操作动作录制状态下时,脚本生产工具在设备映射区中每次检测到使用者的鼠标按下事件,记录下鼠标按下的位置;每次检测到鼠标抬起时,记录下鼠标抬起的位置并对本次鼠标事件进行解析。
因为人手操控鼠标不可能完全精确地操控鼠标,即使在执行单次的点击操作时,鼠标按下的位置和鼠标抬起的位置一般也不会完全精确地保持一致。因此我们需要设定一个误差范围(比如设备映射区中的5个像素距离),当鼠标按下抬起的位置差小于此误差范围时,则判定为此次鼠标按下-抬起事件为一次点击事件;当鼠标按下抬起的位置差大于此误差范围时,则判定为此次鼠标按下-抬起事件为一次滑动(拖动)事件。
内容四、脚本生产工具的封装与发送模块。
常规鼠标的操作分为左键按下、移动、抬起和右键按下、移动、抬起,对于移动设备(安卓、ios)来说,只有按下、移动、抬起操作。在脚本生产工具处于操作动作录制状态下时,为了实现通用化的封装,当脚本生产工具连接的是移动设备时,将鼠标按键(左按键或者右按键)的按下、移动、抬起操作归并为手指的按下、移动、抬起的操作。用户执行键盘输入时,脚本生产工具对对应的键盘输入进行事件判断,当键盘上按下回退(Backspace)、删除(Delete)、主页(Home)、转换(Shift)、大写(Caps Lock)按键时,脚本生产工具将操作封装成移动设备上对应的键盘事件,当键盘上按下字符输入类型的按键时(如a-z/1-9/键盘上其他输入字符),生产设备将操作封装成移动设备上对应的输入事件。
脚本生产工具在连接PC应用程序时,其不再将鼠标、键盘操作进行判别,而是直接将相应操作发送出去。
内容五、被测目标设备的操作响应模块。
脚本生产工具通过对设备映射区中的用户鼠标、键盘操作事件的捕捉,将对应的操作传输给被测目标设备的“操作响应模块”。
对于本地PC上的应用程序来说,其直接到嵌入脚本生产工具中,用户可以通过鼠标键盘直接对其进行操作,不需要额外封装“操作响应模块”。
对于远程的PC应用程序来说,直接调用对应的系统接口在PC系统上进行模拟的鼠标、键盘操作(以python语言举例,windows模拟操作实现),通过把PC系统上对应鼠标按下事件、鼠标移动事件、鼠标抬起事件的封装,实现模拟鼠标点击、鼠标拖动的操作。遇到键盘事件时,也同样使用封装好对应的模拟按键事件并执行,从而实现PC上的操作响应。
对于安卓设备来说,操作响应模块是一个运行在安卓设备中的minitouch进程,minitouch方法对安卓设备操作的实时性很高,几乎没有卡顿。该进程接收到脚本生产工具“操作捕捉模块”发来的指令后,进行相应的设备操作响应。对于ios设备来说,可以将KIF(ios的集成测试框架:)封装成操作模块作为内置集成模块嵌入到应用程序中,脚本生产工具与ios设备操作信息的推送,是通过ios设备上的应用程序层的通信实现的,脚本生产工具捕捉到用户操作后,将对应的操作指令发给连接的ios设备上的应用程序,应用程序收到对应的指令后,由内置集成模块进行ios设备的相应操作。
本发明通过使用minicap模块作为安卓系统的截屏通信工具,大大提升了截屏速度,达到实时查看画面的目的;另外通过使用minitouch模块,将安卓手机的操控进行远程虚拟化,解放了在测试过程中用户需要手动在手机上操作的不便。
本发明通过将安卓设备、ios设备、PC应用程序的画面获取、模拟操作分别进行功能性的统一化封装,对用户来说不需要再分别关心不同平台下测试接口,大大减小了学习成本和使用难度。
本发明提供了不同平台测试的统一化封装,因此可以使用同一套测试脚本,进行不同平台的测试内容。换句话说,通过统一化的画面、设备操作的封装,可以让用户抛开对平台的关心,使用同一套上层测试指令,进行同一个测试app在不同平台上册测试工作。使得各平台上测试工作的通用化大大增强,可以有效提高用户的跨平台测试效率。
针对跨平台自动化测试的应用场景,本发明将安卓、ios、PC应用程序的图像流和操作流进行统一化封装,使得测试过程中调用流程的统一化,自动化测试中不再需要关心不同平台下的底层接口的用法。且用户可以直接通过操作脚本生产工具中的设备映射区对被测目标设备进行操作。
图5示出了根据本发明一实施例的用于跨平台自动测试的装置的框图,如图5所示,本实施例所述的用于跨平台自动测试的装置包括设备映射模块510、操作捕捉模块520、以及封装与发送模块530。
该设备映射模块510被配置为,用于持续接收被测目标设备发送的屏幕画面并将所述屏幕画面渲染到在屏幕中指定的设备映射区;
该操作捕捉模块520被配置为,用于监听对所述设备映射区的操作,根据所述操作得到对所述被测目标设备的操作事件;
该封装与发送模块530被配置为,用于将所述操作事件封装成所述被测目标设备的操作系统对应的输入事件,将所述输入事件发送给所述被测目标设备。
根据本发明的一些实施例,所述操作捕捉模块用于:监听对所述设备映射区的鼠标按下操作、鼠标抬起操作、鼠标按下并移动操作、以及键盘输入操作中的至少一种。
根据本发明的一些实施例,若所述被测目标设备为触屏设备,所述操作捕捉模块用于:
根据鼠标按下操作得到对所述被测目标设备进行手指按下操作的操作事件;
根据鼠标抬起操作得到对所述被测目标设备进行手指抬起操作的操作事件;
根据鼠标按下并移动操作得到对所述被测目标设备进行手指划动操作的操作事件;
根据键盘输入操作得到对所述被测目标设备进行功能按键操作的操作事件。
根据本发明的一些实施例,所述被测目标设备包括触屏设备、远程PC、本地PC。
根据本发明的一些实施例,所述触屏设备包括智能移动终端、以及触摸屏的智能设备。
根据本发明的一些实施例,所述被测目标设备的操作系统包括安卓系统、ios系统、以及Windows系统。
根据本发明的一些实施例,所述设备映射模块用于:通过本地传输、USB传输、有线网络传输、以及无线网络传输中的一种传输方式持续接收被测目标设备发送的屏幕画面。
根据本发明的一些实施例,还包括脚本录制模块,用于在根据所述操作得到对所述被测目标设备的操作事件之后还包括:根据所述操作事件录制测试脚本。
关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本实施例提供的用于跨平台自动测试的装置可执行本发明实施例一和实施例二所提供的用于跨平台自动测试的方法,具备执行方法相应的功能模块和有益效果。
图6示出了根据本发明另一实施例的用于跨平台自动测试的装置的框图,该用于跨平台自动测试的装置配置于被测目标设备中,如图6所示,本实施例所述的用于跨平台自动测试的装置包括:窗口截图采集模块610、以及操作响应模块620。
该窗口截图采集模块610被配置为,用于通过被测程序中内置的通信模块创建截图进程,通过所述截图进程持续获取所述被测程序的窗口截图,并将所述窗口截图发送给脚本生产工具;
该操作响应模块620被配置为,用于监听所述脚本生产工具发送的输入事件,将所述输入事件发送给所述被测程序,以使所述被测程序根据所述输入事件进行操作响应。
根据本发明的一些实施例,所述窗口截图采集模块用于:通过所述通信模块获取所述被测程序的窗口标识,所述截图进程根据所述窗口标识持续获取所述应用程序的窗口位置与大小并进行窗口截图。
本实施例提供的用于跨平台自动测试的装置可执行本发明方法实施例所提供的用于跨平台自动测试的方法,具备执行方法相应的功能模块和有益效果。
图7示出了根据本发明一实施例的电子设备,如图7所示,电子设备700可包括处理器710、存储器720、发射器730及接收器740。
存储器720可存储用于处理器710控制操作处理的指令。存储器720可包括易失性或非易失性存储器,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)等,本发明对此没有限制。
处理器710可调用存储器720中存储的指令控制相关操作。根据一实施例,存储器720存储用于处理器710控制以下操作的指令:
持续接收被测目标设备发送的屏幕画面并将所述屏幕画面渲染到在屏幕中指定的设备映射区;
监听对所述设备映射区的操作,根据所述操作得到对所述被测目标设备的操作事件;
将所述操作事件封装成所述被测目标设备的操作系统对应的输入事件,将所述输入事件发送给所述被测目标设备。
易于理解,存储器720还可存储用于处理器710控制根据本发明实施例的其他操作的指令,这里不再赘述。
处理器710还可控制发射器730和接收器740进行信号收发等。
通过以上的详细描述,本领域的技术人员易于理解,根据本发明实施例的系统和方法具有以下优点中的一个或多个。
根据本发明的实施例,监听对所述设备映射区的操作包括:监听对所述设备映射区的鼠标按下操作、鼠标抬起操作、鼠标按下并移动操作、以及键盘输入操作中的至少一种。
根据本发明的一些实施例,
若所述被测目标设备为触屏设备,根据所述操作得到对所述被测目标设备的操作事件包括:
根据鼠标按下操作得到对所述被测目标设备进行手指按下操作的操作事件;
根据鼠标抬起操作得到对所述被测目标设备进行手指抬起操作的操作事件;
根据鼠标按下并移动操作得到对所述被测目标设备进行手指划动操作的操作事件;
根据键盘输入操作得到对所述被测目标设备进行功能按键操作的操作事件。
根据一些实施例,本发明还提供一种非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。当存储介质中的指令由终端的处理器执行时,使得终端能够执行下述方法:持续接收被测目标设备发送的屏幕画面并将所述屏幕画面渲染到在屏幕中指定的设备映射区;监听对所述设备映射区的操作,根据所述操作得到对所述被测目标设备的操作事件;将所述操作事件封装成所述被测目标设备的操作系统对应的输入事件,将所述输入事件发送给所述被测目标设备。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上具体地示出和描述了本发明的示例性实施例。应该理解,本发明不限于所公开的实施例,相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效布置。
Claims (12)
1.一种用于跨平台自动测试的方法,其特征在于,包括:
持续接收被测目标设备发送的屏幕画面并将所述屏幕画面渲染到在屏幕中指定的设备映射区;
监听对所述设备映射区的操作,根据所述操作得到对所述被测目标设备的操作事件;
将所述操作事件封装成所述被测目标设备的操作系统对应的输入事件,将所述输入事件发送给所述被测目标设备。
2.如权利要求1所述的方法,其特征在于,监听对所述设备映射区的操作包括:监听对所述设备映射区的鼠标按下操作、鼠标抬起操作、鼠标按下并移动操作、以及键盘输入操作中的至少一种。
3.如权利要求2所述的方法,其特征在于,若所述被测目标设备为触屏设备,根据所述操作得到对所述被测目标设备的操作事件包括:
根据鼠标按下操作得到对所述被测目标设备进行手指按下操作的操作事件;
根据鼠标抬起操作得到对所述被测目标设备进行手指抬起操作的操作事件;
根据鼠标按下并移动的操作得到对所述被测目标设备进行手指划动操作的操作事件;
根据键盘输入操作得到对所述被测目标设备进行功能按键操作的操作事件。
4.如权利要求1所述的方法,其特征在于,所述被测目标设备包括触屏设备、远程PC、本地PC。
5.如权利要求4所述的方法,其特征在于,所述触屏设备包括智能移动终端、以及触摸屏的智能设备。
6.如权利要求1所述的方法,其特征在于,所述被测目标设备的操作系统包括安卓系统、ios系统、以及Windows系统。
7.如权利要求1所述的方法,其特征在于,持续接收被测目标设备发送的屏幕画面的包括:通过本地传输、USB传输、有线网络传输、以及无线网络传输中的一种传输方式持续接收被测目标设备发送的屏幕画面。
8.如权利要求1所述的方法,其特征在于,在根据所述操作得到对所述被测目标设备的操作事件之后还包括:根据所述操作事件录制测试脚本。
9.一种用于跨平台自动测试的装置,其特征在于,包括:
设备映射模块,用于持续接收被测目标设备发送的屏幕画面并将所述屏幕画面渲染到在屏幕中指定的设备映射区;
操作捕捉模块,用于监听对所述设备映射区的操作,根据所述操作得到对所述被测目标设备的操作事件;
封装与发送模块,用于将所述操作事件封装成所述被测目标设备的操作系统对应的输入事件,将所述输入事件发送给所述被测目标设备。
10.如权利要求9所述的装置,其特征在于,所述操作捕捉模块用于:监听对所述设备映射区的鼠标按下操作、鼠标抬起操作、鼠标按下并移动操作、以及键盘输入操作中的至少一种。
11.如权利要求10所述的装置,其特征在于,若所述被测目标设备为触屏设备,所述操作捕捉模块用于:
根据鼠标按下操作得到对所述被测目标设备进行手指按下操作的操作事件;
根据鼠标抬起操作得到对所述被测目标设备进行手指抬起操作的操作事件;
根据鼠标按下并移动操作得到对所述被测目标设备进行手指划动操作的操作事件;
根据键盘输入操作得到对所述被测目标设备进行功能按键操作的操作事件。
12.一种电子设备,其特征在于,包括:处理器;存储器,存储用于所述处理器控制如权利要求1-8任一项操作的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710108814.0A CN106874206A (zh) | 2017-02-27 | 2017-02-27 | 用于跨平台自动测试的方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710108814.0A CN106874206A (zh) | 2017-02-27 | 2017-02-27 | 用于跨平台自动测试的方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106874206A true CN106874206A (zh) | 2017-06-20 |
Family
ID=59167899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710108814.0A Pending CN106874206A (zh) | 2017-02-27 | 2017-02-27 | 用于跨平台自动测试的方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874206A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108170596A (zh) * | 2017-12-26 | 2018-06-15 | 广州思谋信息科技有限公司 | 一种手机软件测试方法及系统 |
CN108170593A (zh) * | 2017-12-22 | 2018-06-15 | 北京奇虎科技有限公司 | 应用程序运行的方法及装置 |
CN108282542A (zh) * | 2018-02-13 | 2018-07-13 | 百度在线网络技术(北京)有限公司 | 用于测试设备的远程操作方法和装置 |
CN108427636A (zh) * | 2018-01-09 | 2018-08-21 | 阿里巴巴集团控股有限公司 | 应用的测试方法、系统和电子设备 |
CN108614774A (zh) * | 2018-04-24 | 2018-10-02 | 百度在线网络技术(北京)有限公司 | 自动化测试方法和装置 |
CN108763086A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 基于远程真机的脚本录制方法、终端及计算机可读存储介质 |
CN109670292A (zh) * | 2018-12-12 | 2019-04-23 | 北京云测信息技术有限公司 | 一种用于真机测试的ios设备手势操作实现方法 |
CN109710526A (zh) * | 2018-12-24 | 2019-05-03 | 北京云测信息技术有限公司 | 一种基于云服务自动化测试脚本录制回放系统及方法 |
CN109901828A (zh) * | 2017-12-09 | 2019-06-18 | 英业达科技有限公司 | 以操作快照编辑其他装置的自动化脚本的系统及方法 |
CN109992125A (zh) * | 2019-03-29 | 2019-07-09 | 京东方科技集团股份有限公司 | 信息输入方法、装置和系统 |
WO2019210674A1 (zh) * | 2018-05-03 | 2019-11-07 | 深圳市华夏双赢通信有限公司 | 模拟人工操作智能设备的方法、系统和装置 |
CN111221723A (zh) * | 2019-10-28 | 2020-06-02 | 东软集团股份有限公司 | 测试记录生成方法、装置、存储介质及电子设备 |
CN112162750A (zh) * | 2020-09-09 | 2021-01-01 | 杭州涂鸦信息技术有限公司 | 一种一份用例脚本实现不同系统相同功能方法和系统 |
CN112612699A (zh) * | 2020-12-21 | 2021-04-06 | 上海金途信息科技有限公司 | 一种hid人机交互场景用例通用自动化测试设备 |
CN112799891A (zh) * | 2021-01-15 | 2021-05-14 | 网易(杭州)网络有限公司 | iOS设备测试方法、装置、系统、存储介质及计算机设备 |
CN113014996A (zh) * | 2021-02-18 | 2021-06-22 | 上海哔哩哔哩科技有限公司 | 视频生成方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870284A (zh) * | 2014-04-01 | 2014-06-18 | 广州番禺职业技术学院 | 手机游戏开发装置与方法 |
CN104679627A (zh) * | 2013-12-02 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 测试方法及装置 |
CN105094952A (zh) * | 2015-09-07 | 2015-11-25 | 网易(杭州)网络有限公司 | 一种模拟用户操作的方法和装置 |
CN105740153A (zh) * | 2016-02-29 | 2016-07-06 | 网易(杭州)网络有限公司 | 云测试方法及装置 |
CN106201265A (zh) * | 2016-06-30 | 2016-12-07 | 网易(杭州)网络有限公司 | 一种基于web的移动终端操控方法、装置及系统 |
-
2017
- 2017-02-27 CN CN201710108814.0A patent/CN106874206A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679627A (zh) * | 2013-12-02 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 测试方法及装置 |
CN103870284A (zh) * | 2014-04-01 | 2014-06-18 | 广州番禺职业技术学院 | 手机游戏开发装置与方法 |
CN105094952A (zh) * | 2015-09-07 | 2015-11-25 | 网易(杭州)网络有限公司 | 一种模拟用户操作的方法和装置 |
CN105740153A (zh) * | 2016-02-29 | 2016-07-06 | 网易(杭州)网络有限公司 | 云测试方法及装置 |
CN106201265A (zh) * | 2016-06-30 | 2016-12-07 | 网易(杭州)网络有限公司 | 一种基于web的移动终端操控方法、装置及系统 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109901828A (zh) * | 2017-12-09 | 2019-06-18 | 英业达科技有限公司 | 以操作快照编辑其他装置的自动化脚本的系统及方法 |
CN108170593A (zh) * | 2017-12-22 | 2018-06-15 | 北京奇虎科技有限公司 | 应用程序运行的方法及装置 |
CN108170596A (zh) * | 2017-12-26 | 2018-06-15 | 广州思谋信息科技有限公司 | 一种手机软件测试方法及系统 |
CN108427636A (zh) * | 2018-01-09 | 2018-08-21 | 阿里巴巴集团控股有限公司 | 应用的测试方法、系统和电子设备 |
CN108282542A (zh) * | 2018-02-13 | 2018-07-13 | 百度在线网络技术(北京)有限公司 | 用于测试设备的远程操作方法和装置 |
CN108614774A (zh) * | 2018-04-24 | 2018-10-02 | 百度在线网络技术(北京)有限公司 | 自动化测试方法和装置 |
WO2019210674A1 (zh) * | 2018-05-03 | 2019-11-07 | 深圳市华夏双赢通信有限公司 | 模拟人工操作智能设备的方法、系统和装置 |
CN108763086A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 基于远程真机的脚本录制方法、终端及计算机可读存储介质 |
CN108763086B (zh) * | 2018-05-31 | 2024-04-02 | 康键信息技术(深圳)有限公司 | 基于远程真机的脚本录制方法、终端及计算机可读存储介质 |
CN109670292A (zh) * | 2018-12-12 | 2019-04-23 | 北京云测信息技术有限公司 | 一种用于真机测试的ios设备手势操作实现方法 |
CN109710526A (zh) * | 2018-12-24 | 2019-05-03 | 北京云测信息技术有限公司 | 一种基于云服务自动化测试脚本录制回放系统及方法 |
CN109992125A (zh) * | 2019-03-29 | 2019-07-09 | 京东方科技集团股份有限公司 | 信息输入方法、装置和系统 |
CN111221723B (zh) * | 2019-10-28 | 2023-11-24 | 东软集团股份有限公司 | 测试记录生成方法、装置、存储介质及电子设备 |
CN111221723A (zh) * | 2019-10-28 | 2020-06-02 | 东软集团股份有限公司 | 测试记录生成方法、装置、存储介质及电子设备 |
CN112162750A (zh) * | 2020-09-09 | 2021-01-01 | 杭州涂鸦信息技术有限公司 | 一种一份用例脚本实现不同系统相同功能方法和系统 |
CN112612699B (zh) * | 2020-12-21 | 2022-10-25 | 上海金途信息科技有限公司 | 一种hid人机交互场景用例通用自动化测试设备 |
CN112612699A (zh) * | 2020-12-21 | 2021-04-06 | 上海金途信息科技有限公司 | 一种hid人机交互场景用例通用自动化测试设备 |
CN112799891A (zh) * | 2021-01-15 | 2021-05-14 | 网易(杭州)网络有限公司 | iOS设备测试方法、装置、系统、存储介质及计算机设备 |
CN113014996A (zh) * | 2021-02-18 | 2021-06-22 | 上海哔哩哔哩科技有限公司 | 视频生成方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106874206A (zh) | 用于跨平台自动测试的方法、装置及电子设备 | |
CN105988367B (zh) | 云中的工业自动化环境的建模 | |
CN109254910B (zh) | 一种应用程序的测试方法、装置、电子设备及存储介质 | |
US20190306275A1 (en) | Methods for Software Development, Installation, and Management in Computer Systems and Methods for Controlling Input and Output Data Transfer in Computer Systems | |
CN112651126B (zh) | 一种基于bim的建筑工程施工优化系统、方法、终端及存储介质 | |
CN102053911A (zh) | 基于Android的自动化测试方法、系统及移动终端 | |
CN108255729A (zh) | 一种基于Unity平台的手机游戏自动化测试方法和系统 | |
CN107077292A (zh) | 剪贴信息提供方法和装置 | |
CN109947650B (zh) | 脚本步骤处理方法、装置和系统 | |
CN111124567B (zh) | 目标应用的操作录制方法和装置 | |
CN109783388A (zh) | Ui自动化测试方法、装置及电子设备 | |
CN103744787A (zh) | 一种手机自动化测试方法 | |
WO2020228283A1 (zh) | 特征提取方法、装置及计算机可读存储介质 | |
CN104346523A (zh) | 用于活动识别的方法、设备和计算机程序产品 | |
CN111176642B (zh) | 一种基于平面图的交互可视化处理系统及应用方法 | |
CN103345303B (zh) | 一种用智能移动设备全替代鼠标键盘的系统及实现方法 | |
CN110837466B (zh) | 一种基于源代码打桩的嵌入式软件动态测试方法 | |
CN113449877B (zh) | 用于展示机器学习建模过程的方法及系统 | |
CN111752826A (zh) | 一种接口测试方法、装置、电子设备及存储介质 | |
CN113467771B (zh) | 一种基于模型的工业边云协同系统和方法 | |
CN113238687A (zh) | 一种桌面平台上安卓应用按钮功能的实现方法及实现装置 | |
Thiyagarajan et al. | Integration in the physical world in IoT using android mobile application | |
CN109614317A (zh) | 电子装置、用户界面测试方法及存储介质 | |
CN109101414A (zh) | 基于埋点数据的海量ui测试生成方法及其装置 | |
CN107341398A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170620 |