网络服务的检测方法和系统的制作方法

文档序号:7706252阅读:72来源:国知局
专利名称:网络服务的检测方法和系统的制作方法
技术领域
本发明涉及信息技术领域,更具体地,本发明涉及一种网络服务的检测方法和系 统。
背景技术
虽然随着互联网的发展出现了很多网络服务(Web service)(例如天气预报服务、 加法服务、电子邮件服务等等),并且这些网络服务在人们的工作生活中起着很重要的作 用,但是这些网络服务却经常变化,例如位置发生变化或者版本进行了升级或者服务内容 发生了变化。因为这种变化通常不能被及时而准确的检测到,所以当网络服务发生变化后, 用户再访问该网络服务就可能会得到错误的结果。而且如果这个变化的网络服务是一系列 被组合的网络服务中的某个环节的话,这样的变化引起的错误很难被定位,甚至会产生严 重的连带后果。对网络服务的变化进行检测可以帮助用户避免潜在的损失。在现有技术中,主要有两种方案来对网络服务的变化进行检测。在第一种方案中,如中国专利申请公开CN1514381A中所公开的,每个网络服务必 须在服务器端和使用它的用户的客户端保留其描述文件。每次用户请求该网络服务的时 候,通过比较在服务器端和客户端的两个网络服务描述文件是否相同来判断网络服务是否 发生变化。该方案的缺点是每个网络服务必须在服务器端保留其描述文件,而且使用它的用 户的客户端在第一次访问该网络服务时需要拷贝并在本地存储该描述文件。但是很多访问 网络服务的客户端是普通浏览器(例如IE,firefox等等),它们没有相应的存储功能。而 且每次网络服务发生变化时都需要网络服务提供商修改服务器端的描述文件。如果网络服 务提供商拒绝或者忘记修改描述文件,该方案将失效。另一种方案是如在论文“Swiss Cheese Test Case Generation forffeb Services Testing”和“Finding Test Data on the Web”中所公开的,自动生成网络服务的很多测试 用例,当用户每次请求网络服务的时候,用测试用例判断网络服务是否变化。该方案的缺点是虽然有很多生成测试用例的方法,但是测试用例生成算法通常较 复杂,而且用户每次请求某网络服务的时候,都要跑通它的所有测试用例,这很耗时,不适 于实际使用。

发明内容
本发明提出了一种简单但合理的网络服务检测方案,可以快速准确的检测出网络 服务变化,减轻了网络服务提供商的工作量,保证了网络服务的质量和用户的权益。根据本发明的第一方面,提出了一种网络服务的检测方法,包括步骤接收一个网络服务请求;判断该请求的网络服务的类型;以及
根据该网络服务的类型检测网络服务是否发生变化,其中,如果所述网络服务的类型为固定型网络服务,运行测试用例来检测该网络 服务是否发生变化,如果所述网络服务的类型为非固定型网络服务,对所述网络服务进行范围测试来 检测该网络服务是否发生变化。根据本发明的第二方面,提出了一种网络服务的检测系统,包括第一接收模块,用于接收一个网络服务请求;第一判断模块,用于判断该请求的网络服务的类型;以及变化检测模块,用于根据该网络服务的类型检测网络服务是否发生变化,其中,如果所述网络服务的类型为固定型网络服务,调用值测试模块运行测试用 例来检测该网络服务是否发生变化,如果所述网络服务的类型为非固定型网络服务,调用范围测试模块对所述网络服 务进行范围测试来检测该网络服务是否发生变化。根据本发明,可以快速准确的检测出网络服务变化。


通过以下结合附图的说明,并且随着对本发明的更全面了解,本发明的其他目的 和效果将变得更加清楚和易于理解,其中图1示出了本发明可以在其中实现的系统;图2示意性地示出了根据本发明的一个实施方式的网络服务的检测方法的流程 图;图3示意性地示出了根据本发明的另一个实施方式的网络服务的检测方法的流 程图;图4示意性地示出了根据本发明的一个实施方式的训练方法的流程图;图5示意性地示出了根据本发明的一个实施方式的网络服务的检测系统的框图;图6示意性地示出了根据本发明的另一个实施方式的网络服务的检测系统的框 图;图7示意性地示出了根据本发明的一个实施方式的训练部分的框图。在所有的上述附图中,相同的标号表示具有相同、相似或相应的特征或功能。
具体实施方式
图1示出了本发明可以在其中实现的系统。如图1所示,该系统100包括一个服 务器110、一个服务器/客户端120、一个客户端130和一个网络140。服务器110、服务器 /客户端120、客户端130可以是膝上型计算机、小型机、中型机、或大型机等等。并且,服务 器110经由链路112连接到网络140 ;服务器/客户端120经由链路122连接到网络140 ; 客户端130经由链路132连接到网络140。链路112、122、132可以是有线链路,诸如同轴电 缆、光纤等,也可以是无线链路,诸如卫星链路等。同样地,网络140可以是无线网、有线网、 或它们的组合。另外,网络140可以是局域网、城域网、广域网、或它们的组合。例如,网络 140是因特网。
当然,本领域的技术人员应该理解,在网络140上还可以连接有其他的客户端和/ 或服务器。并且,为了能够彼此识别,客户端和服务器可以具有可以唯一地识别它们的标 识,例如IP地址、统一资源定位符(URL)等。图2示意性地示出了根据本发明的一个实施方式的网络服务的检测方法的流程 图。首先,在步骤S201,从用户接收一个网络服务请求。例如,在该步骤,从用户处接收 一个该用户想要访问的网络服务的URL(统一资源定位符)。然后,在步骤S202,判断该请求的网络服务的类型。例如,可以通过查阅这样的 一个网络服务类型表来判断该请求的网络服务的类型,该网络服务类型表包括网络服务的 URL和其对应的类型的条目。这个网络服务类型表可以通过下面将描述的训练步骤生成。然后,根据该网络服务的类型检测网络服务是否发生变化。如果所述网络服务的类型为固定型网络服务,则流程进行到步骤S203。在步骤 S203,运行测试用例来检测该网络服务是否发生变化。可以运行一个或多个测试用例。如果所述网络服务的类型为非固定型网络服务,则流程进行到步骤S204。在步骤 S204,对所述网络服务进行范围测试来检测该网络服务是否发生变化。其中,固定类型网络服务是这样的网络服务,在不同的时间,如果输入相同,则输 出一定相同。例如,加法网络服务是一种固定类型的网络服务,在不同的时间,如果输入相 同,例如1和2,则输出一定相同,例如为3。而非固定类型网络服务是这样的网络服务,在不同的时间,如果输入相同,输出不 一定相同。例如,天气预报网络服务是一种非固定类型的网络服务,在不同的时间(例如隔 一天),输入相同的内容“北京”,则输出不一定相同。测试用例和范围测试中所使用的网络服务的正常输出范围可以通过下面将描述 的训练步骤得到。执行步骤S203会产生如下三种中的一种结果网络服务关闭或超时、通过所述测 试用例、未通过所运行的测试用例。同样地,执行步骤S204也会产生如下三种中的一种结 果网络服务关闭或超时、通过所述范围测试、未通过所述范围测试。如果网络服务关闭或超时,也就是说,根本就无法进行范围测试和运行测试用例, 则流程分别进行到步骤S2031和S2041。在所述步骤S2031和S2041,定位该网络服务错误 并向用户报告该错误。如果通过所述测试用例或所述范围测试,即根据测试用例中的输入进行网络服务 调用,并判断出返回结果与测试用例中的对应输出相匹配,或根据用户的输入进行网络服 务调用,并判断出返回结果在该网络服务的正常输出范围内,则流程分别进行到步骤S2032 和S2042。在步骤S2032和S2042,向用户输出所请求的网络服务。当然,本领域的技术人 员可以理解,对于网络服务的类型是固定类型的情况,在步骤S2032之前,还需要一个根据 用户的输入进行网络服务调用的步骤,原因是在网络服务的类型是固定类型的情况下,在 判断网络服务是否发生变化的步骤中,根据测试用例中的输入进行网络服务调用,而不像 在网络服务的类型是非固定类型的情况下,在判断网络服务是否发生变化的步骤中,根据 用户的输入进行网络服务调用。如果未通过所运行的测试用例或所述范围测试,即根据测试用例中的输入进行网络服务调用,并判断出返回结果与测试用例中的对应输出不相匹配,或根据用户的输入进 行网络服务调用,并判断出返回结果不在该网络服务的正常输出范围内,则流程分别进行 到步骤S2033和S2043。在步骤S2033和S2043,向用户提示该网络服务发生了变化。图3示意性地示出了根据本发明的另一个实施方式的网络服务的检测方法的流 程图。首先,在步骤S301,从用户接收一个网络服务请求。例如,在该步骤,从用户处接收 一个该用户想要访问的网络服务的URL(统一资源定位符)。然后,在步骤S311,判断该网络服务的状态。例如,根据用户的输入进行网络服务 调用,并判断是否及时从该网络服务得到返回结果,来判断该网络服务的状态。如果没有及时从该网络服务得到返回结果,则判断网络服务关闭或超时,则流程 进行到步骤S312,在该步骤S312,定位该网络服务错误并向用户报告该错误。如果及时从该网络服务得到返回结果,则判断网络服务没有关闭或超时,则流程 同时进行到步骤S313和S302。在步骤S313,存储返回结果。在步骤S302,判断该请求的网络服务的类型。如前所述,可以通过查阅这样的一个 网络服务类型表来判断该请求的网络服务的类型,该网络服务类型表包括网络服务的URL 和其对应的类型的条目。然后,根据该网络服务的类型检测网络服务是否发生变化。如果所述网络服务的类型为固定型网络服务,则流程进行到步骤S303。在步骤 S303,运行测试用例来检测该网络服务是否发生变化。可以运行一个或多个测试用例。如果所述网络服务的类型为非固定型网络服务,则流程进行到步骤S304。在步骤 S304,对所述网络服务进行范围测试来检测该网络服务是否发生变化。执行步骤S303会产生如下二种中的一种结果通过所述测试用例、未通过所运行 的测试用例。同样地,执行步骤S304也会产生如下二种中的一种结果通过所述范围测试、 未通过所述范围测试。如果通过所述测试用例或所述范围测试,即根据测试用例中的输入进行网络服务 调用,并判断出返回结果与测试用例中的对应输出相匹配,或判断出在步骤S313中存储的 返回结果在该网络服务的正常输出范围内,则流程分别进行到步骤S3032和S3042。在步骤 S3032和S3042,向用户输出所请求的网络服务,即输出在步骤S313中所存储的返回结果。如果未通过所运行的测试用例或所述范围测试,即根据测试用例中的输入进行网 络服务调用,并判断出返回结果与测试用例中的对应输出不相匹配,或判断出在步骤S313 中存储的返回结果不在该网络服务的正常输出范围内,则流程分别进行到步骤S3033和 S3043。在步骤S3033和S3043,向用户提示该网络服务发生了变化。
顺便说一下,上述方法的各步骤可以在客户端130上执行。图4示意性地示出了根据本发明的一个实施方式的训练方法的流程图。首先,在步骤S401,从用户或从网络服务列表接收一个网络服务。例如,接收一个 网络服务的URL。然后,在步骤S402,判断所接收的网络服务的类型。例如,根据类型测试模型来判 断所接收的网络服务的类型。
类型测试模型例如描述了随机产生合理输入(符合该网络服务的输入限制,利用 某种采样规则获得)并记录其输出,隔一段时间(例如一天)用同样的输入再次调用该网 络服务,并记录其输出。经过判断,如果所述网络服务的类型为固定型网络服务,则流程进行到步骤S403。然而,如果所述网络服务的类型为非固定型网络服务,则流程进行到步骤S404。其中,如果两次记录的输出不同,则判定该网络服务为非固定型网络服务,而如果 两次记录的输出相同,则判定该网络服务为固定型网络服务。在步骤S403,记录网络服务的测试用例(输入_输出对,因为是固定类型的网络服 务,所以只需记录少数几个测试用例即可)。例如,根据输入范围(例如-30-100)产生输入 (例如可以正态分布抽样),然后使用该输入调用该网络服务,并记录对应的输出。在步骤S404,统计所述网络服务的正常输出范围。例如,在不同的时间,使用相同 的输入调用该网络服务,并统计各个对应的输出。例如,对于天气预报网络服务,可以统计 出正常输出范围为-89. 6摄氏度到63摄氏度。本领域的技术人员可以理解,在步骤S403和步骤S404之后,还可以包括存储记录 的测试用例和统计的网络服务的正常输出范围的步骤,以及在步骤S402之后,还可以包括 存储判断出的网络服务的类型的步骤,例如,以包括网络服务的URL和其对应的类型的条 目的网络服务类型表的形式存储。顺便说一下,上述方法的各步骤可以在服务器/客户端120上执行。图5示意性地示出了根据本发明的一个实施方式的网络服务的检测系统的框图。如图5所示,该系统500包括第一接收模块510,用于接收一个网络服务请求;第 一判断模块520,用于判断该请求的网络服务的类型;以及变化检测模块530,用于根据该 网络服务的类型检测网络服务是否发生变化。其中,如果所述网络服务的类型为固定型网 络服务,调用值测试模块531运行测试用例来检测该网络服务是否发生变化,如果所述网 络服务的类型为非固定型网络服务,调用范围测试模块532对所述网络服务进行范围测试 来检测该网络服务是否发生变化。其中第一判断模块520根据网络服务类型表,来判断该请求的网络服务的类型。 该网络服务类型表包括网络服务的URL和其对应的类型的条目,并且由下面将描述的训练 部分维护。并且,测试用例和范围测试中所使用的网络服务的正常输出范围可以通过下面 将描述的训练部分得到。如果通过所述测试用例或所述范围测试,即根据测试用例中的输入进行网络服务 调用,并判断出返回结果与测试用例中的对应输出相匹配,或根据用户的输入进行网络服 务调用,并判断出返回结果在该网络服务的正常输出范围内,则调用输出模块540向用户 输出所请求的网络服务;如果未通过所运行的测试用例或所述范围测试,即根据测试用例 中的输入进行网络服务调用,并判断出返回结果与测试用例中的对应输出不相匹配,或根 据用户的输入进行网络服务调用,并判断出返回结果不在该网络服务的正常输出范围内, 则调用提示模块550向用户提示该网络服务发生了变化;以及如果网络服务关闭或超时, 也就是说,根本就无法进行范围测试和运行测试用例,则调用定位和报告模块560来定位 该网络服务错误并向用户报告该错误。本领域的技术人员可以理解,在输出模块540与值测试模块531之间,还需要一个执行模块,用于根据用户的输入进行网络服务调用,原因是在网络服务的类型是固定类型 的情况下,在判断网络服务是否发生变化中,根据测试用例中的输入进行网络服务调用,而不像在网络服务的类型是非固定类型的情况下,在判断网络服务是否发生变化中,根据用 户的输入进行网络服务调用。图6示意性地示出了根据本发明的另一个实施方式的网络服务的检测系统的框图。如图6所示,系统600包括第一接收模块610,用于接收一个网络服务请求;网络 服务状态判断模块615,用于判断网络服务的状态,如果网络服务关闭或超时,则调用定位 和报告模块617来定位该网络服务错误并向用户报告该错误,否则,调用存储模块619来存 储返回的结果和调用第一判断模块620来判断该请求的网络服务的类型;以及变化检测模 块630,用于根据该网络服务的类型检测网络服务是否发生变化。其中,如果所述网络服务 的类型为固定型网络服务,调用值测试模块631运行测试用例来检测该网络服务是否发生变化,如果所述网络服务的类型为非固定型网络服务,调用范围测试模块632对所述网络 服务进行范围测试来检测该网络服务是否发生变化。其中第一判断模块620根据网络服务类型表,来判断该请求的网络服务的类型。 该网络服务类型表由下面将描述的训练部分维护。并且,测试用例和范围测试中所使用的 网络服务的正常输出范围可以通过下面将描述的训练部分得到。如果通过所述测试用例或所述范围测试,即根据测试用例中的输入进行网络服务 调用,并判断出返回结果与测试用例中的对应输出相匹配,或判断出存储模块619中存储 的相应返回结果在该网络服务的正常输出范围内,则调用输出模块640向用户输出所请求 的网络服务,即输出在存储模块619中存储的相应返回结果;如果未通过所运行的测试用 例或所述范围测试,即根据测试用例中的输入进行网络服务调用,并判断出返回结果与测 试用例中的对应输出不相匹配,或判断出在存储模块619中存储的相应返回结果不在该网 络服务的正常输出范围内,则调用提示模块650向用户提示该网络服务发生了变化;以及 如果网络服务关闭或超时。图7示意性地示出了根据本发明的一个实施方式的训练部分的框图。如图7所示,该训练部分700包括第二接收模块710,用于从用户或从网络服务列 表接收一个网络服务,例如,接收一个网络服务的URL;第二判断模块720,用于判断所接收 的网络服务的类型;测试用例记录模块730,用于如果所述网络服务的类型为固定型网络 服务,记录测试用例;以及输出范围统计模块740,用于如果所述网络服务的类型为非固定 型网络服务,统计所述网络服务的正常输出范围。第二判断模块720例如根据类型测试模型来判断所接收的网络服务的类型。类型测试模型例如描述了随机产生合理输入(符合该网络服务的输入限制,利用 某种采样规则获得)并记录其输出,隔一段时间(例如一天)用同样的输入再次调用该网 络服务,并记录其输出。类型测试模型可以存储在训练部分700本地,也可以存储在训练部 分700外部。其中,如果两次记录的输出不同,则第二判断模块720判定该网络服务为非固定 型网络服务,而如果两次记录的输出相同,则第二判断模块720判定该网络服务为固定型 网络服务。
测试用例记录模块730记录网络服务的测试用例(输入-输出对,因为是固定类型的网络服务,所以只需记录少数几个测试用例即可)。例如,根据输入范围(例 如-30-100)产生输入(例如可以正态分布抽样),然后使用该输入调用该网络服务,并记录 对应的输出。输出范围统计模块740统计所述网络服务的正常输出范围。例如,在不同的时间, 使用相同的输入调用该网络服务,并统计各个对应的输出。例如,对于天气预报网络服务, 可以统计出正常输出范围为-89. 6摄氏度到63摄氏度。本领域的技术人员可以理解,训练部分700还可以包括用于存储记录的测试用例 和统计的网络服务的正常输出范围的模块,并且,还可以包括存储判断出的网络服务的类 型的模块,例如,以包括网络服务的URL和其对应的类型的条目的网络服务类型表的形式存储。应当注意,为了使本发明更容易理解,上面的描述省略了对于本领域的技术人员 来说是公知的、并且对于本发明的实现可能是必需的更具体的一些技术细节。提供本发明的说明书的目的是为了说明和描述,而不是用来穷举或将本发明限制 为所公开的形式。对本领域的普通技术人员而言,许多修改和变更都是显而易见的。例如, 在检测过程中,发现网络服务发生了变化后,还可以包括向训练部分通知重新对该网络服 务进行训练的步骤。因此,选择并描述实施方式是为了更好地解释本发明的原理及其实际应用,并使 本领域普通技术人员明白,在不脱离本发明实质的前提下,所有修改和变更均落入由权利 要求所限定的本发明的保护范围之内。
权利要求
一种网络服务的检测方法,包括步骤a)接收一个网络服务请求;b)判断该请求的网络服务的类型;以及c)根据该网络服务的类型检测网络服务是否发生变化,其中,如果所述网络服务的类型为固定型网络服务,运行测试用例来检测该网络服务是否发生变化,如果所述网络服务的类型为非固定型网络服务,对所述网络服务进行范围测试来检测该网络服务是否发生变化。
2.根据权利要求1所述的方法,在步骤c)之后,如果通过所述测试用例或所述范围测试,则向用户输出所请求的网络服务; 如果未通过所运行的测试用例或所述范围测试,则向用户提示该网络服务发生了变化。
3.根据权利要求1所述的方法,其中在步骤c)之后,如果网络服务关闭或超时,则定位该网络服务错误并向用户报告该错误。
4.根据权利要求1所述的方法,其中在步骤a)和步骤b)之间,还包括判断网络服务的 状态,并且如果网络服务关闭或超时,则定位该网络服务错误并向用户报告该错误,否则, 执行步骤b)和c)。
5.根据权利要求1所述的方法,其中在步骤b)中,根据网络服务类型表,来判断该请求 的网络服务的类型。
6.根据权利要求1所述的方法,在步骤a)之前,还包括一系列训练步骤 接收一个网络服务;判断所接收的网络服务的类型;以及如果所述网络服务的类型为固定型网络服务,则记录测试用例;如果所述网络服务的 类型为非固定型网络服务,则统计所述网络服务的正常输出范围。
7.根据权利要求6所述的方法,其中在一系列训练步骤中,根据类型测试模型来判断 所接收的网络服务的类型。
8.一种网络服务的检测系统,包括第一接收模块,用于接收一个网络服务请求; 第一判断模块,用于判断该请求的网络服务的类型;以及 变化检测模块,用于根据该网络服务的类型检测网络服务是否发生变化, 其中,如果所述网络服务的类型为固定型网络服务,调用值测试模块运行测试用例来 检测该网络服务是否发生变化,如果所述网络服务的类型为非固定型网络服务,调用范围测试模块对所述网络服务进 行范围测试来检测该网络服务是否发生变化。
9.根据权利要求8所述的系统,其中如果通过所述测试用例或所述范围测试,则调用 输出模块向用户输出所请求的网络服务;如果未通过所运行的测试用例或所述范围测试,则调用提示模块向用户提示该网络服 务发生了变化。
10.根据权利要求8所述的系统,其中如果网络服务关闭或超时,则调用定位和报告模块来定位该网络服务错误并向用户报告该错误。
11.根据权利要求8所述的系统,其中在第一接收模块和第一判断模块之间,还包括网 络服务状态判断模块,用于判断网络服务的状态,并且如果网络服务关闭或超时,则调用定 位和报告模块来定位该网络服务错误并向用户报告该错误,否则,调用第一判断模块。
12.根据权利要求8所述的系统,其中第一判断模块根据网络服务类型表,来判断该请 求的网络服务的类型。
13.根据权利要求8所述的系统,还包括训练部分,其中该训练部分包括 第二接收模块,用于接收一个网络服务;第二判断模块,用于判断所接收的网络服务的类型;测试用例记录模块,用于如果所述网络服务的类型为固定型网络服务,记录测试用例;以及输出范围统计模块,用于如果所述网络服务的类型为非固定型网络服务,统计所述网 络服务的正常输出范围。
14.根据权利要求13所述的系统,其中所述第二判断模块根据类型测试模型来判断所 接收的网络服务的类型。
全文摘要
本发明公开了一种网络服务的检测方法和系统。该方法包括接收一个网络服务请求;判断该请求的网络服务的类型;以及根据该网络服务的类型检测网络服务是否发生变化,其中,如果所述网络服务的类型为固定型网络服务,运行测试用例来检测该网络服务是否发生变化,如果所述网络服务的类型为非固定型网络服务,对所述网络服务进行范围测试来检测该网络服务是否发生变化。根据本发明,可以快速准确的检测出网络服务变化。
文档编号H04L12/24GK101841434SQ20091012855
公开日2010年9月22日 申请日期2009年3月18日 优先权日2009年3月18日
发明者刘晓炜, 孟昕, 宋才良, 王炼 申请人:日电(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1