发明内容
有鉴于此,本申请实施例提供一种脚本测试方法及装置,以解决现有技术在进行脚本测试时,通常会因为脚本中定义变量较多、且脚本内容复杂,导致脚本测试准确性降低的问题。
为了实现上述目的,本申请实施例提供的技术方案如下:
一种脚本测试方法,包括:
接收待测试脚本,所述待测试脚本内包含至少一条测试语句,每条所述测试语句中包含有:目标对象类型标识、目标对象标识和测试目的标识;
对所述待测试脚本中的测试语句进行编译;
依据编译后测试语句中的所述目标对象类型标识、所述目标对象标识、所述测试目的标识对预先存储在数据库中的目标对象进行测试。
优选地,所述数据库中预先设置有至少一个对象,
所述对预先存储在数据库中的目标对象进行测试,包括:
根据编译后测试语句中的所述目标对象类型标识在所述数据库中查找与所述目标对象类型标识相对应的目标对象类型下的所有对象;
按照编译后测试语句中的所述目标对象标识在查找到的所有对象中查找目标对象;
根据编译后测试语句中的所述测试目的标识查找测试接口;
利用所述测试接口对所述目标对象进行测试。
优选地,所述待测试脚本中包含多条测试语句,所述对所述待测试脚本中的测试语句进行编译,包括:
逐条对所述待测试脚本中的测试语句进行编译。
优选地,所述待测试脚本中包含多条测试语句,所述对所述待测试脚本中的测试语句进行编译,包括:
对所述待测试脚本中的所有所述测试语句进行编译;
并且,
所述对预先存储在数据库中的目标对象进行测试,包括:
依据编译后测试语句中的所述目标对象类型标识、所述目标对象标识和所述测试目的标识逐条对预先存储在数据库中的目标对象进行测试。
优选地,所述方法还包括:
生成包含有测试结果的测试报告。
优选地,所述方法还包括:
显示所述测试报告。
一种脚本测试装置,包括:脚本接收单元、编译单元和测试单元,其中,
所述脚本接收单元用于接收待测试脚本,所述待测试脚本内包含至少一条测试语句,每条所述测试语句中包含有:目标对象类型标识、目标对象标识和测试目的标识;
所述编译单元与所述脚本接收单元相连接,用于对所述待测试脚本中的测试语句进行编译;
所述测试单元与所述编译单元相连接,用于依据编译后测试语句中的所述目标对象类型标识、所述目标对象标识和所述测试目的标识对预先存储在数据库中的目标对象进行测试。
优选地,所述数据库中预先设置有至少一个对象,所述测试单元包括:对象查找单元、目标对象查找单元、测试接口查找单元和测试子单元,其中,
所述对象查找单元与所述编译单元相连接,用于根据编译后测试语句中的所述目标对象类型标识在所述数据库中查找与目标对象类型标识相对应的目标对象类型下的所有对象;
所述目标对象查找单元的一端与所述对象查找单元相连接,另一端与所述编译单元相连接,用于按照编译后测试语句中的所述目标对象标识在查找到的所有所述对象中查找目标对象;
所述测试接口查找单元与所述编译单元相连接,用于根据编译后测试语句中的所述测试目的标识查找测试接口;
所述测试子单元的一端与所述目标对象查找单元相连接,另一端与所述测试接口查找单元相连接,用于利用所述测试接口对所述目标对象进行测试。
优选地,所述装置还包括:测试报告生成单元,所述测试报告生成单元与所述测试子单元相连接,用于生成包含有测试结果的测试报告。
优选地,所述装置还包括:测试报告显示单元,所述测试报告显示单元与所述测试报告生成单元相连接,用于显示所述测试报告。
由此可见,本申请提供一种脚本测试方法及装置,该方法通过接收设置有至少一条测试语句的待测试脚本,且每条测试语句中包含有目标对象类型标识、目标对象标识和测试目的标识,然后通过对待测试脚本中的测试语句进行编译,最后依据编译后测试语句中的目标对象类型标识、目标对象标识和测试目的标识对预先存储在数据库中的目标对象进行测试。本申请通过对待测试脚本中的各个测试语句均进行独立执行,并且使得各个测试语句通过目标对象类型标识、目标对象标识和测试目的标识对各个测试语句中的变量进行区分,从而实现无论调整或者删除待测试脚本中任意一个测试语句,均不会对其他测试语句的变量产生影响,可以解决现有技术在进行脚本测试时,通常会因为脚本中定义变量较多、且脚本内容复杂,导致脚本测试准确性降低的问题。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
实施例一:
图1为本申请实施例一提供的一种脚本测试方法流程图。
如图1所示,该方法包括:
S101、接收待测试脚本。
在本申请实施例中,提供的脚本测试方法首先需要接收待测试脚本,并且脚本中包含有至少一条测试语句,并且每条测试语句中包括:目标对象类型标识、目标对象标识和测试目的标识。
S102、对待测试脚本中的测试语句进行编译。
在本申请实施例中,在对待测试脚本中的测试语句进行测试之前还需要首先对待测试脚本中的测试语句进行编译。
S103、对预先存储在数据库中的目标对象进行测试。
在本申请实施例中,在数据库中预先存储有至少一个对象,当对待测试脚本中的测试语句编译完成之后,依据编译后测试语句中所存在的目标对象类型标识和目标对象标识在数据库中预先存储的至少一个对象中查找目标对象,并通过测试目的标识对该目标对象进行测试。
由此可见,本申请提供一种脚本测试方法,该方法通过接收设置有至少一条测试语句的待测试脚本,且每条测试语句中包含有目标对象类型标识、目标对象标识和测试目的标识,然后通过对待测试脚本中的测试语句进行编译,最后依据编译后测试语句中的目标对象类型标识、目标对象标识和测试目的标识对预先存储在数据库中的目标对象进行测试。本申请通过对待测试脚本中的各个测试语句均进行独立执行,并且使得各个测试语句通过目标对象类型标识、目标对象标识和测试目的标识对各个测试语句中的变量进行区分,从而实现无论调整或者删除待测试脚本中任意一个测试语句,均不会对其他测试语句的变量产生影响,可以解决现有技术在进行脚本测试时,通常会因为脚本中定义变量较多、且脚本内容复杂,导致脚本测试准确性降低的问题。
实施例二:
图2为本申请实施例二提供的一种脚本测试方法流程图。
如图2所示,该方法包括:
S201、接收待测试脚本。
S202、对待测试脚本中的测试语句进行编译。
本申请实施二中提供的步骤S201-S202的执行过程与实施例一中提供的步骤S101-S102的执行过程相同,本申请实施二中提供的步骤S201-S202的详细描述请参见本申请实施例一中的步骤S101-S102,在此不再赘述。
S203、查找与目标对象类型标识相对应的目标对象类型下的所有对象。
在本申请实施例中,在数据库中预先设置有至少一个对象,且每个对象均属于其相应的目标对象类型。当对待测试脚本中的测试语句编译完成后,在数据库中查找与编译后测试语句中的目标对象类型标识相对应的目标对象类型下的所有对象。
S204、按照编译后测试语句中的目标对象标识在查找到的所有对象中查找目标对象。
在本申请实施例中,数据库中所预先设置的所有对象均设置有唯一的对象标识,当对待测试脚本中的测试语句执行过程中,在查找到的所有对象中的对象标识中查找与目标对象标识相同的对象标识,并且确定设置有与编译后测试语句中的目标对象标识相同的对象标识的对象为目标对象。
S205、根据编译后测试语句中的测试目的标识查找测试接口。
在本申请实施例中,编译完成后的待测试脚本中的测试语句中包括测试目的标识,通过测试目的标识对目标对象进行测试。在具体的测试过程中,首先需要根据编译后测试语句中的测试目的标识查找到与该测试目的标识相对应的测试接口。
S206、利用测试接口对目标对象进行测试。
在本申请实施例中,当根据测试目的标识查找到相应的测试接口后,根据测试接口调用底层脚本中的具体测试程序对目标对象进行测试。
由此可见,本申请提供一种脚本测试方法,该方法通过接收设置有至少一条测试语句的待测试脚本,且每条测试语句中包含有目标对象类型标识、目标对象标识和测试目的标识,然后通过对待测试脚本中的测试语句进行编译,再根据编译后测试语句中的目标对象类型标识在数据库中查找与目标对象类型标识相对应的目标对象类型下的所有对象,并按照编译后测试语句中的目标对象标识在查找到的所有对象中查找目标对象;最后根据编译后测试语句中的测试目的标识查找测试接口,并利用测试接口对目标对象进行测试。本申请通过对待测试脚本中的各个测试语句均进行独立执行,并且使得各个测试语句通过目标对象类型标识、目标对象标识和测试目的标识对各个测试语句中的变量进行区分,从而实现无论调整或者删除待测试脚本中任意一个测试语句,均不会对其他测试语句的变量产生影响,可以解决现有技术在进行脚本测试时,通常会因为脚本中定义变量较多、且脚本内容复杂,导致脚本测试准确性降低的问题。
实施例三:
图3为本申请实施例三提供的一种脚本测试方法流程图。
如图3所示,该方法包括:
S301、接收待测试脚本。
本申请实施三中提供的步骤S301的执行过程与实施例二中提供的步骤S201的执行过程相同,本申请实施三中提供的步骤S301的详细描述请参见本申请实施例二中的步骤S201,在此不再赘述。
S302、对待测试脚本中的当前测试语句进行编译。
在本申请实施例中,提供的脚本测试方法为当接收到待测试脚本后,对待测试脚本中的当前测试语句进行编译,即当接收到待测试脚本后,对该待测试脚本中的第一条测试语句进行编译。当编译完成该待测试脚本中的当前测试语句后就执行步骤S303。
S303、查找与目标对象类型标识相对应的目标对象类型下的所有对象。
S304、按照编译后测试语句中的目标对象标识在查找到的所有对象中查找目标对象。
S305、根据编译后测试语句中的测试目的标识查找测试接口。
S306、利用测试接口对目标对象进行测试。
本申请实施三中提供的步骤S303-S306的执行过程与实施例二中提供的步骤S203-S206的执行过程相同,本申请实施三中提供的步骤S303-S306的详细描述请参见本申请实施例二中的步骤S203-S206,在此不再赘述。
且当执行完步骤S306以后,返回执行步骤S302对待测试脚本中的下一条测试语句进行编译。
此外,当执行完成步骤S306以后,还可以包括以下步骤:
S307、生成包含有测试结果的测试报告。
在本申请实施例中,该步骤S307可以是在当对待测试脚本中的所有测试语句均被编译完成且对目标对象测试完成之后执行,此时为直接生成包含有测试结果的测试报告,当执行完该步骤后,还可以包括步骤S308。
另外,步骤S307也可以是在当待测脚本中的一条测试语句编译且对目标对象测试完成之后执行,此时为生成一条测试语句的测试报告,并且执行完该步骤后可以返回步骤S302,也可以在该步骤S307的基础上还包括步骤S308。
S308、显示测试报告。
在本申请实施例中,可以在与待测试脚本中的每条测试语句相对应的位置显示测试报告,也可以在其他的预设区域显示测试报告。
在本申请实施例中,当步骤S307是在当待测脚本中的一条测试语句编译且对目标对象测试完成之后执行时,当执行完该步骤S308之后,返回执行步骤S302。
图4为本申请实施例三提供的另一种脚本测试方法流程图。
S401、接收待测试脚本。
本申请实施三中提供的步骤S401的执行过程与实施例一中提供的步骤S101的执行过程相同,本申请实施三中提供的步骤S401的详细描述请参见本申请实施例一中的步骤S101,在此不再赘述。
S402、对待测试脚本中的所有测试语句进行编译。
在本申请实施例中,提供的脚本测试方法为当接收到待测试脚本后,对待测试脚本中的所有测试语句进行编译完成后,才执行步骤S403。
S403、对预先存储在数据库中的目标对象进行测试。
本申请实施三中提供的步骤S403的执行过程与实施例一中提供的步骤S103的执行过程相同,本申请实施三中提供的步骤S403的详细描述请参见本申请实施例一中的步骤S103,在此不再赘述。
此外,当执行完成步骤S403以后,还可以包括以下步骤:
S404、生成包含有测试结果的测试报告。
在本申请实施例中,可以是在当对编译后待测试脚本中的一条测试语句中的目标对象测试完成后,即执行步骤S404,并且当执行完成步骤S404后,可以返回继续执行步骤S403执行下一条编译后的测试语句,或者还可以执行步骤S405。
在本申请实施例中也可以为当对编译后待测试脚本中的所有测试语句均执行完成后,在执行步骤S404,并且在执行完步骤S404以后,还可以包括步骤S405。
S405、显示测试报告。
在本申请实施例中,可以在与待测试脚本中的每条测试语句相对应的位置显示测试报告,也可以在其他的预设区域显示测试报告。
在本申请实施例中,当步骤S404是在编译后待测脚本中的一条测试语句执行完成之后执行时,当执行完该步骤S405之后,返回执行步骤S403。
此外,在本申请实施例中如图3和图4所示的两种脚本测试方法只是两种优选方式,本申请提供的脚本测试方法并不仅仅限于以上两种方式。
由此可见,本申请实施例提供两种脚本测试方法,一种是当接收到待测试脚本后,逐条对待测试脚本中的测试语句进行编译,当编译完成一条测试语句后,即对预先存储在数据库中的目标对象进行测试,当测试完成后,返回编译下一条测试语句,循环执行。另一种脚本测试方法是当接收到待测试脚本后,直接对待测试脚本中的测试语句进行编译,当对待测试脚本中的所有测试语句编译完成后,才逐条根据编译完成的测试语句对预先存储在数据库中的目标对象进行测试,本申请实施例提供两种脚本测试方法,使得本申请更加清晰、完整。
实施例四:
图5为本申请实施例四提供的一种脚本测试装置结构示意图。
如图5所示,该装置包括:脚本接收单元1、编译单元2和测试单元3,其中,脚本接收单元1、编译单元2和测试单元3依次相连接。
脚本接收单元1用于接收待测试脚本,在本申请实施例中的待测试脚本中包含有至少一条测试语句,并且每条测试语句中包括:目标对象类型标识、目标对象标识和测试目的标识。
编译单元2和脚本接收单元1相连接,编译单元2对接收到的待测试脚本中的测试语句进行编译。
测试单元3和编译单元2相连接,测试单元3依据编译后测试语句中的目标对象类型标识、目标对象标识和测试目的标识对预先存储在数据库中的目标对象进行测试。
此外,本申请实施例还提供一种脚本测试装置的详细结构示意图。
图6为本申请实施四提供的一种脚本测试装置的详细结构示意图。
如图6所示,该装置包括:脚本接收单元1、编译单元2、对象查找单元31、目标对象查找单元32、测试接口查找单元33和测试子单元34。
其中,编译单元2和脚本接收单元1相连接,对象查找单元31和目标对象查找单元32相连接,且对象查找单元31和目标对象查找单元32均与编译单元2相连接;测试子单元34的一端与目标对象查找单元32相连接,另一端与测试接口查找单元33相连接。
脚本接收单元1用于接收待测试脚本,在本申请实施例中的待测试脚本中包含有至少一条测试语句,并且每条测试语句中包括:目标对象类型标识、目标对象标识和测试目的标识。
编译单元2和脚本接收单元1相连接,编译单元2对接收到的待测试脚本中的测试语句进行编译。
该装置在数据库中预先设置有至少一个对象,对象查找单元31和编译单元2相连接,对象查找单元31根据编译后测试语句中的目标对象类型标识在数据库中查找与目标对象类型标识相对应的目标对象类型下的所有对象。
目标对象查找单元32的一端与对象查找单元31相连接,另一端与编译单元2相连接,目标对象查找单元32按照编译后测试语句中的目标对象标识在查找到的所有对象中查找目标对象。
测试接口查找单元33和编译单元2相连接,测试接口查找单元33根据编译后测试语句中的测试目的标识查找测试接口。
测试子单元34的一端与目标对象查找单元32相连接,另一端与测试接口查找单元33相连接,测试子单元34利用测试接口对目标对象进行测试。
如图6所示,本申请实施例提供的脚本测试装置还可以包括:测试报告生成单元4和测试报告显示单元5。
其中,测试报告生成单元4和测试子单元34相连接,测试报告显示单元5与测试报告生成单元4相连接。
测试报告生成单元4与测试子单元34相连接,测试报告生成单元4用于生成包含有测试结果的测试报告。
测试报告显示单元5与测试报告生成单元4相连接,测试报告显示单元5用于显示测试报告。
由此可见,本申请提供一种脚本测试装置,该装置包括:脚本接收单元、编译单元和测试单元。其中,脚本接收单元接收设置有至少一条测试语句的待测试脚本,且每条测试语句中包含有目标对象类型标识、目标对象标识和测试目的标识;编译单元对待测试脚本中的测试语句进行编译;测试单元依据编译后测试语句中的目标对象类型标识、目标对象标识和测试目的标识对预先存储在数据库中的目标对象进行测试。本申请通过对待测试脚本中的各个测试语句均进行独立执行,并且使得各个测试语句通过目标对象类型标识、目标对象标识和测试目的标识对各个测试语句中的变量进行区分,从而实现无论调整或者删除待测试脚本中任意一个测试语句,均不会对其他测试语句的变量产生影响,可以解决现有技术在进行脚本测试时,通常会因为脚本中定义变量较多、且脚本内容复杂,导致脚本测试准确性降低的问题。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。