搜索引擎模块的测试方法、系统及其装置制造方法及图纸

技术编号:7630983 阅读:202 留言:0更新日期:2012-08-03 18:21
本发明专利技术提出一种搜索引擎模块的测试方法,包括:录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包,同时录制在线下游搜索引擎模块向在线搜索引擎模块返回的结果数据包;建立请求数据包和结果数据包之间的关联关系;依次将请求数据包和对应的结果数据包注入到第一被测搜索引擎模块中以获得第一测试结果;依次将请求数据包和对应的结果数据包注入到第二被测搜索引擎模块中以获得第二测试结果;根据第一测试结果和第二测试结果对第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。本发明专利技术还公开了一种搜索引擎模块的测试系统、一种在线录制装置以及一种测试回放装置。

【技术实现步骤摘要】

本专利技术涉及软件测试
,特别涉及一种搜索引擎模块的测试方法、系统及其装置
技术介绍
差异性(DIFF)测试是目前软件测试的一种重要测试手段。特别是对搜索引擎模块来说,随着搜索业务的不断扩展,需要对搜索引擎模块不断地进行升级,因此搜索引擎模块的差异性测试越来越重要。现有对搜索引擎搜索模块进行差异性测试,都是通过搭建整个搜索环境或者被测搜索引擎模块的上下游真实模块来实现的。如图I示,首先需要搭建所有相互关联的搜素引擎模块,即建立上下游搜索引擎模块之间的关系。之后将请求分别发送给新版本与对比版本的搜索引擎模块,两个版本的搜索引擎模块各自与后端的搜索引擎模块进行交互,并向上游的搜索引擎模块返回结果。传统的差异性测试就是比较两个版本的搜索引擎模块分别返回的结果。为了提高差异性测试的模块分支覆盖率,通常需要提供大量的后端结果,因此导致需要大量的后端的搜索引擎模块。由于其数量比较多,因此有些模块需要资源单台机器无法满足,包括CPU、内存、存储空间等资源无法满足,从而导致测试时机器数量需求比较大,不仅造成测试复杂度提高,而且耗费大量的测试时间和测试成本。具体地,现有搜索引擎测试方法有如下缺点(I)很容易由于测试环境的“噪声”,导致测试结果不准确。其中,以上所述的“噪声”包括网络环境不稳定、上下游模块不稳定等因素。尤其是上下游搜索引擎模块很多时,任何一个搜索引擎模块的不稳定或者网络异常,都有可能会导致测试结果的不准确。而且,由于无法再现,从而导致追查成本很高。(2)容易受到上下游搜索引擎模块性能瓶颈的制约。例如,被测搜索引擎模块本身能承受的压力能达到lOOOq/s以上,但如果后端搜索模块能承受的压力大小只有300q/s,这就会导致该被测搜索引擎模块无法进一步提高测试速度,从而影响整体的测试进度。(3)机器占用多,测试环境搭建和维护成本高。测试过程中搭建上下游搜索引擎模块,不仅需要较长的时间,而且需要占用大量的测试机。在机器资源有限的情况下,要在测试过程中维护一套专属的测试环境,导致成本很高。(4)差异性测试结果复现困难,成本高。由于搜索引擎中后端库数据会定时更新,测试环境无法长期保存,造成前一次测试发现的差异性测试结果在后一次测试中不能复现,增大了追查的成本。
技术实现思路
本专利技术的目的旨在至少解决上述技术缺陷之一。为此,本专利技术实施例的目的在于提出一种搜索引擎模块的测试方法,该搜索引擎模块的测试方法能够有效解决上下游模块不稳定的问题,还能减少测试环境资源使用,降低搭建和维护的成本。本专利技术实施例的第二个目的在于提供一种搜索引擎模块的测试系统。 本专利技术实施例的第三个目的在于提供一种在线录制装置。本专利技术实施例的第四个目的在于提供一种测试回放装置。为达到上述目的,本专利技术第一方面的实施例公开了一种搜索引擎模块的测试方法,包括录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包,同时录制在线下游搜索引擎模块向所述在线搜索引擎模块返回的结果数据包;建立所述请求数据包和所述结果数据包之间的关联关系;依次将所述请求数据包和对应的所述结果数据包注入到所述第一被测搜索引擎模块中以获得所述第一被测搜索引擎模块产生的第一测试结果;依次将所述请求数据包和对应的所述结果数据包注入到所述第二被测搜索引擎模块中以获得所述第二被测搜索引擎模块产生的第二测试结果;根据所述第一测试结果和所述第二测试结果对所述第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。本专利技术实施例通过从在线搜索引擎模块获取真实的在线数据,并根据该真实的在线数据对第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性测试,可以避免“噪声”的影响,而且无需搭建真实的上下游搜索引擎模块,只要通过一台测试机进行仿真即可,因此提高了搜索引擎模块进行差异性测试的准确性和测试效率,降低了测试成本。此夕卜,本专利技术实施例也能够有效地解决上下游模块不稳定、性能瓶颈等环境问题,极大地避免了由于测试环境噪声导致的差异性测试结果不准确的问题。本专利技术实施例通过减少测试环境资源使用、搭建和维护,极大地节省了机器资源,降低测试成本,提高了测试效率。此外,这种基于数据包录制回放的模块级差异性测试方法,通用性很高,可以使用在搜索端的其它模块,并应用于其它产品线。在本专利技术的一个实施例中,所述录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包进一步包括接收所述在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包;获取所述请求数据包之中的查询ID,并将所述请求数据包转发至所述在线搜索引擎模块;以及根据所述查询ID存储所述请求数据包。在本专利技术的一个实施例中,所述录制在线下游搜索引擎模块向在线搜索引擎模块返回的结果数据包进一步包括接收所述在线下游搜索引擎模块向在线搜索引擎模块返回的结果数据包;获取所述结果数据包之中的查询ID,并将所述结果数据包转发至所述在线搜索引擎模块;以及根据所述查询ID存储所述结果数据包。在本专利技术的一个实施例中,依据所述查询ID建立所述请求数据包和所述结果数据包之间的关联关系。通过上述关联关系的建立使得回放的数据稳定,利于复现真实环境下的请求处理。并且,在向第一被测搜索引擎模块和第二被测搜索引擎模块注入请求数据包之后,即可根据该关联关系查找到对应的结果数据包并注入到第一被测搜索引擎模块和第二被测搜索引擎模块中,从而加快第一被测搜索引擎模块和第二被测搜索引擎模块的处理速度,使得测试的整体速度有极大地提升。在本专利技术的一个实施例中,所述在线下游搜索引擎模块为多个,以构成在线下游搜索引擎集群。在本专利技术的一个实施例中,还包括如果根据所述查询ID未确定与所述请求数据包对应的结果数据包,则返回预设的结果数据包。通过这种方式,能够极大地避免真实环境中网络不稳定、关联模块不稳定造成的影响,将问题集中于关注被测搜索模块本身。本专利技术第二方面的实施例公开了一种搜索引擎模块的测试系统,包括在线录制装置,用于录制在线上游搜索引擎模块向在线搜索引擎模块发送的请求数据包和在线下游搜索引擎模块向所述在线搜索引擎模块返回的结果数据包;测试回放装置,用于建立所述请求数据包和所述结果数据包之间的关联关系,并依次将所述请求数据包和对应的所述结果数据包注入到所述第一被测搜索引擎模块中以获得所述第一被测搜索引擎模块产生的第一测试结果,以及依次将所述请求数据包和对应的所述结果数据包注入到所述第二被测搜索引擎模块中以获得所述 第二被测搜索引擎模块产生的第二测试结果,根据所述第一测试结果和所述第二测试结果对所述第一被测搜索引擎模块和第二被测搜索引擎模块进行差异性分析。本专利技术提高了搜索引擎模块进行差异性测试的准确性和测试效率,降低了测试成本。有效地解决上下游模块不稳定、性能瓶颈等环境问题,极大地避免了由于测试环境噪声导致的差异性测试结果不准确的问题。通过减少测试环境资源使用、搭建和维护,搜索引擎模块的测试系统极大地节省了机器资源,降低测试成本,提高了测试效率。此外,这种基于数据包录制回放的模块级差异性测试系统,通用性很高,可以使用在搜索端的其它模块,并应用于其它产品线。本专利技术第三方面的实施例公开了一种在线录制装置,包括第一录制桩,所述第一录制桩连接在在线上游搜索引擎模块和在线搜索引擎模块之间,用于录制所述在线上游搜索引擎模本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:李卓金敬亭肖羽思赖峥嵘
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术