测试用例生成方法、装置及计算机可读存储介质与流程

文档序号:14156969阅读:141来源:国知局

本公开涉及计算机测试技术领域,尤其涉及一种测试用例生成方法、装置及计算机可读存储介质。



背景技术:

随着科学技术的发展,网络服务被广泛使用,越来越多的人通过网络服务器来完成多种操作,如通过访问淘宝网来浏览、购买商品,通过浏览器来查询信息等。为了提高用户使用网络服务的舒适度,对网络服务的性能测试是必不可少的。由于目前的软件规模很庞大,单纯的人工测试需要耗费大量的时间,测试效率低,测试周期长,因此越来越多的软件开发过程中引入了自动化测试方法。

自动化测试中使用到的测试用例可以由测试人员来编写,或者可以由系统自动生成。在相关技术中,自动生成的测试用例是根据被测试系统的参数或参数组合策略来生成多组测试数据,无法将用户当前的使用环境作为测试场景进行测试,因此存在测试用例的测试覆盖率低的问题。



技术实现要素:

为克服相关技术中存在的问题,本公开提供一种测试用例生成方法、装置及计算机可读存储介质。

根据本公开实施例的第一方面,提供一种测试用例生成方法,包括:

获取访问日志,所述访问日志为用户通过向预设网络发送访问请求向所述预设网络服务进行访问时产生的日志;

根据所述访问日志以及预设测试用例模板,生成用于测试待测试网络服务的测试用例。

可选地,所述根据所述访问日志以及预设测试用例模板,生成用于测试待测试网络服务的测试用例,包括:

对获取的所述访问日志进行格式化处理;

从格式化处理后的所述访问日志中,获取满足第一预设条件的访问日志作为第一目标访问日志,其中,格式化处理后的所述访问日志至少包括:访问请求的方法、访问请求的地址、访问请求的协议和访问请求的返回结果,所述第一预设条件至少包括:所述访问请求的方法为预设方法,所述访问请求的地址中包括预设信息以及所述访问请求返回状态包括预设结果;

根据所述第一目标访问日志和所述预设测试用例模板,生成所述测试用例。

可选地,在所述根据所述第一目标访问日志和所述预设测试用例模板,生成所述测试用例之前,所述方法还包括:

对所述第一目标访问日志进行以下操作中的任一项或几项:将与所述访问日志对应的访问请求中的请求信息的一项或多项信息添加到所述第一目标访问日志中,删除所述第一目标访问日志中的预设删除信息以及对所述第一目标访问日志中与预设修改信息对应的值或字符串进行修改。

可选地,所述预设测试用例模板包括:模板参数和模板格式,所述模板参数至少包括:访问请求的方法、访问请求的地址和访问请求的返回结果;

所述根据所述第一目标访问日志以及所述预设测试用例模板,生成所述测试用例的步骤包括:

在所述第一目标访问日志中获取与所述模板参数对应的信息;

根据所述与所述模板对应的信息和所述模板格式,生成所述测试用例。

可选地,所述测试用例包括:测试内容和期望测试结果,所述测试内容至少包括:访问请求的方法和访问请求的地址,所述期望测试结果至少包括:访问请求的返回结果;所述方法还包括:

利用所述测试用例的所述测试内容对所述待测试网络服务进行测试;

当所述待测试网络服务的返回结果与所述期望测试结果不匹配时,调整所述第一预设条件;

根据调整后的所述第一预设条件,获取满足调整后的所述第一预设条件的访问日志作为第二目标访问日志;以及

根据所述第二目标访问日志和所述预设测试用例模板,生成所述测试用例。

根据本公开实施例的第二方面,提供一种测试用例生成装置,包括:

访问日志获取模块,被配置为获取访问日志,所述访问日志为用户通过向预设网络发送访问请求向所述预设网络服务进行访问时产生的日志;

测试用例生成模块,被配置为根据所述访问日志以及预设测试用例模板,生成用于测试待测试网络服务的测试用例。

可选地,所述测试用例生成模块,包括:

格式化处理子模块,被配置为对获取的所述访问日志进行格式化处理;

第一获取子模块,被配置为从格式化处理后的所述访问日志中,获取满足第一预设条件的访问日志作为第一目标访问日志,其中,格式化处理后的所述访问日志至少包括:访问请求的方法、访问请求的地址、访问请求的协议和访问请求的返回结果,所述第一预设条件至少包括:所述访问请求的方法为预设方法,所述访问请求的地址中包括预设信息以及所述访问请求返回状态包括预设结果;

第一生成子模块,被配置为根据所述第一目标访问日志和所述预设测试用例模板,生成所述测试用例。

可选地,所述装置还包括:

第一处理模块,被配置为对所述第一目标访问日志进行以下操作中的任一项或几项:将与所述访问日志对应的访问请求中的请求信息的一项或多项信息添加到所述第一目标访问日志中,删除所述第一目标访问日志中的预设删除信息以及对所述第一目标访问日志中与预设修改信息对应的值或字符串进行修改。

可选地,所述预设测试用例模板包括:模板参数和模板格式,所述模板参数至少包括:访问请求的方法、访问请求的地址和访问请求的返回结果;所述第一生成子模块还被配置为:

在所述第一目标访问日志中获取与所述模板参数对应的信息;

根据所述与所述模板对应的信息和所述模板格式,生成所述测试用例。

可选地,所述测试用例包括:测试内容和期望测试结果,所述测试内容至少包括:访问请求的方法和访问请求的地址,所述期望测试结果至少包括:访问请求的返回结果;所述装置还包括:

测试模块,被配置为利用所述测试用例的所述测试内容对所述待测试网络服务进行测试;

第二处理模块,被配置为当所述待测试网络服务的返回结果与所述期望测试结果不匹配时,调整所述第一预设条件;

第一获取模块,被配置为根据调整后的所述第一预设条件,获取满足调整后的所述第一预设条件的访问日志作为第二目标访问日志;以及

第二生成模块,被配置为根据所述第二目标访问日志和所述预设测试用例模板,生成所述测试用例。

根据本公开实施例的第三方面,提供一种测试用例生成装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

获取访问日志,所述访问日志为用户通过向预设网络发送访问请求向所述预设网络服务进行访问时产生的日志;

根据所述访问日志以及预设测试用例模板,生成用于测试待测试网络服务的测试用例。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面所提供的测试用例生成的方法的步骤。

本公开的实施例提供的技术方案可以包括以下有益效果:获取用户访问预设网络服务器时生成的访问日志,并通过访问日志来自动生成测试用例,由于用户的访问日志能够实时的反应当前使用网络服务的场景,因此,基于访问日志生成的测试用例能够很好的覆盖实际使用场景,提高了测试用例的覆盖率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是根据一示例性实施例示出的一种网络服务架构示意图。

图2是根据一示例性实施例示出的一种测试用例生成的方法的流程图。

图3是根据一示例性实施例示出的一种测试用例生成的场景示意图。

图4是根据一示例性实施例示出的步骤s12的实现方式流程图。

图5是根据一示例性实施例示出的步骤s123的实现方式流程图。

图6是根据一示例性实施例示出的一种更新测试用例的方法的流程图。

图7是根据一示例性实施例示出的一种测试用例生成的方法的流程框图。

图8是根据一示例性实施例示出的一种测试用例生成的装置的示意图。

图9是根据一示例性实施例示出的另一种测试用例生成装置的示意图。

图10是根据一示例性实施例示出的又一种测试用例生成装置的框图。

图11是根据一示例性实施例示出的一种测试用例生成的装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

请参考图1是根据一示例性实施例示出的一种网络服务架构示意图,网络服务架构包括一个或多个用户设备110,网络服务器120,以及网络130。

用户设备110可以为笔记本电脑、智能手机、平板电脑等设备。用户可以通过用户设备110来访问网络服务器120,如通过用户设备110上的浏览器来访问网络服务器120。网络服务器120可以为nginx服务器、apache服务器等。

用户设备110可使用有线和/或无线通信的方式,经由网络130与网络服务器120通信。网络130可包括局域网和/或广域网的任意组合。在一个实施例中,网络130可包括使用诸如以太网、802.11、3g、4g、5g、gsm、数字用户线路(dsl)等技术的链路。

在本公开中,用户在对网络服务进行访问时,网络服务器120会生成与当前访问对应的访问日志,由此,利用访问日志和预设测试用例模板,自动生成测试用例。由于访问日志能够反映用户实际使用网络服务的场景信息,因此基于访问日志生成的测试用例能够很好的覆盖实际使用场景,提高测试用例的覆盖率。

请参考图2,图2是根据一示例性实施例示出的一种测试用例生成方法的流程图,该方法包括以下步骤。

在步骤s11中,获取访问日志,所述访问日志为用户通过向预设网络发送访问请求向所述预设网络服务进行访问时产生的日志;

在步骤s12中,根据所述访问日志以及预设测试用例模板,生成用于测试待测试网络服务的测试用例。

首先,在步骤s11中,当用户向预设网络服务(例如,购物网站、新闻网站)发起访问请求时,网络服务器120记录与本次访问请求对应的访问日志。例如,当用户通过浏览器来浏览购物网站时,网络服务器120会生成与浏览当前购物网站对应的访问日志。由此,可从预设网络服务对应的网络服务器120获取访问日志。访问日志包括以下信息中的一者或多者:远程主机名(或ip地址)、访问时间、访问请求参数、访问请求返回状态、访问请求返回时间、访问请求返回文档大小等。

其中,远程主机名为提供预设网络服务的网络服务器的设备名或ip地址。访问时间为访问预设网络服务的具体时间。用户名为用户访问预设网络服务时进行身份验证时提供的识别名。

在一个实施例中,访问请求参数包括:访问请求的方法、访问请求的地址和访问请求的协议。其中,访问请求的方法(method)包括:get、post、head、put、delete等等。其中,get用于请求(访问)数据;post用于向指定的资源提交要被处理的数据;head用于请求(访问)数据,只返回http报头;delete用于删除指定资源;put用于上传指定的uri(uniformresourceidentifier,统一资源标识符)。访问请求的地址为访问请求要访问的资源的统一资源定位符(uniformresourcelocator,url)。访问请求的协议(protocol)可为http/1.1或http/1.0等。

访问请求返回状态为网络服务器的响应状态,可用数值表示,例如,以2开头的状态表明请求成功,以3开头的状态表明请求的重定向等等。

访问请求返回时间用于表明网络服务器返回访问请求所请求的资源的时间。访问请求返回文档大小用于表明网络服务器返回的访问请求所述请求的资源的大小。

随着用户访问请求次数的增多,访问日志也会逐条增加。在本公开的一实施例中,获取的访问日志可为网络服务器120实时记录的所有日志。即网络服务器120记录的所有访问日志都将被获取以用于生成测试用例。在本公开的另一些实施例中,获取的访问日志可以为预定时间段内产生的访问日志,如获取周一早上八点至周一早上九点这一个小时内产生的访问日志。

在一个实施例中,预设测试用例模板包括:模板参数和模板格式。模板参数可至少包括:访问请求参数和访问请求返回状态。模板格式包括模板参数的排列顺序。比如,对于模板参数包括访问请求返回状态,访问请求的方法和访问请求的地址的情况,模板格式可为第一项为访问请求的方法,第二项为访问请求的地址,第三项为访问请求返回状态。由此,可从获取的访问日志中提取访问请求的方法、访问请求的地址以及请求返回状态的具体信息,按照模板格式进行排列,生成测试用例。

应理解,预设测试用例模板中的模板参数和模板格式,可根据待测试网络服务进行调整,或根据测试目标进行调整。

请参考图3,为本公开一示例性实施例示出的一种测试用例生成的场景示意图。在访问预设网络服务时,提供预设网络服务的网络服务器对访问日志进行收集,并根据访问日志生成测试用例,然后利用测试用例对待测试网络进行测试。

在本公开中,待测试网络服务与预设测试网络服务在功能上是相关的。比如说,预设测试网络服务为购物网站时,用户在购物网站上进行购买操作,网络服务器记录与购买操作对应的访问日志,并根据该访问日志生成测试用例。该测试用例可以用来测试待测试网络服务中的购物功能。

在本公开中,由于测试用例可以反映用户在购物网站上的实际操作场景,并用于测试与购物相关的待测试网络服务,因此,本公开提供的测试用例生成的方法能够很好的覆盖实际使用场景,提高测试用例的覆盖率。

参考图4,为一示例性实施例示出的步骤s12的实现方式流程图,其包括以下步骤:

在步骤s121中,对获取的所述访问日志进行格式化处理;

在步骤s122中,从格式化处理后的所述访问日志中,获取满足第一预设条件的访问日志作为第一目标访问日志,其中,格式化处理后的所述访问日志至少包括:访问请求的方法、访问请求的地址、访问请求的协议和访问请求的返回结果,所述第一预设条件至少包括:所述访问请求的方法为预设方法,所述访问请求的地址中包括预设信息以及所述访问请求返回状态包括预设结果;

在步骤s123中,根据所述第一目标访问日志和所述预设测试用例模板,生成所述测试用例。

在本公开中,为了方便对访问日志进行处理,可以对访问日志进行格式化以统一日志格式。格式化可以采用json格式、xml格式,也可以采用其他的格式化方式,本公开不做具体限定。

在一个实施例中,采用json格式对访问日志进行格式化。json格式是键值对的有序排列,书写格式是:名称/值对。

例如,获取的访问日志为:113.142.9.187--[15/jun/2017:14:43:47+0800]"gethttp://example.com/home.html?from=link&sort=falsehttp/1.1"200142390.150"-""""-"。

在该条访问日志中,远程主机ip地址为113.142.9.187,访问时间为15/jun/2017:14:43:47,访问请求参数中的访问请求的方法get,访问请求的地址对应为http://example.com/home.html?from=link&sort=false,访问请求的协议为http/1.1,访问请求返回状态为200。

对访问日志进行json格式化处理,即使用名称/值对的格式进行书写,得到格式化处理后的访问日志。在一个实施例中,对访问日志进行格式化处理时,可从访问日志中提取访问请求的方法、访问请求的地址、访问请求的协议、访问请求返回状态以及访问请求返回时间等作为名称,并将访问请求的方法、访问请求的地址、访问请求的协议、访问请求返回状态以及访问请求返回时间所对应的信息作为值。由此,根据上述的访问日志格式化处理后得到访问日志可为:

其中,"method"即为访问请求的方法,"url"和"parameter"是根据访问请求的地址得到的。"protocol"即访问请求的协议。"code"即访问请求返回状态。"response_time"即访问请求返回时间。

另外,在对预设网络服务进行访问时,如果需要进行登录操作,会对应产生cookie,cookie是用来存储用户信息以进行身份验证的,当用户完成登录后,会生成一个cookie来存储相关的用户信息。此时,格式化处理后的访问日志可以是:

其中,"header"是与访问请求对应的访问请求头信息,"referer"是根据访问请求的地址得到的,cookie是根据登录操作获取的信息。

进一步的,确定格式化处理后的访问日志是否满足第一预设条件。在一实施例中,第一预设条件包括:访问请求的地址中包括预设信息以及访问请求返回状态包括预设结果等。例如,预设信息可为/home.html,预设结果可为200。则当格式化处理后的访问日志的访问请求的地址中包含有/home.html,且访问请求返回状态中包括200时,确定访问日志满足第一预设条件,基于预设测试用例模板,生成测试用例。

在另一实施例中,第一预设条件包括多级处理。如第一预设条件的第一级处理的预设条件包括:访问请求的地址中包括预设信息以及访问请求返回状态包括预设结果,第一预设条件的第二级处理的预设条件也包括:访问请求的地址中包括预设信息以及访问请求返回状态包括预设结果。例如,第一级处理的预设条件为:预设信息为/home.html,预设结果为不包括302的其它返回结果。第二级处理的预设条件为:预设信息为home.html,预设结果为200。则当格式化处理后的访问日志的访问请求的地址中包含有/home.html,且访问请求返回状态中不包括302时,满足第一级处理的预设条件,进一步的,当格式化处理后的访问日志的访问请求返回状态中包括200时,确定访问日志为满足第一预设条件的第一目标访问日志。

应理解,第一预设条件还可以根据实际需要进行调整,比如在上述第一预设条件中增加访问请求的方位为预设方法等,本公开对此不做具体限定。

进一步的,在本公开另一示例性实施例中,为了得到更加准确的测试用例,对第一目标访问日志还可以进行一系列的处理。

即,对所述第一目标访问日志进行以下操作中的任一项或几项:将与所述访问日志对应的访问请求中的请求信息的一项或多项信息添加到所述第一目标访问日志中,删除所述第一目标访问日志中的预设删除信息以及对所述第一目标访问日志中与预设修改信息对应的值或字符串进行修改。

在向预设网络服务发送访问请求时,访问请求中的请求信息包括请求方法信息、请求头信息、请求正文信息。在一个实施例中,对第一目标访问日志的添加信息操作可以为添加访问请求中的请求头信息,例如,添加请求头信息中的"accept-language"和"cache-control"两项信息。此时,在访问请求的请求头信息中提取"accept-language"和"cache-control"的具体值,写入第一目标访问日志中。

预设删除信息可以是在生成的测试用例中不需要的信息。比如,预设删除信息可以为访问请求的协议,访问请求返回时间、访问请求返回文档大小,也可以是其它信息。在一个实施例中,预设删除信息为访问请求的协议,那么在第一目标访问日志中将访问请求协议(protocol)对应的信息进行删除。

预设修改信息可以包括:访问请求的方法、访问请求的地址、访问请求的头信息,也可以包括其它信息,这里就不再列举了。在一个实施例中,预设修改信息为将cookie值修改为abc,那么将第一目标访问日志中的cookie值修改为abc。

进一步的,上述操作可以对应有执行操作的预设条件。比如说在第一目标访问日志满足第二预设条件时,将与所述访问日志对应的访问请求中的请求信息的一项或多项信息添加到所述第一目标访问日志中。在第一目标访问日志满足第三预设条件时,删除所述第一目标访问日志中的预设删除信息。在第一目标访问日志满足第四预设条件时,对所述第一目标访问日志中与预设修改信息对应的值或字符串进行修改。

第二预设条件、第三预设条件和第四预设条件可以均包括:所述访问请求的方法为预设方法,所述访问请求的地址中包括预设信息,所述访问请求返回状态包括预设结果。应理解,第二预设条件、第三预设条件、第四预设条件可以是相同的也可以是不同的,其可根据实际测试需求进行调整。在本公开的一个实施例中,第二预设条件、第三预设条件、第四预设条件均为预设信息为/home.html,预设结果可为200。即,在第一目标访问日志中的访问日志请求的地址中包含有/home.html,且访问请求返回状态中包括200时,在第一目标访问日志中添加访问请求中的请求信息的一项或多项,删除第一目标访问日志中的预设删除信息,对第一目标访问日志中与预设修改信息对应的值或字符串进行修改。

在本公开的另一个实施例中,第二预设条件为预设信息为/home.html,预设结果为200,第三预设条件为预设方法为get,预设信息为/home.html,第四预设条件为预设信息为/home.html,预设结果为200。那么在第一目标访问日志的访问请求的地址中包含有/home.html,且访问请求返回状态中包括200时,在第一目标访问日志中添加访问请求中的请求信息的一项或多项,在第一目标访问日志的访问请求的方法为get,访问请求的地址中包含有/home.html时,删除第一目标访问日志中的预设删除信息,在第一目标访问日志的访问请求的地址中包含有/home.html,且访问请求返回状态中包括200时,对第一目标访问日志中与预设修改信息对应的值或字符串进行修改。

请参考图5,为一示例性实施例示出的步骤s123的实现方式流程图,其包括以下步骤:

在步骤s1231中:在所述第一目标访问日志中获取与所述模板参数对应的信息;

在步骤s1232中:根据所述与所述模板对应的信息和所述模板格式,生成所述测试用例。

在一个实施例中,预设测试用例模板的模板参数包括:访问请求的地址、访问请求的方法、访问请求的参数、访问请求的返回结果。预设测试用例模板的格式为第一项为访问请求的方法、第二项为访问请求的地址、第三项为访问请求的参数、第四项为访问请求的返回结果。在第一目标访问日志中分别获得访问请求的地址、访问请求的方法、访问请求的参数、访问请求的返回结果对应的具体信息,并按照模板格式进行排序,生成测试用例。

在另一个实施例中,在第一目标访问日志中获取与模板参数对应的信息,并将信息填写到测试用例模板中,生成测试用例。

在又一个实施例中,在第一目标访问日志中获取与模板参数对应的信息,并根据模板格式,对第一目标访问日志的信息进行修改、填充、删除等操作,生成测试用例。

生成的测试用例包括:测试内容和期望测试结果,所述测试内容至少包括:访问请求的方法和访问请求的地址,所述期望测试结果至少包括:访问请求的返回结果。

在一个实施例中,测试用例的测试内容包括:访问请求的方法、访问请求的地址、访问请求的头信息、访问请求的参数,期望测试结果包括访问请求的返回结果。

进一步的,当测试用例生成之后,可以将测试用例保存到测试用例库中,当需要执行该测试用例时,直接在测试用例库中调用。

请参考图6,为一示例性实施例示出的一种更新测试用例的方法的流程图,该方法包括以下步骤:

在步骤s61中,利用所述测试用例的所述测试内容对所述待测试网络服务进行测试;

在步骤s62中,当所述待测试网络服务的返回结果与所述期望测试结果不匹配时,调整所述第一预设条件;

在步骤s63中,根据调整后的所述第一预设条件,获取满足调整后的所述第一预设条件的访问日志作为第二目标访问日志;以及根据所述第二目标访问日志和所述预设测试用例模板,生成所述测试用例。

在一个实施例中,生成的测试用例的测试内容包括:访问请求的方法和访问请求的地址,期望测试结果为访问请求的返回结果。其中,访问请求的方法为get,访问请求的地址为http://example.com/home.html,期望测试结果为200。利用测试用例中的访问请求的方法为get,访问请求的地址为http://example.com/home.html对待测试网络服务进行测试,在待测试网络服务的返回结果为200时,表明测试通过,在待测试网络服务的返回结果不为200时,表明测试用例没有通过。

测试用例没有通过可能有两方面的原因,一方面是由于待测试网络服务本身存在问题,另一方面是由于测试用例存在问题,如测试用例已经过时,不适用于现在的待测试网络服务,这时,需要对生成测试用例的规则,即第一预设条件进行重新修改调整,通过调整后的第一预设条件获取的第二目标访问日志适用于待测试网络服务。

另外,由于生成测试用例的规则也是随着系统不断的更新改进的,因此,可以定时对第一预设条件进行更新,以保证测试用例的可用性。

请参考图7,为本公开一示例性实施例示出的一种测试用例生成的方法的流程框图,为了更好的理解本公开中的测试用例生成的方法,下面将以一生成测试用例的过程为例,来对访问日志的处理和测试用例的生成来进行说明。在该实施例中,通过过滤器链701中的多个过滤器来实现第一预设条件,以及对第一目标访问日志进行的操作。过滤器链701中包含过滤器a,过滤器b,过滤器c,过滤器d。通过设置过滤器a的过滤规则来实现第一预设条件,通过设置过滤器b的过滤规则来添加访问请求中的请求信息和删除预设删除信息,通过设置过滤器c的过滤规则对预设修改信息进行修改,通过设置过滤器d的过滤规则来生成测试用例。

获取的访问日志为113.142.9.187--[15/jun/2017:14:43:47+0800]"gethttp://example.com/home.html?from=link&sort=falsehttp/1.1"200142390.150"-""""-"。

对访问日志进行json格式化处理,格式化处理后的访问日志为:

进一步的,将格式化处理后的日志通过过滤器链701的处理,首先通过过滤器a,过滤器a的过滤规则为:

{"url":"/home.html",

"code":302,

"action_type":"drop"}

即,在格式化处理后的日志中的访问请求的地址中包含有/home.html,以及访问请求的返回状态为302时,执行丢弃日志的操作。也就是说,第一预设条件为:访问请求的地址中包含有/home.html,以及访问请求的返回状态不包含302。由于上述格式化后的访问日志的访问请求的返回状态为200,因此为满足第一预设条件的第一目标访问日志。接下来,进入过滤器b,过滤器b的规则为:

即,在第一目标日志中的访问请求的地址中包含有/home.html,以及访问请求的返回状态为200时,将访问请求中的头信息的"accept-language":"zh-cn,zh;q=0.8,en;q=0.6"以及"cache-control":"max-age=0"这两项添加到第一目标访问日志中,并且将访问请求中的协议删除。由于第一目标日志满足该过滤条件,因此,经过过滤器b的过滤处理后的第一目标访问日志为:

接下来,将经过过滤器b处理的第一目标访问日志输入至过滤器c,过滤器c的过滤规则为:

即,在第一目标日志中的访问请求的地址中包含有/home.html,以及访问请求的返回状态为200时,将第一目标访问日志中的cookie值修改为prov=abc。由于第一目标访问日志满足该过滤条件,因此,经过过滤器c处理后的第一目标访问日志为:

最后,将处理后第一目标访问日志通过过滤器d,过滤器d的过滤规则为:

即,在第一目标日志中的访问请求的地址中包含有/home.html,以及访问请求的返回状态为200时,调用预设测试用例模板,生成测试用例。由于处理后的第一目标访问日志满足该过滤条件,因此,利用第一目标日志生成测试用例,生成的测试用例为:

在生成的测试用例中,测试内容包括:访问请求的方法,访问请求的地址,访问请求的头信息,访问请求的参数,期望测试结果为访问请求的返回状态200。使用该条测试用例的测试内容向待测试网络服务发起访问请求,然后判断待测试网络服务返回的状态码是否为200,如果返回状态码为200,表明测试通过,否则表明测试未通过。在测试未通过时,需要对测试失败的原因进行调查,如果是由于测试用例过时不适用于待测试网络服务,那么需要对测试用例的第一预设条件进行修改,重新生成测试用例。

最后,将生成的测试用例写入测试用例库702。

图8是根据一示例性实施例示出的一种测试用例生成装置的示意图。参照图8,该装置包括访问日志获取模块81,测试用例生成模块82。

该访问日志获取模块81,被配置为获取访问日志,所述访问日志为用户通过向预设网络发送访问请求向所述预设网络服务进行访问时产生的日志;

该测试用例生成模块82,被配置为根据所述访问日志以及预设测试用例模板,生成用于测试待测试网络服务的测试用例。

可选地,测试用例生成模块82,包括:

格式化处理子模块,被配置为对获取的所述访问日志进行格式化处理;

第一获取子模块,被配置为从格式化处理后的所述访问日志中,获取满足第一预设条件的访问日志作为第一目标访问日志,其中,格式化处理后的所述访问日志至少包括:访问请求的方法、访问请求的地址、访问请求的协议和访问请求的返回结果,所述第一预设条件至少包括:所述访问请求的方法为预设方法,所述访问请求的地址中包括预设信息以及所述访问请求返回状态包括预设结果;

第一生成子模块,被配置为根据所述第一目标访问日志和所述预设测试用例模板,生成所述测试用例。

可选地,请参考图9,是根据一示例性实施例示出的另一种测试用例生成装置的示意图,所述装置还包括:

第一处理模块83,被配置为对所述第一目标访问日志进行以下操作中的任一项或几项:将与所述访问日志对应的访问请求中的请求信息的一项或多项信息添加到所述第一目标访问日志中,删除所述第一目标访问日志中的预设删除信息以及对所述第一目标访问日志中与预设修改信息对应的值或字符串进行修改。

可选地,所述预设测试用例模板包括:模板参数和模板格式,所述模板参数至少包括:访问请求的方法、访问请求的地址和访问请求的返回结果;第一生成子模块还被配置为:

在所述第一目标访问日志中获取与所述模板参数对应的信息;

根据所述与所述模板对应的信息和所述模板格式,生成所述测试用例。

请参考图10,是根据一示例性实施例示出的又一种测试用例生成装置的框图,可选地,所述测试用例包括:测试内容和期望测试结果,所述测试内容至少包括:访问请求的方法和访问请求的地址,所述期望测试结果至少包括:访问请求的返回结果;所述装置还包括:

测试模块84,被配置为利用所述测试用例的所述测试内容对所述待测试网络服务进行测试;

第二处理模块85,被配置为当所述待测试网络服务的返回结果与所述期望测试结果不匹配时,调整所述第一预设条件;

第一获取模块86,被配置为根据调整后的所述第一预设条件,获取满足调整后的所述第一预设条件的访问日志作为第二目标访问日志;以及

第二生成模块87,被配置为根据所述第二目标访问日志和所述预设测试用例模板,生成所述测试用例。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开还提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开提供的测试用例生成方法的步骤。

图11是根据一示例性实施例示出的一种测试用例生成的装置1100的框图。例如,装置1100可以被提供为一服务器。参照图11,装置1100包括处理组件1122,其进一步包括一个或多个处理器,以及由存储器1132所代表的存储器资源,用于存储可由处理组件1122的执行的指令,例如应用程序。存储器1132中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件1122被配置为执行指令,以执行上述测试用例生成方法。

装置1100还可以包括一个电源组件1126被配置为执行装置1100的电源管理,一个有线或无线网络接口1150被配置为将装置1100连接到网络,和一个输入输出(i/o)接口1158。装置1100可以操作基于存储在存储器1132的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

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