发明内容
有鉴于此,本发明的目的在于提供一种脚本生成方法、脚本生成装置及服务器,以改善现有技术中测试脚本编写存在工作量大的问题。
为实现上述目的,本发明实施例采用如下技术方案:
一种脚本生成方法,包括:
根据测试用例从应用界面的各控件中确定待测试控件;
在预设的神经网络模型中查找到与所述待测试控件相匹配的属性信息,其中,所述神经网络模型中具有各控件的属性信息;
通过查找到的属性信息和预设的脚本模型生成所述待测试控件的测试脚本。
在本发明实施例较佳的选择中,在上述脚本生成方法中,在执行在预设的神经网络模型中查找到与所述待测试控件相匹配的属性信息的步骤之前,所述方法还包括:
针对应用界面中的每一个控件,将该控件的属性信息进行标识处理以生成对应的功能标签;
通过神经网络算法对各属性信息和各功能标签进行处理,以建立神经网络模型,其中,所述神经网络模型具有各属性信息和各功能标签的对应关系;
在预设的神经网络模型中查找到与所述待测试控件相匹配的属性信息的步骤包括:
在各功能标签中查找到与所述待测试控件的标识信息相匹配的功能标签;
根据查找到的功能标签获取对应的属性信息,以得到所述待测试控件的属性信息。
在本发明实施例较佳的选择中,在上述脚本生成方法中,在各功能标签中查找到与所述待测试控件的标识信息相匹配的功能标签的步骤包括:
按照预设路径将每一个功能标签与所述待测试控件的标识信息进行匹配;
根据匹配结果获取与所述待测试控件的标识信息相匹配的功能标签。
在本发明实施例较佳的选择中,在上述脚本生成方法中,每一个控件的属性信息包括多种子信息,将该控件的属性信息进行标识处理以生成对应的功能标签的步骤包括:
将该控件的属性信息包括的多种子信息进行组合处理,以得到属性信息集合;
对该属性信息集合进行标识处理,以生成对应的功能标签。
在本发明实施例较佳的选择中,在上述脚本生成方法中,通过查找到的属性信息和预设的脚本模型生成所述待测试控件的测试脚本的步骤包括:
判断查找到的属性信息中是否包括待测试控件的身份信息;
若查找到的属性信息中包括待测试控件的身份信息,则根据该身份信息和预设的脚本模型生成所述待测试控件的测试脚本。
在本发明实施例较佳的选择中,在上述脚本生成方法中,通过查找到的属性信息和预设的脚本模型生成所述待测试控件的测试脚本的步骤还包括:
若查找到的属性信息中未包括待测试控件的身份信息,则获取该属性信息中包括的坐标信息;
根据该坐标信息和预设的脚本模型生成所述待测试控件的测试脚本。
本发明实施例还提供了一种脚本生成装置,包括:
待测试控件确定模块,用于根据测试用例从应用界面的各控件中确定待测试控件;
属性信息查找模块,用于在预设的神经网络模型中查找到与所述待测试控件相匹配的属性信息,其中,所述神经网络模型中具有各控件的属性信息;
测试脚本生成模块,用于通过查找到的属性信息和预设的脚本模型生成所述待测试控件的测试脚本。
在本发明实施例较佳的选择中,在上述脚本生成装置中,所述脚本生成装置还包括:
功能标签生成模块,用于针对应用界面中的每一个控件,将该控件的属性信息进行标识处理以生成对应的功能标签;
网络模型建立模块,用于通过神经网络算法对各属性信息和各功能标签进行处理,以建立神经网络模型,其中,所述神经网络模型具有各属性信息和各功能标签的对应关系;
所述属性信息查找模块包括:
功能标签查找子模块,用于在各功能标签中查找到与所述待测试控件的标识信息相匹配的功能标签;
属性信息查找子模块,用于根据查找到的功能标签获取对应的属性信息,以得到所述待测试控件的属性信息。
在本发明实施例较佳的选择中,在上述脚本生成装置中,所述测试脚本生成模块包括:
身份信息判断子模块,用于判断查找到的属性信息中是否包括待测试控件的身份信息;
测试脚本生成子模块,用于在查找到的属性信息中包括待测试控件的身份信息时,根据该身份信息和预设的脚本模型生成所述待测试控件的测试脚本。
本发明实施例还提供了一种服务器,包括存储器、处理器和脚本生成装置,所述脚本生成装置包括一个或多个存储于所述存储器中并由所述处理器执行的软件功能模块,其中,所述软件功能模块包括:
待测试控件确定模块,用于根据测试用例从应用界面的各控件中确定待测试控件;
属性信息查找模块,用于在预设的神经网络模型中查找到与所述待测试控件相匹配的属性信息,其中,所述神经网络模型中具有各控件的属性信息;
测试脚本生成模块,用于通过查找到的属性信息和预设的脚本模型生成所述待测试控件的测试脚本。
本发明提供的脚本生成方法、脚本生成装置及服务器,通过控件的属性信息和预设的脚本模型,可以自动生成该控件的测试脚本,以替代维护人员对测试脚本进行修改,进而改善现有技术中测试脚本编写存在工作量大的问题。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明的一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
如图1所示,本发明实施例提供了一种服务器10,包括存储器12、处理器14和脚本生成装置100。
所述存储器12和处理器14之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述脚本生成装置100包括至少一个可以软件或固件(firmware)的形式存储于所述存储器12中的软件功能模块。所述处理器14用于执行所述存储器12中存储的可执行的计算机程序,例如,所述脚本生成装置100所包括的软件功能模块及计算机程序等,以实现脚本生成方法。
其中,所述存储器12可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器12用于存储程序,所述处理器14在接收到执行指令后,执行所述程序。
所述处理器14可能是一种集成电路芯片,具有信号的处理能力。上述的处理器14可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
可以理解,图1所示的结构仅为示意,所述服务器10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。
可选地,所述服务器10可以是,但不限于,web(网站)服务器、数据服务器等,还可以是电脑、移动上网设备(mobile Internet device,MID)等具有处理功能的电子设备。
结合图2,本发明实施例还提供一种可应用于上述服务器10的脚本生成方法。其中,所述方法有关的流程所定义的方法步骤可以由所述处理器14实现。下面将对图2所示的具体流程进行详细阐述。
步骤S110,根据测试用例从应用界面的各控件中确定待测试控件。
步骤S130,在预设的神经网络模型中查找到与所述待测试控件相匹配的属性信息。
步骤S150,通过查找到的属性信息和预设的脚本模型生成所述待测试控件的测试脚本。
在本实施例中,测试用例的具体内容不受限制,可以根据实际需求进行设置。其中,需要进行测试的待测试控件的数量不受限制,既可以是一个,也可以是多个。
例如,测试用例可以是在应用界面点击微信、然后在微信的应用界面点击联系人、然后点击发送消息,从而完成对通过微信发送消息的测试,该测试用例对应的控件可以包括微信图标对应的控件、联系人图标对应的控件和消息发送图标对应的控件。其中,若仅需要对微信是否可以正常启动进行测试,测试用例可以是在应用界面点击微信,对应的待测试控件可以是微信图标对应的控件。
在通过测试用例确定待测试控件之后,为实现测试脚本的自动生成,可以从预设的神经网络模型中获取待测试控件的属性信息,以便于根据属性信息和预设的脚本模型生成测试脚本。其中,所述神经网络模型中具有各控件的属性信息,所述脚本模型可以是一段程序代码模板,通过将待测试控件的属性信息作为参数传入所述程序代码模板,可以得到待测试控件的测试脚本。
进一步地,为便于在执行步骤S130时可以准确、有效地查到与待测试控件相匹配的属性信息,在本实施例中,结合图3,在执行步骤S130之前,所述脚本生成方法还可以包括步骤S170和步骤S190以对属性信息进行处理,进而得到具有功能标签的神经网络模型。
步骤S170,针对应用界面中的每一个控件,将该控件的属性信息进行标识处理以生成对应的功能标签。
在本实施例中,所述功能标签可以是指该控件的功能,例如,若该控件的图标形状为“+”,生成的功能标签可以是“新建”或“添加”,若该控件的图标形状为“-”或“x”,生成的功能标签可以是“删除”。
步骤S190,通过神经网络算法对各属性信息和各功能标签进行处理,以建立神经网络模型。
在本实施例中,所述神经网络模型具有各属性信息和各功能标签的对应关系。例如,对应关系可以为Y=f(X),其中,X可以表示属性信息,Y可以表示功能标签。
进一步地,考虑到建立的神经网络模型中具有属性信息和功能标签的对应关系,在本实施例中,结合图4,步骤S130可以包括步骤S131和步骤S133,以准确、有效地查找到匹配的属性信息。
步骤S131,在各功能标签中查找到与所述待测试控件的标识信息相匹配的功能标签。
步骤S133,根据查找到的功能标签获取对应的属性信息,以得到所述待测试控件的属性信息。
在本实施例中,由于应用界面中一般包括多个控件,对应的属性信息有多条,因此,进行标识处理得到的功能标签为多个。因此,可以通过执行步骤S131,从各功能标签中查找到与待测试控件相匹配的功能标签。其中,考虑到所述功能标签是根据对应控件的图标形状生成,因此,在本实施例中,可以将待测试控件的图标形状作为标识信息,以实现对应功能标签的准确、有效地查找,进而通过执行步骤S133以根据神经网络模型中属性信息和功能标签的对应关系,查找到与待测试控件相匹配的属性信息。
其中,在执行步骤S131在各功能标签中查找到匹配的功能标签的方式不受限制,例如,可以通过遍历法实现。在本实施例中,结合图5,步骤S131可以包括步骤S131a和步骤S131b。
步骤S131a,按照预设路径将每一个功能标签与所述待测试控件的标识信息进行匹配。
步骤S131b,根据匹配结果获取与所述待测试控件的标识信息相匹配的功能标签。
在本实施实例中,预设路径的具体内容不受限制,例如,既可以是按照神经网络模型中的任意一个节点沿周围节点逐步查找,也可以是在神经网络模型中沿首节点到末节点逐个查找。
进一步地,考虑到在通过属性信息和预设的脚步模型生成测试脚本中,属性信息的作用是对待测试控件进行定位,并且属性信息中一般包括有多种具有定位作用的子信息,例如,控件的身份信息、控件的坐标信息(横坐标值与纵坐标值)、控件是否在应用界面的中央一级控件是否能够在应用界面滑动等能够影响对控件进行定位的信息。为便于对各子信息进行统一管理,在本实施例中,结合图6,步骤S170,可以包括步骤S171和步骤S173。
步骤S171,将该控件的属性信息包括的多种子信息进行组合处理,以得到属性信息集合。
步骤S173,对该属性信息集合进行标识处理,以生成对应的功能标签。
在本实施例中,针对任意一个控件,可以将该控件的属性信息中的各子信息进行组合,形成属性信息集合,并对该集合进行整体标识以生成功能标签。在执行步骤S133时,可以通过查找到的功能标签,在神经网络模型中查找到对应的属性信息集合,并获取该信息集合中的定位信息,例如,控件的身份信息和控件的坐标信息。
进一步地,考虑到属性信息中一般存在多种可以对控件进行定位以生成测试脚本的信息,在本实施例中,结合图7,步骤S150可以包括步骤S151和步骤S153,以通过控件的身份信息生成测试脚本。
步骤S151,判断查找到的属性信息中是否包括待测试控件的身份信息。
步骤S153,若查找到的属性信息中包括待测试控件的身份信息,则根据该身份信息和预设的脚本模型生成所述待测试控件的测试脚本。
在本实施例中,考虑到属性信息中一般包括有待测试控件的身份信息,且该身份信息可以准确、有效地对待测试控件进行标识,进而保证生成的测试脚本可以准确、有效地对待测试控件进行测试,因此,优选身份信息可以待测试控件的定位信息。
进一步地,考虑到在部分情况下控件不存在身份信息或在建立神经网络模型时未获取到控件的身份信息的问题,为保证能够对该控件生成测试脚本,还可以通过属性信息中的坐标信息对该控件进行定位。在本实施例中,结合图8,步骤S150还可以包括步骤S155和步骤S157。
步骤S155,若查找到的属性信息中未包括待测试控件的身份信息,则获取该属性信息中包括的坐标信息。
步骤S157,根据该坐标信息和预设的脚本模型生成所述待测试控件的测试脚本。
在本实施例中,通过获取待测试控件的身份信息或坐标信息,并将该信息作为预设的脚本模型的参数输入至所述脚本模型,可以得到待测试控件的测试脚本。
结合图9,本发明实施例还提供一种可应用于上述服务器10的脚本生成装置100。其中,所述脚本生成装置100包括待测试控件确定模块110、属性信息查找模块130及测试脚本生成模块150。
所述待测试控件确定模块110,用于根据测试用例从应用界面的各控件中确定待测试控件。在本实施例中,所述待测试控件确定模块110可用于执行图2所示的步骤S110,关于所述待测试控件确定模块110的具体描述可以参照前文对步骤S110的描述。
所述属性信息查找模块130,用于在预设的神经网络模型中查找到与所述待测试控件相匹配的属性信息,其中,所述神经网络模型中具有各控件的属性信息。在本实施例中,所述属性信息查找模块130可用于执行图2所示的步骤S130,关于所述属性信息查找模块130的具体描述可以参照前文对步骤S130的描述。
所述测试脚本生成模块150,用于通过查找到的属性信息和预设的脚本模型生成所述待测试控件的测试脚本。在本实施例中,所述测试脚本生成模块150可用于执行图2所示的步骤S150,关于所述测试脚本生成模块150的具体描述可以参照前文对步骤S150的描述。
结合图10和图11,为便于准确、有效地查找到匹配的属性信息,在本实施例中,所述脚本生成装置100还可以包括功能标签生成模块170和网络模型建立模块190,以建立神经网络模型。所述属性信息查找模块130可以包括功能标签查找子模块131和属性信息查找子模块133,以从所述神经网络模型中查找到匹配的属性信息。
所述功能标签生成模块170,用于针对应用界面中的每一个控件,将该控件的属性信息进行标识处理以生成对应的功能标签。在本实施例中,所述功能标签生成模块170可用于执行图3所示的步骤S170,关于所述功能标签生成模块170的具体描述可以参照前文对步骤S170的描述。
所述网络模型建立模块190,用于通过神经网络算法对各属性信息和各功能标签进行处理,以建立神经网络模型,其中,所述神经网络模型具有各属性信息和各功能标签的对应关系。在本实施例中,所述网络模型建立模块190可用于执行图3所示的步骤S190,关于所述网络模型建立模块190的具体描述可以参照前文对步骤S190的描述。
所述功能标签查找子模块131,用于在各功能标签中查找到与所述待测试控件的标识信息相匹配的功能标签。在本实施例中,所述功能标签查找子模块131可用于执行图4所示的步骤S131,关于所述功能标签查找子模块131的具体描述可以参照前文对步骤S131的描述。
所述属性信息查找子模块133,用于根据查找到的功能标签获取对应的属性信息,以得到所述待测试控件的属性信息。在本实施例中,所述属性信息查找子模块133可用于执行图4所示的步骤S133,关于所述属性信息查找子模块133的具体描述可以参照前文对步骤S133的描述。
进一步地,在本实施例中,所述功能标签查找子模块131可以包括功能标签匹配单元和功能标签获取单元。
所述功能标签匹配单元,用于按照预设路径将每一个功能标签与所述待测试控件的标识信息进行匹配。在本实施例中,所述功能标签匹配单元可用于执行图5所示的步骤S131a,关于所述功能标签匹配单元的具体描述可以参照前文对步骤S131a的描述。
所述功能标签获取单元,用于根据匹配结果获取与所述待测试控件的标识信息相匹配的功能标签。在本实施例中,所述功能标签获取单元可用于执行图5所示的步骤S131b,关于所述功能标签获取单元的具体描述可以参照前文对步骤S131b的描述。
进一步地,考虑到属性信息一般包括有多种用于定位控件的子信息,所述功能标签生成模块170可以包括信息集合获取子模块和功能标签生成子模块。
所述信息集合获取子模块,用于将该控件的属性信息包括的多种子信息进行组合处理,以得到属性信息集合。在本实施例中,所述信息集合获取子模块可用于执行图6所示的步骤S171,关于所述信息集合获取子模块的具体描述可以参照前文对步骤S171的描述。
所述功能标签生成子模块,用于对该属性信息集合进行标识处理,以生成对应的功能标签。在本实施例中,所述功能标签生成子模块可用于执行图6所示的步骤S173,关于所述功能标签生成子模块的具体描述可以参照前文对步骤S173的描述。
结合图12,在本实施例中,所述测试脚本生成模块150可以包括身份信息判断子模块151、测试脚本生成子模块153和坐标信息获取子模块155。
所述身份信息判断子模块151,用于判断查找到的属性信息中是否包括待测试控件的身份信息。在本实施例中,所述身份信息判断子模块151可用于执行图7所示的步骤S151,关于所述身份信息判断子模块151的具体描述可以参照前文对步骤S151的描述。
所述测试脚本生成子模块153,用于在查找到的属性信息中包括待测试控件的身份信息时,根据该身份信息和预设的脚本模型生成所述待测试控件的测试脚本。在本实施例中,所述测试脚本生成子模块153可用于执行图7所示的步骤S153,关于所述测试脚本生成子模块153的具体描述可以参照前文对步骤S153的描述。
所述坐标信息获取子模块155,用于在查找到的属性信息中未包括待测试控件的身份信息时,获取该属性信息中包括的坐标信息。在本实施例中,所述坐标信息获取子模块155可用于执行图8所示的步骤S155,关于所述坐标信息获取子模块155的具体描述可以参照前文对步骤S155的描述。
所述测试脚本生成子模块153,还用于根据该坐标信息和预设的脚本模型生成所述待测试控件的测试脚本。在本实施例中,所述测试脚本生成子模块153还可用于执行图8所示的步骤S157,关于所述测试脚本生成子模块153的具体描述可以参照前文对步骤S157的描述。
综上所述,本发明提供的一种脚本生成方法、脚本生成装置100及服务器10,通过控件的属性信息和预设的脚本模型,可以自动生成该控件的测试脚本,以替代维护人员对测试脚本进行修改,进而改善现有技术中测试脚本编写存在工作量大的问题。其次,通过对属性信息进行标识处理以得到对应的功能标签,可以通过功能标签准确、可靠地查找到对应的属性信息,以完成测试脚本的生成工作。然后,通过控件的身份信息或属性信息生成测试脚本,可以避免部分控件因无身份信息而存在无法有效生成测试脚本的问题。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。