脚本数据处理方法及装置与流程

文档序号:11829428阅读:214来源:国知局
脚本数据处理方法及装置与流程

本申请涉及软件测试技术领域,尤其涉及一种脚本数据处理方法及装置。



背景技术:

软件测试是软件开发过程中不可缺少的,其目的是发现潜伏在软件中的缺陷,减少软件开发和维护成本,促进软件质量提升。随着软件功能复杂度的不断提高,相应的自动化测试技术也在不断发展和进步。

在各类型的自动化软件测试中,最接近用户需求的软件测试是与用户交互相关的,即UI自动化测试。UI自动化测试的原理是在测试过程中,使用自动化执行脚本模拟用户行为,通过对自动化执行脚本进行回放和调试,达到UI自动化测试的目的。

目前,UI自动化测试过程中对自动化执行脚本的回放和调试需要基于相应的集成开发环境(Integrated Development Environment,IDE)实现,即需要用户下载IDE,在IDE中编写执行脚本,然后在IDE中进行执行脚本的回放和调试。可见,现有处理脚本数据的过程较为复杂,效率较低。



技术实现要素:

本申请的多个方面提供一种脚本数据处理方法及装置,用以简化测试过程中对脚本数据的处理操作,提高处理效率。

本申请的一方面,提供一种脚本数据处理方法,包括:

监听用户在页面上发出的脚本处理指令;

当监听到所述脚本处理指令后,获取用于描述所述用户在发出所述脚本 处理指令之前在所述页面上的操作的数据化信息,根据所述数据化信息生成执行脚本,对所述执行脚本进行处理。

本申请的另一方面,提供一种脚本数据处理装置,包括:

监听模块,用于监听用户在页面上发出的脚本处理指令;

脚本处理模块,用于当监听到所述脚本处理指令后,获取用于描述所述用户在发出所述脚本处理指令之前在所述页面上的操作的数据化信息,根据所述数据化信息生成执行脚本,对所述执行脚本进行处理。

由上述技术方案可知,本申请中用户在应用页面上进行操作之后,可以直接在页面上发出脚本处理指令,当监听到用户发出的脚本处理指令后,获取用户之前在页面上进行操作产生的数据化信息,根据该数据化信息自动生成可执行脚本,然后对执行脚本进行处理。与现有技术相比,本申请不需要额外打开IDE,也不需要手动编写执行脚本,简化了对脚本数据的处理操作,提高了处理脚本数据的效率。

【附图说明】

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请一实施例提供的脚本数据处理方法的流程示意图;

图2为本申请一实施例提供的脚本数据处理装置的结构示意图;

图3为本申请另一实施例提供的脚本数据处理装置的结构示意图。

【具体实施方式】

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申 请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在将应用投入实际运行前,需要对应用进行测试,以修正应用中的语法错误和逻辑错误。在现有UI自动化测试过程中,由于依赖于IDE,需要用户打开IDE,然后在IDE中编写模拟用户行为的执行脚本,进而才能对执行脚本进行回放和调试,导致对执行脚本的处理操作较为繁琐,处理效率较低。针对该问题,本实施例提供一种脚本数据处理方法,其原理是基于页面交互,对用于描述用户在页面上的操作的执行脚本进行处理。

图1为本申请一实施例提供的脚本数据处理方法的流程示意图。如图1所示,该方法包括:

101、监听用户在页面上发出的脚本处理指令。

102、当监听到上述脚本处理指令后,获取用于描述用户在发出上述脚本处理指令之前在页面上的操作的数据化信息,根据该数据化信息生成执行脚本,对该执行脚本进行处理。

本实施例提供一种脚本数据处理方法,可由脚本数据处理装置(后续简称为处理装置)来执行。该处理装置可以是各种支持用户界面操作的应用,例如浏览器、游戏APP等;或者,该处理装置也可以是独立于各种支持用户界面操作的应用,但向这些应用提供脚本数据处理服务的装置,例如可以是各类应用的插件。其中,支持用户界面操作的应用一般会面向用户提供页面,页面上包括各种控件。用户通过操作页面上的各种控件,实现与应用的交互。

举例说明,用户在页面上的操作包括但不限于:在页面上点击按钮的操作,在页面上输入信息的操作,在页面上点击鼠标的操作,在页面上移动鼠标的操作,在页面上选择对象的操作,等等。根据应用的不同,所述页面也会有所不同。以浏览器为例,则所述页面为web页面;以游戏为例,则所述页面为游戏页面。

本实施例中的数据化信息是指能够表示用户在页面上的操作,且不依赖于任何语言形式的信息。以点击登录按钮的操作(click)为例,以下四个词的组合就可以表达该操作的意义:按钮(button)、按钮的控件id、id值、点击(click),而这四个词可以采用基于超文本标记语言(Hypertext Markup Language,HTML)文件对象模型的(Document Object Model,Dom)的,其完全独立于任何语言形式,具有很高的稳定性。因此,可以将采用HTML Dom描述的上述四个词的组合作为本实施例的数据化信息。

用户在页面上的操作一般会涉及动作、操作对象、操作数据、检查功能等中的一个或多个。则上述数据化信息包括但不限于以下之一或任意组合:用于描述动作的数据化信息、用于描述操作对象的数据化信息、用于描述操作数据的数据化信息、用于描述检查功能的数据化信息。下面对各种数据化信息进行举例说明:

用于描述动作的数据化信息包括但不限于:Set(输入)、或,Click(点击)、或,Dblclick(双击)、或,Rclick(右击)、或,Select(选择)、或,File(文件上传)、或,Mouseover(鼠标于元素上移动)、或,Drag(拖放)、或,Db(数据库操作)。例如,针对内容为Action:动作标识字符串的操作数据,则可以将Action之后的动作标识字符串的内容作为动作的数据化信息。

用于描述操作数据的数据化信息可以包括:type(数据类型),且type(数据类型)进一步包括:C(常量)、VM(变量)和DB(数据中心,第三方来源)。例如,针对内容为Data:{Type:”C”,Value:”test”,Name:“test”}的操作数据,可以将操作数据中Data之后的内容作为操作数据的数据化信息。

用于描述操作对象的数据化信息具体为:Id(元素id信息)、或,Class(元素class信息)、或,Text(元素文案信息)、或,tagName(元素标签信息)。例如,针对内容为Element:{"identify_data":{…},“name”:”test”}的操作数据,则可以将操作数据中Element之后的内容作为操作对象的数据 化信息。

用于描述检查功能的数据化信息可以包括:检查功能type(类型),且该检查功能类型进一步包括:Text(文本检查)、DB(数据库表检查)、统一资源定位符(Uniform Resource Locator,URL)检查和其它复杂性数据检查。例如,针对内容为checksteps”:[{Type:”text”,expected:”test”}]的操作数据,其对应的数据化信息可以是操作数据中checksteps之后的内容。

本实施例方法的具体流程如下:

用户在应用提供的页面上进行操作,之后当需要进行脚本处理时,用户可以直接在页面上发出脚本处理指令;处理装置监听到用户在页面上发出的脚本处理指令;当监听到用户在页面上发出脚本处理指令后,获取用于描述用户在发出脚本处理指令之前在页面上的操作的数据化信息,根据该数据化信息自动生成可执行脚本,然后对执行脚本进行处理。

在一可选实施方式中,处理装置可以提供一WebSocket端口,通过该端口对应用提供的页面进行监听,以便于监听用户在页面上发出的脚本处理指令。

在一可选实施方式中,可以通过应用对应的服务器来存储数据化信息,并且服务器通过标识来区分不同的数据化信息。基于此,处理装置在监听到脚本处理指令后,可以向服务器发送获取请求,该获取请求中包括数据化信息的标识;服务器接收客户端发送的获取请求,从获取请求中解析出数据化信息的标识,获取与该标识对应的数据化信息,并返回给处理装置;处理装置接收服务端返回的数据化信息。

其中,在向服务器发送获取请求,以请求获取上述数据化信息之前,可以通过但不限于以下方式将数据化信息存储到服务器:

预先对用户在页面上的操作进行录制,获得操作数据;将操作数据发送给服务器;服务器从操作数据中提取数据化信息并为数据化信息分配标识,并将分配给数据化信息的标识返回;接收服务器返回的数据化信息的标识。

值得说明的是,上述对用户在页面上的操作进行录制的过程可以由本实施例的处理装置来执行,则服务器返回的数据化信息的标识具体也由本实施例的处理装置接收并存储。或者,上述对用户在页面上的操作进行录制的过程可以由专门的录制工具来执行,则服务器返回的数据化信息的标识具体也由该录制工具接收并存储。在基于录制工具实现的应用场景中,处理装置具体可以通过录制工具获取数据化信息的标识。其中,该录制工具可以作为应用的一个功能或插件等实现,但不限于此。

在另一可选实施方式中,处理装置预先对用户在页面上的操作进行录制,以获得操作数据,然后将操作数据存储在本地。基于此,处理装置在监听到脚本处理指令后,可以在本地获取用户在发出脚本处理指令之前在页面上进行操作产生的操作数据,从操作数据中提取所需的数据化信息。

在采用上述各种方式获取到数据化信息之后,处理装置根据数据化信息自动生成执行脚本;然后,再对执行脚本进行处理。

根据应用场景的不同,执行脚本使用的编程语言会有所不同。其中,编程语言可以分为编译型语言和解释型语言。编译型语言是指需要编译后才能执行的语言,如java、C++等;解释型语言是指不需要编译直接即可执行的语言,如js等。

针对上述情况,在需要使用编译型语言的应用场景中,可以预先设定所使用的编译型语法模板,则处理装置具体可以按照编译型语法模板对数据化信息进行数据解析,以生成动态脚本,该动态脚本实际上是符合该编译型语法模板的代码;然后,对动态脚本进行编译,以生成执行脚本。

针对上述情况,在需要使用解释型语言的应用场景中,可以预先设定所使用的解释型语法模板,则处理装置具体可以按照解释型语法模板对数据化信息进行数据解析,以生成执行脚本。

由上述可见,本实施例通过使用数据化信息,而不是直接使用特定编程语言编写的脚本,使执行脚本的生成更加灵活,可以不受编程语言的限制,提高了处理脚本数据的灵活性,使得本实施例方法的应用场景更广泛;另外, 同一维护管理数据化信息即可,不需要针对不同编程语言维护和开发执行脚本,因此还可以节约执行脚本的开发开销,减少执行脚本的维护难度。

本申请实施例中对执行脚本的处理包括但不限于:回放和/或调试。

例如,若希望对脚本进行回放,则用户可以在应用的页面上发出回放指令。例如,应用可以在其页面上提供回放按钮,用户通过点击页面上的回放按钮发出回放指令。则处理装置对执行脚本进行处理的过程具体为:加载执行脚本;执行该执行脚本;在页面上展示执行脚本的执行日志。所述执行日志包括与该执行脚本的执行过程相关的信息,例如当前执行到的步骤、每个步骤涉及的对象、每个步骤的执行结果等。

例如,若希望对脚本进行调试,则用户可以在应用的页面上发出调试指令。例如,应用可以在其页面上提供调试按钮,用户通过点击页面上的调试按钮发出调试指令。进一步,该调试按钮可以包括:逐行调试按钮和断点调试按钮。用户可以通过逐行调试按钮发出逐行调试指令,以对执行脚本进行逐行调试。逐行调试是指一行一行的对执行脚本中的代码进行调试。用户可以通过断点调试按钮发出断点调试指令,以对执行脚本进行断点调试。断点调试是指用户在执行脚本的某些行设置断点,执行脚本只有在运行到断点所在行时才停止。

以上述断点调试为例,则处理装置对执行脚本进行处理的过程包括:

加载执行脚本;在页面上展示执行脚本;在执行该执行脚本的过程中,监听用户通过页面发出的断点设置指令,当监听到断点设置指令后,在执行脚本中设置断点;当执行到执行脚本中断点所在行时,暂停执行并将断点所在行的执行信息展示在页面上。这样可以显示到具体的步骤进行调试。

由上述可见,与现有技术相比,本实施例允许用户直接在进行操作的应用页面上发出脚本处理指令,不需要额外打开IDE,另外也不需要用户手动编写执行脚本,而是自动根据用户之前在页面上进行操作产生的数据化信息生成,简化了对脚本数据的处理操作,提高了处理脚本数据的效率。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表 述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

图2为本申请一实施例提供的脚本数据处理装置的结构示意图。如图2所示,该装置包括:监听模块21和脚本处理模块22。

监听模块21,用于监听用户在页面上发出的脚本处理指令。

脚本处理模块22,用于当监听模块21监听到脚本处理指令后,获取用于描述用户在发出上述脚本处理指令之前在页面上的操作的数据化信息,根据数据化信息生成执行脚本,对执行脚本进行处理。

在一可选实施方式中,脚本处理模块22在获取用于描述用户在发出上述脚本处理指令之前在页面上的操作的数据化信息时,具体用于:

向服务器发送获取请求,获取请求包括:数据化信息的标识;

接收服务器返回的数据化信息。

可选的,如图3所示,该脚本数据处理装置还包括:第一操作处理模块23,用于:

对用户在发出上述脚本处理指令之前在页面上的操作进行录制,以获得操作数据;

将操作数据发送给服务器,以供服务器从操作数据中提取数据化信息并为数据化信息分配标识;

接收服务器返回的数据化信息的标识。

第一操作处理模块23可以向脚本处理模块22提供数据化信息的标识。

在一可选实施方式中,脚本处理模块22在获取用于描述用户在发出上述脚本处理指令之前在页面上的操作的数据化信息时,具体用于:

在本地获取用户之前在页面上进行操作产生的操作数据;

从操作数据中提取数据化信息。

可选的,如图3所示,该脚本数据处理装置还包括:第二操作处理模块24,用于:

对用户在发出上述脚本处理指令之前在页面上的操作进行录制,以获得操作数据;

将操作数据存储在本地。

其中,第二操作处理模块24可以向脚本处理模块22提供操作数据。

在一可选实施方式中,脚本处理模块22在根据数据化信息生成执行脚本时,具体用于:

按照编译型语法模板对数据化信息进行数据解析,以生成动态脚本;

对动态脚本进行编译,以生成执行脚本;或者

按照解释型语法模板对数据化信息进行数据解析,以生成执行脚本。

在一可选实施方式中,脚本处理指令为回放指令。基于此,脚本处理模块22在对执行脚本进行处理时,具体用于:

加载执行脚本;

执行上述执行脚本;

并在页面上展示执行脚本的执行日志。

在一可选实施方式中,脚本处理指令为调试指令。基于此,脚本处理模块22在对执行脚本进行处理时,具体用于:

加载执行脚本;

在页面上展示执行脚本;

在执行上述执行脚本的过程中,监听用户通过页面发出的断点设置指令,当监听到断点设置指令后,在执行脚本中设置断点;

当执行到执行脚本中断点所在行时,暂停执行并将断点所在行的执行信息展示在页面上。

在一可选实施方式中,上述页面具体为web页面。

本实施例提供的脚本数据处理装置,允许用户在应用页面上进行操作之 后,直接在页面上发出脚本处理指令,脚本数据处理装置监听到用户发出的脚本处理指令,当监听到用户发出的脚本处理指令后,获取用户之前在页面上进行操作产生的数据化信息,根据该数据化信息自动生成可执行脚本,然后对执行脚本进行处理。与现有技术相比,本申请的脚本数据处理装置不需要额外打开IDE,也不需要手动编写执行脚本,简化了对脚本数据的处理操作,提高了处理脚本数据的效率。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等) 或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1