一种自动化测试方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种自动化测试方法及装置。
背景技术
随着计算机技术的不断发展,越来越多的应用软件被开发出来,并应用到人们的日常生活中,为了使得被开发出来的应用软件能够在日常生活中正常的运行,需要在应用软件被开发出来时,对该应用软件进行自动化测试。
目前,应用软件在运行的过程中通常会产生日志文件,日志文件中可用不同的字段来记录应用软件在运行的过程中的运行状况,如,用户执行了点击链接的操作,则点击链接后打开该链接的响应时间会被记录在日志文件中的某个字段内。
由于日志文件中记录着应用软件的运行状况,因此,在应用软件进行自动化测试的过程中,通常都是使应用软件根据预先设定的测试用例来运行,并将应用软件在运行过程中所生成的日志文件中的内容提取出来,并与该测试用例中所包含的标准内容进行比对,以此来判定该应用软件是否运行正常。
但是,在实际应用中,为了方便查询应用软件在运行过程中出现的问题,通常都会在日志文件中加入一些字段来记录链接返回的状态码和响应时间,其中,该链接返回的状态码是服务器或者其他设备在接收该链接在被点击后所发送的请求后所分配的三位数代码,该三位数代码表明了服务器或者其他设备对该请求的响应状态。由于有可能存在状态码和响应时间与其他需要待比对的内容绑定在同一字段中的情况,面对这种情况,在进行自动化测试时,需要将该字段中除了状态码以及响应时间外的其他内容是需要提取出来或者将状态码以及响应时间提取出来,并与测试用例中所包含的标准内容进行比对,而目前又无法单独取出状态码以及响应时间,也就是说,该字段无法进行自动化测试,因此,在现有技术中,针对状态码和响应时间与其他待比对的内容绑定在同一字段中这一情况,没有将该字段写入到测试用例中,也就是说,不能对该字段采用自动化测试,只能采取手工测试的方式,也就是,人工去检查该字段中待比对的内容是否与测试用例中的标准内容一致。
显然,人工在检查该字段时需要耗费大量的时间并且效率较低,也会导致整个回归测试的时间较长。
发明内容
本申请实施例提供一种自动化测试方法及装置,用以解决现有技术中人工检查无法实现自动化测试的字段内容而需要耗费大量的时间并且效率较低,也会导致整个回归测试的时间较长的问题。
本申请实施例提供一种自动化测试方法,包括:
获取待匹配的日志文件;
提取所述日志文件中包含的各字段内容;
当所述字段内容包括特定的字段内容时,根据预设的第一标准字段内容,对提取出的所述字段内容进行模糊匹配;当所述字段内容不包括特定的字段内容时,根据预设的第二标准字段内容,对提取出的所述字段内容进行完全匹配;
根据匹配结果,确定自动化测试的测试结果。
优选地,所述特定的字段内容包括:链接返回的状态码和响应时间。
优选地,所述第一标准字段内容包括:特定的字段内容与非特定的字段内容,其中,所述特定的字段内容由使用正则表达式中只表示字符位置但不表示字符内容的符号来表示,当所述字段内容包括特定的字段内容时,根据预设的第一标准字段内容,对提取出的所述字段内容进行模糊匹配,具体包括:确定提取出的所述字段内容中的非特定的字段内容是否与预设的第一标准字段内容中的非特定的字段内容完全一致;以及确定提取出的所述字段内容中的特定的字段内容是否与预设的第一标准字段内容中的特定的字段内容位置相同。
优选地,提取出的所述字段内容包括字段名和字段值;所述方法还包括:根据所述字段名将字段值写入到参数字典中。
优选地,在获取待匹配的日志文件之前,所述方法还包括:登陆日志服务器,删除所述日志服务器中的日志目录下包含的所有日志文件,执行能够生成所述待匹配的日志文件的操作,在所述日志目录下确认已生成所述待匹配的日志文件。
本申请实施例提供一种自动化测试装置,包括:
获取模块,用于获取待匹配的日志文件;
提取模块,用于提取所述日志文件中包含的各字段内容;
匹配模块,用于当所述字段内容包括特定的字段内容时,根据预设的第一标准字段内容,对提取出的所述字段内容进行模糊匹配;当所述字段内容不包括特定的字段内容时,根据预设的第二标准字段内容,对提取出的所述字段内容进行完全匹配;
测试结果确定模块,用于根据匹配结果,确定自动化测试的测试结果。
优选地,所述特定的字段内容包括:链接返回的状态码和响应时间。
优选地,所述第一标准字段内容包括:特定的字段内容与非特定的字段内容,其中,所述特定的字段内容由使用正则表达式中只表示字符位置但不表示字符内容的符号来表示,所述匹配模块具体用于,确定提取出的所述字段内容中的非特定的字段内容是否与预设的第一标准字段内容中的非特定的字段内容完全一致;以及确定提取出的所述字段内容中的特定的字段内容是否与预设的第一标准字段内容中的特定的字段内容位置相同。
优选地,提取出的所述字段内容包括字段名和字段值;所述装置还包括:写入模块,用于根据所述字段名将字段值写入到参数字典中。
优选地,所述装置还包括:
日志文件生成模块,用于在获取模块获取待匹配的日志文件之前,登陆日志服务器,删除所述日志服务器中的日志目录下包含的所有日志文件,执行能够生成所述待匹配的日志文件的操作,在所述日志目录下确认已生成所述待匹配的日志文件。
本申请实施例提供一种自动化测试方法及装置,该方法首先获取待匹配的日志文件,提取该日志文件中包含的各字段内容,当该字段内容包括特定的字段内容时,根据预设的第一标准字段内容,对提取出的该字段内容进行模糊匹配,当该字段内容不包括特定的字段内容时,根据预设的第二标准字段内容,对提取出的该字段内容进行完全匹配,根据匹配结果,确定自动化测试的测试结果。通过上述方法,即使存在状态码和响应时间与其他需要待比对的内容绑定在同一字段中,也可以有效的对该字段进行自动化测试,大大降低了在检查该字段时所耗费的时间,提高了检查该字段的效率,有效缩短了整个回归测试的时间。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种自动化测试的过程示意图;
图2为本申请实施例提供的一种自动化测试装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请实施例提供的自动化测试过程,具体包括以下步骤:
S101:获取待匹配的日志文件。
在实际应用中,应用软件或程序被开发出来后,为了使得被开发出来的应用软件或程序能够在日常生活中正常的运行,需要在应用软件或程序被开发出来时,对该应用软件或程序进行自动化测试。
由于应用软件或程序在运行的过程中通常会产生日志文件,日志文件中可用不同的字段来记录应用软件或程序在运行的过程中的运行状况,如,用户执行了点击链接的操作,则点击链接后打开该链接的响应时间会被记录在日志文件中的某个字段内。
因此,在应用软件进行自动化测试的过程中,通常都是使应用软件根据预先设定的测试用例来运行,并将应用软件在运行过程中所生成的日志文件中的内容提取出来,并与该测试用例中所包含的标准内容进行比对,以此来判定该应用软件是否运行正常。
在此需要说明的是,测试用例中包含了需要在应用软件中输入哪些数据,对该数据执行哪些操作,以及应用软件根据该输入的数据以及操作所输出的预期结果。
因此,在本申请中,首先需要获取应用软件在运行过程中所生成的日志文件,也就是,获取待匹配的日志文件。
进一步的,如何获取待匹配的日志文件,在本申请中,可以登录日志服务器,其中,日志服务器中记录了应用软件或程序在运行过程中所产生的所有日志文件。
由于在实际应用中,服务器在日志服务器中的日志目录下获取待匹配的日志文件时,通常是根据当前时刻的时间,去匹配日志文件的生成时间,如果一致,则就会将生成时间与当前时刻的时间一致的日志文件提取出来,作为待匹配的日志文件,但是时间总是会发生变化,因此,根据当前时刻的时间,去匹配日志文件的生成时间会很容易出现误差,取错日志文件,因此,在本申请中,如果成功登录日志服务器,则删除该日志服务器中的日志目录下包含的所有日志文件,并执行能够生成该待匹配的日志文件的操作,这样整个日志目录下就只有待匹配的日志文件,并直接获取该日志文件即可。
在此需要说明的是,执行能够生成所述待匹配的日志文件的操作时,由于应用软件或程序自身的问题,有可能存在第一次在执行能够生成所述待匹配的日志文件的操作时并没有能够在日志服务器中的日志目录下生成日志文件,因此,在本申请中,在执行能够生成所述待匹配的日志文件的操作后,需要在日志目录下确认是否已经生成该待匹配的日志文件,如果没有生成该待匹配的日志文件,则自动化测试失败,如果生成待匹配的日志文件,则直接获取该待匹配的日志文件。
例如,在对一款应用软件进行自动化测试的过程中,测试人员首先登录日志服务器,删除该日志服务器中的日志目录下包含的所有日志文件,并执行能够生成日志文件的操作:点击一个网页链接,查看日志目录下的日志文件,并直接获取该日志文件,即,待匹配的日志文件。
S102:提取所述日志文件中包含的各字段内容。
由于日志文件中的日志内容都是由不同的字段构成的,每个字段都会记录不同的内容或数据,如果应用软件或程序运行正常,则每个字段中所记录的内容则会与期望的内容是一致的,因此,在本申请中,在确定每个字段中所记录的内容与期望的内容是否一致之前,需要从获取的待匹配的日志文件中提取出该日志文件中包含的各字段内容。
另外,在实际应用中,为了方便后续查询和获取待匹配的日志文件中的内容,因此,在本申请中,可以将提取出的日志文件中的各字段内容后,写入到参数字典中。
进一步的,由于参数字典中所存储的内容均是以key-value的形式来存储的,而提取出的字段内容包括字段名和字段值,因此,在将提取出的日志文件中的各字段内容写入到参数字典的过程中,可根据字段内容的字段名将字段值写入到参数字典中,这样后续用户可直接在参数字典中查询或者获取日志内容。
延续上例,假设在获取到该日志文件后,提取该日志文件中所包含的各字段内容,如表1所示:
|
字段内容 |
字段A |
终端IP:189.327.21.1 |
字段B |
服务器IP:129.323.21.4—该链接返回的状态码:200 |
表1
在此需要说明的是,表1中的链接返回的状态码:200表示:点击一个网页链接而向服务器发送的请求已成功,该请求所希望的响应头或数据将随此响应返回,并且,在实际应用中日志文件通常是包含许多的字段的,但是在例子中只是为了简单清晰的阐述本申请的方案,所以在此只给出了两个字段的字段内容。
S103:当所述字段内容包括特定的字段内容时,根据预设的第一标准字段内容,对提取出的所述字段内容进行模糊匹配;当所述字段内容不包括特定的字段内容时,根据预设的第二标准字段内容,对提取出的所述字段内容进行完全匹配。
在进行自动化测试的过程中,有些字段中可能既包括需要测试的日志内容,也包括不需要测试的日志内容,也就是说,有些字段中有一部分的日志内容是需要测试的,另一部分的日志内容则不需要测试,也就是说,不用将不需要测试的日志内容与期望的日志内容进行比对,面对这种情况,在进行自动化测试时,需要将该字段中不需要测试的日志内容提取出来或者将需要测试的日志内容提取出来,如,在实际应用中,为了方便查询应用软件在运行过程中出现的问题,通常会在日志文件中加入字段来记录链接返回的状态码和响应时间,其中,该链接返回的状态码是服务器或者其他设备在接收该链接在被点击后所发送的请求后所分配的三位数代码,该三位数代码表明了服务器或者其他设备对该请求的响应状态,而链接返回的状态码和响应时间是不需要进行自动化测试的,因此,需要将既包括需要测试的日志内容,也包括不需要测试的日志内容的字段中的不需要测试的日志内容提取出来,并将需要测试的日志内容进行自动化测试。
但是,由于该字段中不需要测试的日志内容或者需要测试的日志内容无法单独提取出来,这样会造成无法对该字段进行自动化测试,因此,在本申请中,对于这种不能够进行自动化测试的字段,可以不用从该字段中提取出任何内容,可以直接对该字段中的日志内容进行模糊匹配,这样可以对该字段中进行自动化测试。
在此需要说明的是,为了方便阐述本申请实施方案,将字段中不需要测试的日志内容定义为特定的字段内容,而将该字段中需要测试的日志内容定义为非特定的字段内容。
进一步的,在进行自动化测试的过程中,由于需要确定待匹配的日志文件中的每个字段所包含的日志内容是否与期望的日志内容一致,因此,需要预先就设定标准的字段内容,该设定标准的字段内容即为期望的日志内容。
而在预先设定标准的字段内容的过程中,本申请主要针对生成的日志文件中包含特定的字段内容的字段,设定第一标准字段内容,该第一标准字段内容包括:特定的字段内容与非特定的字段内容,其中,所述特定的字段内容由使用正则表达式中只表示字符位置但不表示字符内容的符号来表示,而非特定的字段内容由表示字符内容的字符来表示;针对生成的日志文件中不包含特定的字段内容的字段,设定第二标准字段内容,该第二标准字段内容包括:非特定的字段内容,其中,所述非特定的字段内容由表示字符内容的字符来表示。
因此,在本申请中,当从待匹配的日志文件中提取出的字段内容包括特定的字段内容时,则确定提取出的该字段内容中的非特定的字段内容是否与预设的第一标准字段内容中的非特定的字段内容完全一致;以及确定提取出的该字段内容中的特定的字段内容是否与预设的第一标准字段内容中的特定的字段内容位置相同。
而当从待匹配的日志文件中提取出的字段内容不包括特定的字段内容时,则确定提取出的该字段内容中的非特定的字段内容是否与预设的第二标准字段内容中的非特定的字段内容完全一致,即,对提取出的字段内容进行完全匹配。
继续沿用上例,假设特定的字段内容只有“该链接返回的状态码”,预设的第一标准字段内容为服务器IP:129.323.21.4—XXXXXXXXXXXXX,其中,X只表示字符位置但不表示字符内容的符号,预设的第二标准字段内容:终端IP:189.327.21.1。
自动化测试工具从待匹配的日志文件中提取出的字段B中包括特定的字段内容,因此,自动化测试工具将提取出的该字段内容中的服务器IP:129.323.21.4—(即,非特定的字段内容)与预设的第一标准字段内容中的服务器IP:129.323.21.4—(即,非特定的字段内容)进行匹配,确定提取出的该字段内容中的服务器IP:129.323.21.4—(即,非特定的字段内容)与预设的第一标准字段内容中的服务器IP:129.323.21.4—(即,非特定的字段内容)完全一致,并确定提取出的该字段内容中的该链接返回的状态码:200(即,特定的字段内容)与预设的第一标准字段内容中的XXXXXXXXXXXXX(即,特定的字段内容)位置相同。
自动化测试工具从待匹配的日志文件中提取出的字段A中不包括特定的字段内容,因此,自动化测试工具将提取出的该字段内容中的终端IP:189.327.21.1(即,非特定的字段内容)与预设的第二标准字段内容中的终端IP:189.327.21.1(即,非特定的字段内容)进行匹配,确定完全一致,并确定提取出的该字段内容中的终端IP:189.327.21.1(即,非特定的字段内容)与预设的第二标准字段内容中的终端IP:189.327.21.1(即,非特定的字段内容)完全一致,即,对提取出的字段内容进行完全匹配。
S104:根据匹配结果,确定自动化测试的测试结果。
在本申请中,如果步骤S103中的从待匹配的日志文件中提取出的各字段的字段内容与预先设定的标准的字段内容匹配一致,则自动化测试成功,也说明待测试的应用软件或程序运行正常,如果步骤S103中的从待匹配的日志文件中提取出的各字段的字段内容与预先设定的标准的字段内容匹配不一致。则自动化测试失败,也说明待测试的应用软件或程序运行不正常。
继续沿用上例,自动化测试工具执行完成步骤S103后,确定从待匹配的日志文件中提取出的各字段的字段内容与预先设定的标准的字段内容匹配一致,则自动化测试成功。
通过上述方法,即使存在状态码和响应时间与其他需要待比对的内容绑定在同一字段中,也可以有效的对该字段进行自动化测试,大大降低了在检查该字段时所耗费的时间,提高了检查该字段的效率,有效缩短了整个回归测试的时间。
以上为本申请实施例提供的自动化测试方法,基于同样的思路,本申请实施例还提供一种自动化测试装置。
如图2所示,本申请实施例提供的一种自动化测试装置,包括:
获取模块201,用于获取待匹配的日志文件;
提取模块202,用于提取所述日志文件中包含的各字段内容;
匹配模块203,用于当所述字段内容包括特定的字段内容时,根据预设的第一标准字段内容,对提取出的所述字段内容进行模糊匹配;当所述字段内容不包括特定的字段内容时,根据预设的第二标准字段内容,对提取出的所述字段内容进行完全匹配;
测试结果确定模块204,用于根据匹配结果,确定自动化测试的测试结果。
所述特定的字段内容包括:链接返回的状态码和响应时间。
所述第一标准字段内容包括:特定的字段内容与非特定的字段内容,其中,所述特定的字段内容由使用正则表达式中只表示字符位置但不表示字符内容的符号来表示;
所述匹配模块203具体用于,确定提取出的所述字段内容中的非特定的字段内容是否与预设的第一标准字段内容中的非特定的字段内容完全一致;以及确定提取出的所述字段内容中的特定的字段内容是否与预设的第一标准字段内容中的特定的字段内容位置相同。
提取出的所述字段内容包括字段名和字段值;所述装置还包括:
写入模块205,用于根据所述字段名将字段值写入到参数字典中。
所述装置还包括:
日志文件生成模块206,用于在获取模块201获取待匹配的日志文件之前,登陆日志服务器,删除所述日志服务器中的日志目录下包含的所有日志文件,执行能够生成所述待匹配的日志文件的操作,在所述日志目录下确认已生成所述待匹配的日志文件。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。