CN102622296A - 搜索引擎模块的测试方法、系统及其装置 - Google Patents
搜索引擎模块的测试方法、系统及其装置 Download PDFInfo
- Publication number
- CN102622296A CN102622296A CN2012100417345A CN201210041734A CN102622296A CN 102622296 A CN102622296 A CN 102622296A CN 2012100417345 A CN2012100417345 A CN 2012100417345A CN 201210041734 A CN201210041734 A CN 201210041734A CN 102622296 A CN102622296 A CN 102622296A
- Authority
- CN
- China
- Prior art keywords
- search engine
- result data
- data bag
- module
- engine module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明提出一种搜索引擎模块的测试方法,包括:录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包,同时录制在线下游搜索引擎模块向在线搜索引擎模块返回的结果数据包;建立请求数据包和结果数据包之间的关联关系;依次将请求数据包和对应的结果数据包注入到第一被测搜索引擎模块中以获得第一测试结果;依次将请求数据包和对应的结果数据包注入到第二被测搜索引擎模块中以获得第二测试结果;根据第一测试结果和第二测试结果对第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。本发明还公开了一种搜索引擎模块的测试系统、一种在线录制装置以及一种测试回放装置。
Description
技术领域
本发明涉及软件测试技术领域,特别涉及一种搜索引擎模块的测试方法、系统及其装置。
背景技术
差异性(DIFF)测试是目前软件测试的一种重要测试手段。特别是对搜索引擎模块来说,随着搜索业务的不断扩展,需要对搜索引擎模块不断地进行升级,因此搜索引擎模块的差异性测试越来越重要。现有对搜索引擎搜索模块进行差异性测试,都是通过搭建整个搜索环境或者被测搜索引擎模块的上下游真实模块来实现的。如图1示,首先需要搭建所有相互关联的搜素引擎模块,即建立上下游搜索引擎模块之间的关系。之后将请求分别发送给新版本与对比版本的搜索引擎模块,两个版本的搜索引擎模块各自与后端的搜索引擎模块进行交互,并向上游的搜索引擎模块返回结果。传统的差异性测试就是比较两个版本的搜索引擎模块分别返回的结果。为了提高差异性测试的模块分支覆盖率,通常需要提供大量的后端结果,因此导致需要大量的后端的搜索引擎模块。由于其数量比较多,因此有些模块需要资源单台机器无法满足,包括CPU、内存、存储空间等资源无法满足,从而导致测试时机器数量需求比较大,不仅造成测试复杂度提高,而且耗费大量的测试时间和测试成本。
具体地,现有搜索引擎测试方法有如下缺点:
(1)很容易由于测试环境的“噪声”,导致测试结果不准确。其中,以上所述的“噪声”包括网络环境不稳定、上下游模块不稳定等因素。尤其是上下游搜索引擎模块很多时,任何一个搜索引擎模块的不稳定或者网络异常,都有可能会导致测试结果的不准确。而且,由于无法再现,从而导致追查成本很高。
(2)容易受到上下游搜索引擎模块性能瓶颈的制约。例如,被测搜索引擎模块本身能承受的压力能达到1000q/s以上,但如果后端搜索模块能承受的压力大小只有300q/s,这就会导致该被测搜索引擎模块无法进一步提高测试速度,从而影响整体的测试进度。
(3)机器占用多,测试环境搭建和维护成本高。测试过程中搭建上下游搜索引擎模块,不仅需要较长的时间,而且需要占用大量的测试机。在机器资源有限的情况下,要在测试过程中维护一套专属的测试环境,导致成本很高。
(4)差异性测试结果复现困难,成本高。由于搜索引擎中后端库数据会定时更新,测试环境无法长期保存,造成前一次测试发现的差异性测试结果在后一次测试中不能复现,增大了追查的成本。
发明内容
本发明的目的旨在至少解决上述技术缺陷之一。
为此,本发明实施例的目的在于提出一种搜索引擎模块的测试方法,该搜索引擎模块的测试方法能够有效解决上下游模块不稳定的问题,还能减少测试环境资源使用,降低搭建和维护的成本。
本发明实施例的第二个目的在于提供一种搜索引擎模块的测试系统。
本发明实施例的第三个目的在于提供一种在线录制装置。
本发明实施例的第四个目的在于提供一种测试回放装置。
为达到上述目的,本发明第一方面的实施例公开了一种搜索引擎模块的测试方法,包括:录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包,同时录制在线下游搜索引擎模块向所述在线搜索引擎模块返回的结果数据包;建立所述请求数据包和所述结果数据包之间的关联关系;依次将所述请求数据包和对应的所述结果数据包注入到所述第一被测搜索引擎模块中以获得所述第一被测搜索引擎模块产生的第一测试结果;依次将所述请求数据包和对应的所述结果数据包注入到所述第二被测搜索引擎模块中以获得所述第二被测搜索引擎模块产生的第二测试结果;根据所述第一测试结果和所述第二测试结果对所述第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。
本发明实施例通过从在线搜索引擎模块获取真实的在线数据,并根据该真实的在线数据对第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性测试,可以避免“噪声”的影响,而且无需搭建真实的上下游搜索引擎模块,只要通过一台测试机进行仿真即可,因此提高了搜索引擎模块进行差异性测试的准确性和测试效率,降低了测试成本。此外,本发明实施例也能够有效地解决上下游模块不稳定、性能瓶颈等环境问题,极大地避免了由于测试环境噪声导致的差异性测试结果不准确的问题。本发明实施例通过减少测试环境资源使用、搭建和维护,极大地节省了机器资源,降低测试成本,提高了测试效率。此外,这种基于数据包录制回放的模块级差异性测试方法,通用性很高,可以使用在搜索端的其它模块,并应用于其它产品线。
在本发明的一个实施例中,所述录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包进一步包括:接收所述在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包;获取所述请求数据包之中的查询ID,并将所述请求数据包转发至所述在线搜索引擎模块;以及根据所述查询ID存储所述请求数据包。
在本发明的一个实施例中,所述录制在线下游搜索引擎模块向在线搜索引擎模块返回的结果数据包进一步包括:接收所述在线下游搜索引擎模块向在线搜索引擎模块返回的结果数据包;获取所述结果数据包之中的查询ID,并将所述结果数据包转发至所述在线搜索引擎模块;以及根据所述查询ID存储所述结果数据包。
在本发明的一个实施例中,依据所述查询ID建立所述请求数据包和所述结果数据包之间的关联关系。通过上述关联关系的建立使得回放的数据稳定,利于复现真实环境下的请求处理。并且,在向第一被测搜索引擎模块和第二被测搜索引擎模块注入请求数据包之后,即可根据该关联关系查找到对应的结果数据包并注入到第一被测搜索引擎模块和第二被测搜索引擎模块中,从而加快第一被测搜索引擎模块和第二被测搜索引擎模块的处理速度,使得测试的整体速度有极大地提升。
在本发明的一个实施例中,所述在线下游搜索引擎模块为多个,以构成在线下游搜索引擎集群。
在本发明的一个实施例中,还包括:如果根据所述查询ID未确定与所述请求数据包对应的结果数据包,则返回预设的结果数据包。通过这种方式,能够极大地避免真实环境中网络不稳定、关联模块不稳定造成的影响,将问题集中于关注被测搜索模块本身。
本发明第二方面的实施例公开了一种搜索引擎模块的测试系统,包括:在线录制装置,用于录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包和在线下游搜索引擎模块向所述在线搜索引擎模块返回的结果数据包;测试回放装置,用于建立所述请求数据包和所述结果数据包之间的关联关系,并依次将所述请求数据包和对应的所述结果数据包注入到所述第一被测搜索引擎模块中以获得所述第一被测搜索引擎模块产生的第一测试结果,以及依次将所述请求数据包和对应的所述结果数据包注入到所述第二被测搜索引擎模块中以获得所述第二被测搜索引擎模块产生的第二测试结果,根据所述第一测试结果和所述第二测试结果对所述第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。
本发明提高了搜索引擎模块进行差异性测试的准确性和测试效率,降低了测试成本。有效地解决上下游模块不稳定、性能瓶颈等环境问题,极大地避免了由于测试环境噪声导致的差异性测试结果不准确的问题。通过减少测试环境资源使用、搭建和维护,搜索引擎模块的测试系统极大地节省了机器资源,降低测试成本,提高了测试效率。此外,这种基于数据包录制回放的模块级差异性测试系统,通用性很高,可以使用在搜索端的其它模块,并应用于其它产品线。
本发明第三方面的实施例公开了一种在线录制装置,包括:第一录制桩,所述第一录制桩连接在在线上游搜索引擎模块和在线搜索引擎模块之间,用于录制所述在线上游搜索引擎模块向所述在线搜索引擎模块发送的请求数据包;以及第二录制桩,所述第二录制桩连接在所述在线搜索引擎模块和在线下游搜索引擎模块之间,用于录制所述在线下游搜索引擎模块向所述在线搜索引擎模块返回的结果数据包。
本发明第四方面的实施例公开了一种测试回放装置,包括:数据包接收模块,用于接收所述在线录制装置发送的请求数据包和结果数据包,并建立所述请求数据包和所述结果数据包之间的关联关系;请求发送模块,用于向所述第一被测搜索引擎模块和所述第二被测搜索引擎模块发送所述请求数据包;查询模块,用于根据所述查询ID确定与所述请求数据包对应的结果数据包;结果数据发送模块,用于将所述结果数据包分别发送到所述第一被测搜索引擎模块和所述第二被测搜索引擎模块以获得所述第一测试结果和所述第二测试结果;分析模块,用于根据所述第一测试结果和所述第二测试结果对所述第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为传统搜索引擎模块的差异性测试的示意图;
图2为根据本发明实施例的搜索引擎模块的测试方法的流程框图;
图3为根据本发明实施例的搜索引擎模块的测试方法的录制数据包流程图;
图4为根据本发明实施例的搜索引擎模块的测试方法得到第一测试结果的流程图;
图5为根据本发明实施例的搜索引擎模块的测试方法得到第二测试结果的流程图;
图6为根据本发明实施例的搜索引擎模块的测试系统的结构示意图;
图7为根据本发明实施例的在线录制装置通信示意图;以及
图8为根据本发明实施例的测试回放装置测试示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
下面参考图2至图5描述根据本发明实施例的搜索引擎模块的测试方法。
步骤S110:录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包,同时录制在线下游搜索引擎模块向在线搜索引擎模块返回的结果数据包。在本发明的实施例中,对第一被测搜索引擎模块和第二被测搜索引擎模块的差异性测试所依赖的数据为从在线搜索引擎模块获取的真实数据,从而提高测试的精确性。并且,由于录制在线上进行,不占用测试时间,从而可以极大地提高测试效率。其中,在本发明的一个实施例中,在线下游搜索引擎模块可为多个,以构成在线下游搜索引擎集群。当然在本发明的其他实施例中,在线上游搜索引擎模块也可为多个,构成在线上游搜索引擎集群。
为了便于描述,在此将在线上游搜索引擎模块记作模块A,在线搜索引擎模块记作模块B,在线下游搜索引擎集群记作C1,C2,C3...Cn。可以理解的是,上述模块A,模块B,C1,C2,C3...Cn仅出于示例的目的,本发明实施例并不限于此。录制过程可以在即有的真实环境中实时进行录制,这样在测试时可以直接使用已录制好的数据,不仅能够节约录制时间,而且获得的数据更接近真实的情况,从而提高了测试的精确度。
下面参考图3描述请求数据包以及结果数据包的录制过程。
录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包进一步包括:
步骤S111:接收在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包,例如,可记录请求数据包为A2B。在本发明的一个实施例中,该请求数据包中包括查询ID(QueryID)。可以理解的是,上述A2B仅出于示例的目的,本发明实施例并不限于此。
步骤S112:解析并转发该请求数据包具体包括获取该请求数据包之中的查询ID,并将该请求数据包转发至在线搜索引擎模块。
步骤S113:存储请求数据包,并为该请求数据包建立唯一标识。优选地,在本发明的一个实施例中,可将查询ID作为该请求数据包的唯一标识。
其中,录制在线下游搜索引擎模块向在线搜索引擎模块返回的结果数据包进一步包括:
步骤S114:接收在线下游搜索引擎模块向在线搜索引擎模块返回的结果数据包。其中,在线搜索引擎模块在接收到请求数据包之后会进行相应处理,并将处理结果及相应的查询ID发送至在线下游搜索引擎模块(或者在线下游搜索引擎集群),在线下游搜索引擎模块(或者在线下游搜索引擎集群)在完成处理之后,向该在线搜索引擎模块返回结果数据包,该过程为现有技术,因此在此不再赘述。
在本发明的一个实施例中,如果为多个在线下游搜索引擎集群的话,可记录结果数据包为C12B、C22B、C32B...Cn2B。同样可以理解的是,上述C12B、C22B、C32B...Cn2B仅出于示例的目的,本发明实施例并不限于此。
步骤S115:解析并转发结果数据包。具体包括获取结果数据包之中的查询ID,并将结果数据包转发至在线搜索引擎模块。
步骤S116:存储结果数据包。同样,优选地,在本发明的一个实施例中,可将查询ID作为该结果数据包的唯一标识。
在本发明的实施例中,可将请求数据包和结果数据包集中存储,从而便于后续的测试回放。其中,优选地,上述请求数据包和结果数据包可以采用统一的格式存储,从而便于建立请求数据包和结果数据包之间的关联关系。例如,数据包格式可以如表1所示。可以理解的是,上述数据包格式仅出于示例的目的,本发明实施例并不限于此。
表1
其中,
VALID_NUM:为固定内容,标识数据包是否有效。
ID:数据包的唯一标示。
LEN:二进制通信数据包的长度。
PACKAGE_DATA:搜索引擎模块之间通信的完整的二进制数据包。
步骤S120:建立请求数据包和结果数据包之间的关联关系;
其中,在本发明的实施例中,上述ID可以是查询ID,这样如果请求数据包和结果数据包均采用相同的查询ID作为ID,则就可建立请求数据包和结果数据包之间的关联关系。
在本发明的一个实施例中,依据查询ID建立请求数据包和结果数据包之间的关联关系。如表1所示,ID这一项表示查询ID。可以理解的是,上述查询ID仅出于示例目的,请求数据包和结果数据包之间的关联关系也可以使用自定义的签名算法等计算,本发明不限于此。
步骤S130:依次将请求数据包和对应的结果数据包注入到第一被测搜索引擎模块(例如新版本)中以获得第一被测搜索引擎模块产生的第一测试结果。在该实施例中,由于已经将在线获得的真实的请求数据包和对应的结果数据包进行了保存,因此对于第一被测搜索引擎模块和第二被测搜索引擎模块的上下游搜索引擎模块来说就可根据请求数据包和对应的结果数据包进行仿真得到,该仿真可在一台测试机上进行即可。具体地,假设以采用一台测试机进行测试为例进行描述,如图4所示,步骤S130进一步包括:
步骤S131:测试机将请求数据包A2B注入到第一被测搜索引擎模块。
步骤S132:测试机提取请求数据包中的查询ID。
步骤S133:测试机根据查询ID确定对应的结果数据包。在本发明的一个实施例中,在结果数据包C12B、C22B、C32B...Cn2B中寻找查询ID相同的数据包,例如C12B为对应的结果数据包。
步骤S134:如果根据查询ID可以确定与请求数据包对应的结果数据包,则测试机将结果数据包C12B注入到第一被测搜索引擎模块。
步骤S135:如果根据查询ID无法或不能确定与请求数据包对应的结果数据包,则向第一被测搜索引擎模块注入预设的结果数据包,从而能够极大地避免真实环境中网络不稳定、关联模块不稳定造成的影响,将问题集中于关注被测搜索模块本身。
步骤S136:接收第一被测搜索引擎模块产生的第一测试结果,并将返回的第一测试结果记为B2A_base。可以理解的是,上述B2A_base仅出于示例的目的,本发明实施例并不限于此。
步骤S140:依次将请求数据包和对应的结果数据包注入到第二被测搜索引擎模块中以获得第二被测搜索引擎模块产生的第二测试结果,同样以采用一台测试机进行测试为例进行描述,如图5所示,进一步包括:
步骤S141:测试机将请求数据包A2B注入到第二被测搜索引擎模块;
步骤S142:测试机提取请求数据包的查询ID;
步骤S143:测试机根据查询ID确定对应的结果数据包,例如C12B为对应的结果数据包。在本发明的一个实施例中,在结果数据包C12B、C22B、C32B...Cn2B中寻找查询ID相同的数据包,并将返回的结果数据包记为C12B。
步骤S144:如果根据查询ID确定与请求数据包对应的结果数据包,将结果数据包C12B注入到第二被测搜索引擎模块。
步骤S145:如果根据查询ID未确定与请求数据包对应的结果数据包,则向第二被测搜索引擎模块注入预设的结果数据包,从而能够极大地避免真实环境中网络不稳定、关联模块不稳定造成的影响,避免出现由于未找到结构数据包而出现的测试停顿。
步骤S146:接收第二被测搜索引擎模块产生的第二测试结果,例如将第二测试结果记为B2A_test。可以理解的是,上述B2A_test仅出于示例的目的,本发明实施例并不限于此。
步骤S150:根据第一测试结果和第二测试结果对第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。在本发明的一个实施例中,比较B2A_base和B2A_test是否存在非预期差异。在本发明的实施例中,由于对第一被测搜索引擎模块和第二被测搜索引擎模块输入的请求数据包和结果数据包都是相同的,且是稳定一致的,因此如果存在非预期的差异性(diff),则即可判断程序出现问题。此外,由于请求数据包和结果数据包完全有测试机仿真获得,因此不存在性能瓶颈的问题。并且,请求数据包和结果数据包都存储在测试机之中,可以在任何情况下完整地进行稳定复现。
根据本发明实施例的搜索引擎模块的测试方法提高了搜索引擎模块进行差异性测试的准确性和测试效率,降低了测试成本。有效地解决上下游模块不稳定、性能瓶颈等环境问题,极大地避免了由于测试环境噪声导致的差异性测试结果不准确的问题。通过减少测试环境资源使用、搭建和维护,搜索引擎模块的测试方法极大地节省了机器资源,降低测试成本,提高了测试效率。此外,这种基于数据包录制回放的模块级差异性测试方法,通用性很高,可以使用在搜索端的其它模块,并应用于其它产品线。
下面参考图6至图8述根据本发明实施例的搜索引擎模块的测试系统。
如图6所示,本发明实施例的搜索引擎模块的测试系统包括在线录制装置100和测试回放装置200。在线录制装置100用于录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包和在线下游搜索引擎模块向所述在线搜索引擎模块返回的结果数据包。测试回放装置200用于建立请求数据包和结果数据包之间的关联关系,并依次将请求数据包和对应的结果数据包注入到第一被测搜索引擎模块中以获得第一被测搜索引擎模块产生的第一测试结果,以及依次将请求数据包和对应的所述结果数据包注入到第二被测搜索引擎模块中以获得第二被测搜索引擎模块产生的第二测试结果,并根据第一测试结果和所述第二测试结果对第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。在本发明的实施例中,对第一被测搜索引擎模块和第二被测搜索引擎模块的差异性测试所依赖的数据为从在线搜索引擎模块获取的真实数据,从而提高测试的精确性。并且,由于录制在线上进行,不占用测试时间,从而可以极大地提高测试效率。
其中,具体地,在线录制装置100包括第一录制桩110和第二录制桩120。在本发明的一个实施例中,第一录制桩110和第二录制桩120作为连接模块之间的通信链路,可以由C++实现。可以理解的是,上述C++实现录制桩仅出于示例的目的,本发明实施例并不限于此,本领域技术人员可采用任何语言实现,这些均应包含在本发明的保护范围之内。
优选地,上述请求数据包和结果数据包可以采用统一格式存储。例如,数据包格式可以如表1所示。可以理解的是,上述数据包格式仅出于示例的目的,本发明实施例并不限于此。
表1
其中,
VALID_NUM:为固定内容,标识数据包是否有效。
ID:数据包的唯一标示。其中,在本发明的实施例中,上述ID可以是查询ID,这样如果请求数据包和结果数据包均采用相同的查询ID作为ID,则就可建立请求数据包和结果数据包之间的关联关系。
LEN:二进制通信数据包的长度。
PACKAGE_DATA:模块间通信的完整的二进制数据包。
如图7所示,第一录制桩110连接在在线上游搜索引擎模块A和在线搜索引擎模块B之间,用于录制在线上游搜索引擎模块A向在线搜索引擎模块B发送的请求数据包,并将请求数据包转发至在线搜索引擎模块B。第二录制桩120连接在在线搜索引擎模块B和在线下游搜索引擎模块C之间,用于录制在线下游搜索引擎模块C向在线搜索引擎模块B返回的结果数据包,并将结果数据包转发至在线搜索引擎模块B。其中,在本发明的一个实施例中,在线下游搜索引擎模块C为多个,以构成在线下游搜索引擎集群。当然在本发明的其他实施例中,在线上游搜索引擎模块也可为多个,构成在线上游搜索引擎集群。可以理解的是,本发明的一个实施例中的第二录制桩120数量为1,在线下游搜索引擎模块C为多个仅出于示例目的,本发明不限于此,第二录制桩120与在线下游搜索引擎模块C的关系可以为一对一,一对多,多对多等。
如图6所示,第一录制桩110包括第一接收单元111、第一转发单元112和第一存储单元113。其中,第一接收单元111用于接收在线上游搜索引擎模块A向在线搜索引擎模块B发送的请求数据包。第一转发单元112用于获取请求数据包中的查询ID,并将请求数据包转发至在线搜索引擎模块B。第一存储单元113用于根据查询ID存储请求数据包。第二录制桩120包括第二接收单元121、第二转发单元122和第二存储单元123。第二接收单元121用于接收在线下游搜索引擎模块C向在线搜索引擎模块B返回的结果数据包。第二转发单元122用于获取结果数据包之中的查询ID,并将结果数据包转发至在线搜索引擎模块B。第二存储单元123用于根据查询ID存储结果数据包。
其中,在本发明的实施例中,在线录制装置100还用于将第一存储单元113和第二存储单元123存储的请求数据包和结果数据包进行汇总处理,当然本领域技术人员应当理解的是,该汇总处理为可选步骤。
如图8所示,测试回放装置200用于建立请求数据包和结果数据包之间的关联关系,并依次将请求数据包和对应的结果数据包注入到第一被测搜索引擎模块D中以获得第一被测搜索引擎模块D产生的第一测试结果,以及依次将请求数据包和对应的结果数据包注入到第二被测搜索引擎模块E中以获得第二被测搜索引擎模块E产生的第二测试结果,根据第一测试结果和第二测试结果对第一被测搜索引擎模块D和第二被测搜索引擎模块E进行差异性分析。
具体地,如图6所示,测试回放装置200包括数据包接收模块210、请求发送模块220、查询模块230、结果数据发送模块240和分析模块250。其中,数据包接收模块210用于接收在线录制装置发送的请求数据包和结果数据包,并建立请求数据包和结果数据包之间的关联关系。请求发送模块220用于向第一被测搜索引擎模块D和第二被测搜索引擎模块E发送请求数据包
查询模块230用于根据查询ID确定与请求数据包对应的结果数据包。结果数据发送模块240用于将结果数据包分别发送到第一被测搜索引擎模块D和第二被测搜索引擎模块E以获得第一测试结果和第二测试结果。
分析模块250用于根据第一测试结果和第二测试结果对第一被测搜索引擎模块D和第二被测搜索引擎模块E进行差异性分析。在本发明的实施例中,由于对第一被测搜索引擎模块D和第二被测搜索引擎模块E输入的请求数据包和结果数据包都是相同的,且是稳定一致的,因此如果存在非预期的差异性(diff),则即可判断程序出现问题。此外,由于请求数据包和结果数据包完全有测试机仿真获得,因此不存在性能瓶颈的问题。并且,请求数据包和结果数据包都存储在测试机之中,可以在任何情况下完整地进行稳定复现。
优选地,结果数据发送模块240还用于在查询模块未确定与请求对应的结果数据包时,返回预设的结果数据包,从而能够极大地避免真实环境中网络不稳定、关联模块不稳定造成的影响,避免出现由于未找到结构数据包而出现的测试停顿。
根据本发明实施例的搜索引擎模块的测试系统提高了搜索引擎模块进行差异性测试的准确性和测试效率,降低了测试成本。有效地解决上下游模块不稳定、性能瓶颈等环境问题,极大地避免了由于测试环境噪声导致的差异性测试结果不准确的问题。通过减少测试环境资源使用、搭建和维护,搜索引擎模块的测试系统极大地节省了机器资源,降低测试成本,提高了测试效率。此外,这种基于数据包录制回放的模块级差异性测试系统,通用性很高,可以使用在搜索端的其它模块,并应用于其它产品线。
下面参考图6、图7描述根据本发明实施例的在线录制装置100。在线录制装置100包括第一录制桩110和第二录制桩120,用于录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包和在线下游搜索引擎模块向在线搜索引擎模块返回的结果数据包。在本发明的一个实施例中,第一录制桩110和第二录制桩120作为连接模块之间的通信链路,可以由C++实现。可以理解的是,上述C++实现录制桩仅出于示例的目的,本发明实施例并不限于此。上述请求数据包和结果数据包可以采用统一格式存储。
如图7所示,第一录制桩110连接在在线上游搜索引擎模块A和在线搜索引擎模块B之间,用于录制在线上游搜索引擎模块A向在线搜索引擎模块B发送的请求数据包,并将请求数据包转发至在线搜索引擎模块B。第二录制桩120连接在在线搜索引擎模块B和在线下游搜索引擎模块C之间,用于录制在线下游搜索引擎模块C向在线搜索引擎模块B返回的结果数据包,并将结果数据包转发至在线搜索引擎模块B。其中,在本发明的一个实施例中,在线下游搜索引擎模块C为多个,以构成在线下游搜索引擎集群。当然在本发明的其他实施例中,在线上游搜索引擎模块也可为多个,构成在线上游搜索引擎集群。可以理解的是,本发明的一个实施例中的第二录制桩120数量为1,在线下游搜索引擎模块C为多个仅出于示例目的,本发明不限于此,第二录制桩120与在线下游搜索引擎模块C的关系可以为一对一,一对多,多对多等。
如图6所示,第一录制桩110包括第一接收单元111、第一转发单元112和第一存储单元113。其中,第一接收单元111用于接收在线上游搜索引擎模块A向在线搜索引擎模块B发送的请求数据包。第一转发单元112用于获取请求数据包中的查询ID,并将请求数据包转发至在线搜索引擎模块B。第一存储单元113用于根据查询ID存储请求数据包。第二录制桩120包括第二接收单元121、第二转发单元122和第二存储单元123。第二接收单元121用于接收在线下游搜索引擎模块C向在线搜索引擎模块B返回的结果数据包。第二转发单元122用于获取结果数据包之中的查询ID,并将结果数据包转发至在线搜索引擎模块B。第二存储单元123用于根据查询ID存储结果数据包。
其中,在本发明的实施例中,在线录制装置100还用于将第一存储单元113和第二存储单元123存储的请求数据包和结果数据包进行汇总处理,当然本领域技术人员应当理解的是,该汇总处理为可选步骤。
根据本发明实施例的在线录制装置将录制的请求数据包与结果数据包一一对应,在数据包回放时根据请求返回真实的结果数据包,达到复现真实环境下的请求处理的目的,具有稳定且准确的特点。
下面参考图6、图8描述根据本发明实施例的测试回放装置200,测试回放装置200用于建立请求数据包和结果数据包之间的关联关系,并依次将请求数据包和对应的结果数据包注入到第一被测搜索引擎模块D中以获得第一被测搜索引擎模块D产生的第一测试结果,以及依次将请求数据包和对应的结果数据包注入到第二被测搜索引擎模块E中以获得第二被测搜索引擎模块E产生的第二测试结果,根据第一测试结果和第二测试结果对第一被测搜索引擎模块D和第二被测搜索引擎模块E进行差异性分析。
具体地,如图6所示,测试回放装置200包括数据包接收模块210、请求发送模块220、查询模块230、结果数据发送模块240和分析模块250。其中,数据包接收模块210用于接收在线录制装置发送的请求数据包和结果数据包,并建立请求数据包和结果数据包之间的关联关系。请求发送模块220用于向第一被测搜索引擎模块D和第二被测搜索引擎模块E发送请求数据包。
查询模块230用于根据查询ID确定与请求数据包对应的结果数据包。
结果数据发送模块240用于将结果数据包分别发送到第一被测搜索引擎模块D和第二被测搜索引擎模块E以获得第一测试结果和第二测试结果。
分析模块250用于根据第一测试结果和第二测试结果对第一被测搜索引擎模块D和第二被测搜索引擎模块E进行差异性分析。在本发明的实施例中,由于对第一被测搜索引擎模块D和第二被测搜索引擎模块E输入的请求数据包和结果数据包都是相同的,且是稳定一致的,因此如果存在非预期的差异性(diff),则即可判断程序出现问题。此外,由于请求数据包和结果数据包完全有测试机仿真获得,因此不存在性能瓶颈的问题。并且,请求数据包和结果数据包都存储在测试机之中,可以在任何情况下完整地进行稳定复现。
优选地,结果数据发送模块240还用于在查询模块未确定与请求对应的结果数据包时,返回预设的结果数据包,从而能够极大地避免真实环境中网络不稳定、关联模块不稳定造成的影响,避免出现由于未找到结构数据包而出现的测试停顿。
根据本发明实施例的测试回放装置为模拟后端,因此不存在性能瓶颈。并且测试回放装置能够有效解决上下游模块不稳定的问题,还能减少测试环境资源使用,降低搭建和维护的成本。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
Claims (19)
1.一种搜索引擎模块的测试方法,其特征在于,包括:
录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包,同时录制在线下游搜索引擎模块向所述在线搜索引擎模块返回的结果数据包;
建立所述请求数据包和所述结果数据包之间的关联关系;
依次将所述请求数据包和对应的所述结果数据包注入到所述第一被测搜索引擎模块中以获得所述第一被测搜索引擎模块产生的第一测试结果;
依次将所述请求数据包和对应的所述结果数据包注入到所述第二被测搜索引擎模块中以获得所述第二被测搜索引擎模块产生的第二测试结果;以及
根据所述第一测试结果和所述第二测试结果对所述第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。
2.如权利要求1所述的搜索引擎模块的测试方法,其特征在于,所述录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包进一步包括:
接收所述在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包;
获取所述请求数据包之中的查询ID,并将所述请求数据包转发至所述在线搜索引擎模块;以及
根据所述查询ID存储所述请求数据包。
3.如权利要求1或2所述的搜索引擎模块的测试方法,其特征在于,所述录制在线下游搜索引擎模块向在线搜索引擎模块返回的结果数据包进一步包括:
接收所述在线下游搜索引擎模块向在线搜索引擎模块返回的结果数据包;
获取所述结果数据包之中的查询ID,并将所述结果数据包转发至所述在线搜索引擎模块;以及
根据所述查询ID存储所述结果数据包。
4.如权利要求3所述的搜索引擎模块的测试方法,其特征在于,依据所述查询ID建立所述请求数据包和所述结果数据包之间的关联关系。
5.如权利要求1-4任一项所述的搜索引擎模块的测试方法,其特征在于,所述在线下游搜索引擎模块为多个,以构成在线下游搜索引擎集群。
6.如权利要求4所述的搜索引擎模块的测试方法,其特征在于,所述依次将请求数据包和对应的所述结果数据包注入到所述第一被测搜索引擎模块进一步包括:
将所述请求数据包注入到所述第一被测搜索引擎模块;
根据所述查询ID确定与所述请求数据包对应的结果数据包;以及
将所述结果数据包注入到所述第一被测搜索引擎模块。
7.如权利要求4所述的搜索引擎模块的测试方法,其特征在于,所述依次将请求数据包和对应的所述结果数据包注入到所述第二被测搜索引擎模块进一步包括:
将所述请求数据包注入到所述第二被测搜索引擎模块;
根据所述查询ID确定与所述请求数据包对应的结果数据包;以及
将所述结果数据包注入到所述第二被测搜索引擎模块。
8.如权利要求6或7所述的搜索引擎模块的测试方法,其特征在于,还包括:
如果根据所述查询ID未确定与所述请求数据包对应的结果数据包,则返回预设的结果数据包。
9.一种搜索引擎模块的测试系统,其特征在于,包括:
在线录制装置,用于录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包和在线下游搜索引擎模块向所述在线搜索引擎模块返回的结果数据包;以及
测试回放装置,用于建立所述请求数据包和所述结果数据包之间的关联关系,并依次将所述请求数据包和对应的所述结果数据包注入到所述第一被测搜索引擎模块中以获得所述第一被测搜索引擎模块产生的第一测试结果,以及依次将所述请求数据包和对应的所述结果数据包注入到所述第二被测搜索引擎模块中以获得所述第二被测搜索引擎模块产生的第二测试结果,根据所述第一测试结果和所述第二测试结果对所述第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。
10.如权利要求9所述的搜索引擎模块的测试系统,其特征在于,所述在线录制装置包括:
第一录制桩,所述第一录制桩连接在在线上游搜索引擎模块和在线搜索引擎模块之间,用于录制所述在线上游搜索引擎模块向所述在线搜索引擎模块发送的请求数据包,并将所述请求数据包转发至所述在线搜索引擎模块;
第二录制桩,所述第二录制装置连接在所述在线搜索引擎模块和在线下游搜索引擎模块之间,用于录制所述在线下游搜索引擎模块向所述在线搜索引擎模块返回的结果数据包,并将所述结果数据包转发至所述在线搜索引擎模块。
11.如权利要求10所述的搜索引擎模块的测试系统,其特征在于,所述第一录制桩包括:
第一接收单元,用于接收所述在线上游搜索引擎模块向所述在线搜索引擎模块发送的请求数据包;
第一转发单元,用于获取所述请求数据包中的查询ID,并将所述请求数据包转发至所述在线搜索引擎模块;
第一存储单元,用于根据所述查询ID存储所述请求数据包。
12.如权利要求10所述的搜索引擎模块的测试系统,其特征在于,所述第二录制桩包括:
第二接收单元,用于接收所述在线下游搜索引擎模块向所述在线搜索引擎模块返回的结果数据包;
第二转发单元,用于获取所述结果数据包之中的查询ID,并将所述结果数据包转发至所述在线搜索引擎模块;以及
第二存储单元,用于根据所述查询ID存储所述结果数据包。
13.如权利要求9-12中任一项所述的搜索引擎模块的测试系统,其特征在于,所述测试回放装置包括:
数据包接收模块,用于接收所述在线录制装置发送的请求数据包和结果数据包,并建立所述请求数据包和所述结果数据包之间的关联关系;
请求发送模块,用于向所述第一被测搜索引擎模块和所述第二被测搜索引擎模块发送所述请求数据包;
查询模块,用于根据所述查询ID确定与所述请求数据包对应的结果数据包;
结果数据发送模块,用于将所述结果数据包分别发送到所述第一被测搜索引擎模块和所述第二被测搜索引擎模块以获得所述第一测试结果和所述第二测试结果;
分析模块,用于根据所述第一测试结果和所述第二测试结果对所述第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。
14.如权利要求13所述的搜索引擎模块的测试系统,其特征在于,所述结果数据发送模块还用于在所述查询模块未确定与所述请求对应的结果数据包时,返回预设的结果数据包。
15.一种在线录制装置,其特征在于,包括:
第一录制桩,所述第一录制桩连接在在线上游搜索引擎模块和在线搜索引擎模块之间,用于录制所述在线上游搜索引擎模块向所述在线搜索引擎模块发送的请求数据包;以及
第二录制桩,所述第二录制桩连接在所述在线搜索引擎模块和在线下游搜索引擎模块之间,用于录制所述在线下游搜索引擎模块向所述在线搜索引擎模块返回的结果数据包。
16.如权利要求15所述的在线录制装置,其特征在于,所述第一录制桩包括:
第一接收单元,用于接收所述在线上游搜索引擎模块向所述在线搜索引擎模块发送的请求数据包;
第一转发单元,用于获取所述请求数据包中的查询ID,并将所述请求数据包转发至所述在线搜索引擎模块;
第一存储单元,用于根据所述查询ID存储所述请求数据包。
17.如权利要求15所述的在线录制装置,其特征在于,所述第二录制桩包括:
第二接收单元,用于接收所述在线下游搜索引擎模块向所述在线搜索引擎模块返回的结果数据包;
第二转发单元,用于获取所述结果数据包之中的查询ID,并将所述结果数据包转发至所述在线搜索引擎模块;以及
第二存储单元,用于根据所述查询ID存储所述结果数据包。
18.一种测试回放装置,其特征在于,包括:
数据包接收模块,用于接收所述在线录制装置发送的请求数据包和结果数据包,并建立所述请求数据包和所述结果数据包之间的关联关系;
请求发送模块,用于向所述第一被测搜索引擎模块和所述第二被测搜索引擎模块发送所述请求数据包;
查询模块,用于根据所述查询ID确定与所述请求数据包对应的结果数据包;
结果数据发送模块,用于将所述结果数据包分别发送到所述第一被测搜索引擎模块和所述第二被测搜索引擎模块以获得所述第一测试结果和所述第二测试结果;以及
分析模块,用于根据所述第一测试结果和所述第二测试结果对所述第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。
19.如权利要求18所述的测试回放装置,其特征在于,所述结果数据发送模块还用于在所述查询模块未确定与所述请求对应的结果数据包时,返回预设的结果数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210041734.5A CN102622296B (zh) | 2012-02-21 | 2012-02-21 | 搜索引擎模块的测试方法、系统及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210041734.5A CN102622296B (zh) | 2012-02-21 | 2012-02-21 | 搜索引擎模块的测试方法、系统及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102622296A true CN102622296A (zh) | 2012-08-01 |
CN102622296B CN102622296B (zh) | 2015-11-25 |
Family
ID=46562223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210041734.5A Active CN102622296B (zh) | 2012-02-21 | 2012-02-21 | 搜索引擎模块的测试方法、系统及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102622296B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685354A (zh) * | 2012-09-05 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种基于rmi协议的测试方法和装置 |
CN103780449A (zh) * | 2012-10-23 | 2014-05-07 | 百度在线网络技术(北京)有限公司 | 一种基于cache存储的流量复用方法和装置 |
CN103902449A (zh) * | 2012-12-28 | 2014-07-02 | 百度在线网络技术(北京)有限公司 | 一种用于生成搜索引擎相关性排序测试用例的方法与设备 |
CN106776333A (zh) * | 2016-12-27 | 2017-05-31 | 努比亚技术有限公司 | 一种搜索引擎的测试方法及移动终端 |
CN107404418A (zh) * | 2017-07-26 | 2017-11-28 | 百度在线网络技术(北京)有限公司 | 互联网产品测试方法、装置、设备及存储介质 |
WO2018205391A1 (zh) * | 2017-05-10 | 2018-11-15 | 平安科技(深圳)有限公司 | 信息检索准确性评估方法、系统、装置及计算机可读存储介质 |
CN109960647A (zh) * | 2017-12-26 | 2019-07-02 | 腾讯科技(深圳)有限公司 | 一种软件测试方法及装置、计算设备和存储介质 |
CN110166511A (zh) * | 2018-02-13 | 2019-08-23 | 北京嘀嘀无限科技发展有限公司 | 数据处理方法及系统 |
CN111045942A (zh) * | 2019-12-12 | 2020-04-21 | 同盾控股有限公司 | 应用测试方法、系统、存储介质及电子设备 |
CN111382058A (zh) * | 2018-12-29 | 2020-07-07 | 北京字节跳动网络技术有限公司 | 一种服务的测试方法、装置,服务器及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060212265A1 (en) * | 2005-03-17 | 2006-09-21 | International Business Machines Corporation | Method and system for assessing quality of search engines |
US20060224579A1 (en) * | 2005-03-31 | 2006-10-05 | Microsoft Corporation | Data mining techniques for improving search engine relevance |
CN202033748U (zh) * | 2011-04-22 | 2011-11-09 | 阿里巴巴集团控股有限公司 | 搜索引擎性能测试系统 |
-
2012
- 2012-02-21 CN CN201210041734.5A patent/CN102622296B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060212265A1 (en) * | 2005-03-17 | 2006-09-21 | International Business Machines Corporation | Method and system for assessing quality of search engines |
US20060224579A1 (en) * | 2005-03-31 | 2006-10-05 | Microsoft Corporation | Data mining techniques for improving search engine relevance |
CN202033748U (zh) * | 2011-04-22 | 2011-11-09 | 阿里巴巴集团控股有限公司 | 搜索引擎性能测试系统 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685354A (zh) * | 2012-09-05 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种基于rmi协议的测试方法和装置 |
CN103780449B (zh) * | 2012-10-23 | 2018-05-01 | 百度在线网络技术(北京)有限公司 | 一种基于cache存储的流量复用方法和装置 |
CN103780449A (zh) * | 2012-10-23 | 2014-05-07 | 百度在线网络技术(北京)有限公司 | 一种基于cache存储的流量复用方法和装置 |
CN103902449A (zh) * | 2012-12-28 | 2014-07-02 | 百度在线网络技术(北京)有限公司 | 一种用于生成搜索引擎相关性排序测试用例的方法与设备 |
CN103902449B (zh) * | 2012-12-28 | 2018-05-25 | 百度在线网络技术(北京)有限公司 | 一种用于生成搜索引擎相关性排序测试用例的方法与设备 |
CN106776333A (zh) * | 2016-12-27 | 2017-05-31 | 努比亚技术有限公司 | 一种搜索引擎的测试方法及移动终端 |
WO2018205391A1 (zh) * | 2017-05-10 | 2018-11-15 | 平安科技(深圳)有限公司 | 信息检索准确性评估方法、系统、装置及计算机可读存储介质 |
CN107404418A (zh) * | 2017-07-26 | 2017-11-28 | 百度在线网络技术(北京)有限公司 | 互联网产品测试方法、装置、设备及存储介质 |
CN107404418B (zh) * | 2017-07-26 | 2020-12-11 | 百度在线网络技术(北京)有限公司 | 互联网产品测试方法、装置、设备及存储介质 |
CN109960647A (zh) * | 2017-12-26 | 2019-07-02 | 腾讯科技(深圳)有限公司 | 一种软件测试方法及装置、计算设备和存储介质 |
CN110166511A (zh) * | 2018-02-13 | 2019-08-23 | 北京嘀嘀无限科技发展有限公司 | 数据处理方法及系统 |
CN111382058A (zh) * | 2018-12-29 | 2020-07-07 | 北京字节跳动网络技术有限公司 | 一种服务的测试方法、装置,服务器及存储介质 |
CN111382058B (zh) * | 2018-12-29 | 2024-02-02 | 北京字节跳动网络技术有限公司 | 一种服务的测试方法、装置,服务器及存储介质 |
CN111045942A (zh) * | 2019-12-12 | 2020-04-21 | 同盾控股有限公司 | 应用测试方法、系统、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102622296B (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102622296A (zh) | 搜索引擎模块的测试方法、系统及其装置 | |
CN103853585B (zh) | 一种通过云端集中管理版本的实现方法 | |
CN107515878A (zh) | 一种数据索引的管理方法及装置 | |
CN110019267A (zh) | 一种元数据更新方法、装置、系统、电子设备及存储介质 | |
CN103178998B (zh) | 一种测控数据传输方法和装置 | |
CN103368992A (zh) | 一种信息推送方法及装置 | |
CN106161074A (zh) | 一种云终端日志处理方法、装置及系统 | |
CN106557531B (zh) | 复杂结构对象转换成平面化数据的方法、设备和存储介质 | |
CN104794190A (zh) | 一种大数据有效存储的方法和装置 | |
US20230184627A1 (en) | System and method for distributed networked test of electric vehicles, storage medium and terminal device | |
CN104750855A (zh) | 一种大数据存储优化方法和装置 | |
US20160253219A1 (en) | Data stream processing based on a boundary parameter | |
Leighton et al. | A best of both worlds approach to complex, efficient, time series data delivery | |
CN102882960B (zh) | 一种资源文件的发送方法及装置 | |
CN104504010A (zh) | 一种多对多的数据采集系统及其采集方法 | |
CN112631884A (zh) | 基于数据同步的压测方法、装置、计算机设备及存储介质 | |
CN102508916B (zh) | 一种海量数据的文件指纹分析方法 | |
CN103034650A (zh) | 一种数据处理系统和方法 | |
CN108629016B (zh) | 支持实时流计算面向大数据数据库控制系统、计算机程序 | |
CN106789926A (zh) | 一种多进程自动化sql注入批量扫描工具及方法 | |
CN112650739A (zh) | 煤矿数据中台的数据存储处理方法和装置 | |
CN110324384A (zh) | 数据推送的方法和装置 | |
CN105094810A (zh) | 基于通用网关接口插件的数据处理方法和装置 | |
CN104063456A (zh) | 基于向量查询的自媒体传播图谱分析方法和装置 | |
CN106055691A (zh) | 一种分布式数据存储处理方法及存储处理系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |