一种网络软件在线测试方法和系统的制作方法

文档序号:7981714阅读:91来源:国知局
一种网络软件在线测试方法和系统的制作方法
【专利摘要】本发明公开了一种网络软件在线测试方法、装置和系统,所述方法包括:捕获线上服务器接收到的数据包并镜像转发;接收转发的数据包并转化为用户访问请求;根据所述用户访问请求对部署在线上的测试服务器中的待测试程序进行在线测试。本发明解决了线上环境难以直接对测试程序进行测试的问题,通过在线上环境中引入测试服务器,将待测试程序部署其上,并将线上程序的用户请求数据包进行镜像转发,发送到测试服务器中即可完成模拟线上服务器对待测试程序进行测试。
【专利说明】一种网络软件在线测试方法和系统
【技术领域】
[0001]本发明涉及网络软件测试领域,尤其涉及一种网络软件在线测试方法和系统。
【背景技术】
[0002]在当前的网络软件测试流程中,往往进行的是线下测试,即在本地搭建一个模拟环境,部署相应的待测试程序并进行测试,得出测试报告后再上线至线上的服务器上运行。而如果上线后的服务在运行中出现了 bug,往往会在线下模拟与线上一致的测试环境以对出现的bug进行重现,在bug修复之后再升级到线上。由于软件对于环境的依赖越来越复杂,单纯的线下测试已经不能满足网络软件测试的要求,如果出现了紧急的重要性非常高的bug,例如服务器由于某种特殊请求总是宕机,就需要采用线上测试流程的方案。
[0003]而且,在提供网络服务的复杂的线上环境中,有些bug的重现是需要线上资源的配合才可能重现的,例如大规模的数据依赖、复杂的网络环境、大量的请求访问以及一些特殊服务的依赖等。由此导致线下的模拟测试可能就难以进行。
[0004]但是,由于线上直接测试和修改可能导致正在使用此服务的用户得到不好的用户体验,影响用户使用。因此,线上的测试往往是不允许的。
[0005]由此,亟需一种能够在不影响用户使用情况下能够进行程序网络软件在线测试的方法和系统。

【发明内容】

[0006]本发明所解决的技术问题在于提供一种能够在不影响用户使用情况下能够进行网络软件在线测试的方法和系统。
[0007]本发明公开了一种网络软件在线测试方法,所述方法包括:
[0008]捕获线上服务器接收到的数据包并镜像转发;
[0009]接收转发的数据包并转化为用户访问请求;
[0010]根据所述用户访问请求对部署在线上的测试服务器中的待测试程序进行在线测试。
[0011]其中,所述测试服务器为模拟所述线上服务器的服务器。
[0012]其中,所述捕获线上服务器接收到的数据包并镜像转发,包括:
[0013]捕获线上服务器接收到的数据包并将所述数据包镜像转发到所述测试服务器。
[0014]其中,所述捕获线上服务器接收到的数据包并镜像转发,包括:
[0015]捕获线上服务器接收到的数据包并将所述数据包镜像转发到数据转发服务器或者数据转发服务器集群。
[0016]其中,所述接收转发的数据包并转化为用户访问请求包括:
[0017]所述数据转发服务器或者服务器集群将数据包转化得到的用户访问请求进行复制从而得到多份用户访问请求,将所述多份用户访问请求转发到所述测试服务器。
[0018]其中,所述在线测试包括预升级、性能测试和程序调试中的一种或多种。[0019]本发明还公开了一种网络软件在线测试系统,所述系统包括:
[0020]捕获转发单元,用于捕获线上服务器接收到的数据包并镜像转发;
[0021]接收转换单元,用于接收转发的数据包并转化为用户访问请求;
[0022]测试单元,用于根据所述用户访问请求对部署在线上的测试服务器中的待测试程序进行在线测试。
[0023]本发明还公开了一种网络软件在线测试系统,包括线上服务器和测试服务器,所述测试服务器用于模拟所述线上服务器;
[0024]其中,所述线上服务器用于提供线上服务并将接收到的数据包捕获并镜像转发到测试服务器;
[0025]所述测试服务器用于接收转发的数据包并将其转换为用户访问请求,根据所述用户访问请求进行在线测试。
[0026]本发明还公开了一种网络软件在线测试系统,包括线上服务器、测试服务器和数据转发装置;
[0027]所述线上服务器用于提供线上服务并将接收到的数据包捕获并转发到数据转发装置;所述测试服务器用于模拟所述线上服务器;
[0028]所述数据转发装置用于接收来自线上服务器的转发数据包,将其转换为用户访问请求后复制为多份用户访问请求,将所述多份用户访问请求转发到所述测试服务器;
[0029]所述测试服务器用于根据来自所述数据转发装置的用户访问请求进行在线测试。
[0030]本发明通过在线上环境中引入一个模拟线上服务器的测试服务器,将待测试程序部署其上,并将线上程序的用户请求进行镜像转发,发送到待测试程序中以完成模拟线上环境的测试。
[0031]通过这种方式,在不影响客户使用的前提下进行具有类似线上环境的网络软件在线测试,且可以完全模拟真实用户的动作及请求;并且,由于待测试程序是部署在线上的测试服务器上,为测试人员提供了类似线上服务器的工作环境,并且可以获得足够的线上资源;最后,如果修改bug出现问题,不会影响到真实用户的使用,在经过完善的测试后再将程序升级至线上就能够保证程序版本的质量。
【专利附图】

【附图说明】
[0032]图1是本发明第一实施例的网络软件在线测试方法所基于的网络系统的系统框图;
[0033]图2是本发明第二实施例的网络软件在线测试方法的方法流程图;
[0034]图3是本发明第二实施例的网络软件在线测试方法所基于的网络系统的系统框图;
[0035]图4是本发明第二实施例的网络软件在线测试方法的流程图;
[0036]图5是本发明第三实施例的网络软件在线测试系统的框图。
【具体实施方式】
[0037]下面结合附图并通过【具体实施方式】来进一步说明本发明的技术方案。
[0038]图1是本发明第一实施例的网络软件在线测试方法所基于的网络系统的系统框图。如图1所示,所述系统包括线上服务器10和用于模拟线上服务器的测试服务器20,其中,上述线上服务器10用于承载线上服务程序11和包捕获转发程序12。所述线上服务程序11用于处理用户访问请求,上述包捕获转发程序12可以是一个较为常见的网络探针,其能够监听线上服务器内的用户的所有访问请求或者部分访问请求,如超文本传输协议HTTP访问请求数据包,并将该用户请求数据包通过分光或者镜像端口向测试服务器20中镜像转发从而形成与用户访问线上服务器10的所产生的流量相同的镜像流量。
[0039]其中,所述测试服务器20模拟所述线上服务器,如,网络运行环境和与线上资源,与线上服务器不同之处在于,线上服务器中用于承载服务程序11和包捕获转发程序12,而该测试服务器20用于承载待测试程序21和包接收转换程序22。其中,所述包接收转换程序22用于将线上服务器10转发的镜像流量中的数据包转换为相应的用户访问请求提交给待测试程序21处理。
[0040]其中,线上服务器的访问数据包中的TCP/IP地址的源地址和目标地址和测试服务器的转化后的数据包的TCP/IP地址是不同的,因此,需要由包接收转换程序22对这个TCP/IP地址进行转化,从而将线上服务器的访问请求转化为相应的测试服务器的访问请求。
[0041]其中,所述待测试程序21用于处理上述经过转换后的用户访问请求从而向开发、测试人员提供相应的程序测试结果。
[0042]更具体来说,当用户访问线上服务器10上的线上服务程序11时,会产生一个用户访问请求(例如HTTP的用户浏览网页的请求),在线上服务器上部署包捕获转发程序12,会相应地捕获承载上述用户访问请求的数据包并将其转发到测试服务器20上。
[0043]在测试服务器20上部署了包接收转换程序22以及模拟线上程序的待测试程序21,包接收转换22程序在捕获镜像流量后,将镜像流量数据包转化成用户访问请求,发送到待测试程序21处。待测试程序21即可对用户访问请求进行解析,在与所述线上服务器10上的线上服务器程序11类似的网络环境完成测试流程,记录日志,并返回数据。同时,也可以在上述环境中进行开发及调试。
[0044]在上述环境中,用户访问请求,例如浏览器等客户端产生的请求,发送到线上服务器10,线上服务器10上承载的线上服务程序11对其处理并返回正确的数据即可,由此,通过捕获并转发线上服务器10接收的真实的访问请求流量并将其镜像转发形成镜像流量,用于模拟真实用户动作及请求,测试服务器20通过处理所述镜像流量就能够达到完全模拟线上服务器10的运行环境的目的。
[0045]在本发明的一个替代实施例中,可以不在线上服务器10中单独设置包捕获转发程序12,而是通过设置连接到线上服务器10的交换机,从过利用交换机进行数据包流量的镜像转发。设置后的交换机通过镜像/分光接口直接将发往线上服务器10的数据包流量复制后镜像转发给测试服务器20以模拟线上服务器10的运行环境。
[0046]在上述实施例中,包捕获转发程序11/交换机可以捕获全部或部分数据包流量,其中,如果数据包流量中除包括HTTP/FTP数据包外,还包括其它协议的数据包,可以直接捕获所有数据包进行镜像转发。如果数据包流量中仅仅是包括HTTP/FTP数据包,则可以仅仅捕获部分数据包进行镜像转发。
[0047]图2是本发明第二实施例的网络软件在线测试方法的方法流程图。如图2所示,所述方法包括:
[0048]步骤100、捕获线上服务器接收到的数据包并镜像转发至测试服务器;
[0049]步骤200、接收转发的数据包并转化为用户访问请求;
[0050]步骤300、根据所述用户访问请求对部署在测试服务器中的待测试程序进行在线调试。
[0051]在实际使用中,可以保持待测试程序与线上程序版本一致,当线上程序出现严重bug时,可以直接在测试服务器的待测试程序上修改和调试,并利用镜像转发来的用户流量进行线上调试。当测试通过后,作为新的程序紧急上线,替代线上的版本进行紧急bug修复。
[0052]另外,该测试服务器也可用于起到容灾作用,当线上服务器出现紧急事故时,如线上服务程序宕机等,该测试服务器可以直接使用待测试程序为用户提供服务,提供备份冗余的功能。
[0053]图3是本发明第二实施例的网络软件在线测试方法所基于的网络系统的系统框图。如图3所示,所述系统包括线上服务器10和测试服务器20,与第一实施例不同的是所述系统还包括数据转发服务器集群30,并且,所述包接收转换程序被配置到数据转发服务器集群30,在测试服务器20上仅配置待测试程序21。数据转发服务器集群30包括多台能够转发流量的服务器,可以将来自线上服务器10的镜像流量复制为多份,从而构造得到大量的用户请求。由此,可以对准备升级的下一版本的新的待测试程序进行压力测试,在不考虑性能的前提下,该数据转发服务器集群30也可以用一个单独的数据转发服务器来代替。
[0054]图4是本发明第二实施例的网络软件在线测试方法的流程图。如图4所示,所述方法包括:
[0055]步骤100’、捕获线上服务器接收到的数据包并转发至数据转发服务器集群;
[0056]步骤200’、数据转发服务器集群接收转发的数据包并转化为用户访问请求;
[0057]步骤300’、将所述用户访问请求复制为多份从而构造大量的用户访问请求,并将该复制后的多份用户访问请求转发至测试服务器;
[0058]步骤400’、测试服务器根据构造的用户访问请求进行待测试程序的在线测试。
[0059]本实施例一方面可以观察程序是否正确,对其进行线上直接测试,另一方面可以进行性能测试并根据性能问题进行调优。在完成这一测试步骤后才可将新版本的程序部署至线上服务器,完成新程序的预升级及升级工作。由此确保了测试的准确性,提高了程序预升级、升级的稳定性
[0060]图5是本发明第三实施例的网络软件在线测试系统的框图。
[0061]如图5所示,所述系统包括捕获转发单元、接收转换单元和测试单元,所述捕获转发单元用于捕获线上服务器接收到的数据包并镜像转发;所述接收转换单元用于接收转发的数据包并转化为用户访问请求;所述测试单元用于根据所述用户访问请求进行待测试程序的在线测试。
[0062]其中,所述接收转换单元可以直接将接收到的转发的数据包转换为用户访问请求,也可以通过复制转换得到的用户访问请求从而构造数量较大的用户访问请求以模拟网络压力较大的环境。
[0063]本发明通过在线上环境中引入一个模拟线上服务器的测试服务器,将待测试程序部署其上,并将线上程序的用户请求进行镜像转发,发送到待测试程序中以完成模拟线上环境的测试。
[0064]通过这种方式,在不影响客户使用的前提下进行具有类似线上环境的网络软件在线测试,且可以完全模拟真实用户的动作及请求;并且,由于待测试程序是部署在线上的测试服务器上,为测试人员提供了类似线上服务器的工作环境,并且可以获得足够的线上资源;最后,如果修改bug出现问题,不会影响到真实用户的使用,在经过完善的测试后再将程序升级至线上就能够保证程序版本的质量。
[0065]显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
[0066]以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种网络软件在线测试方法,所述方法包括: 捕获线上服务器接收到的数据包并镜像转发; 接收转发的数据包并转化为用户访问请求; 根据所述用户访问请求对部署在线上的测试服务器中的待测试程序进行在线测试。
2.如权利要求1所述的网络软件在线测试方法,其特征在于,所述测试服务器为模拟所述线上服务器的服务器。
3.如权利要求2所述的网络软件在线测试方法,其特征在于,所述捕获线上服务器接收到的数据包并镜像转发,包括: 捕获线上服务器接收到的数据包并将所述数据包镜像转发到所述测试服务器。
4.如权利要求2所述的网络软件在线测试方法,其特征在于,所述捕获线上服务器接收到的数据包并镜像转发,包括: 捕获线上服务器接收到的数据包并将所述数据包转发到数据转发服务器或者数据转发服务器集群。
5.如权利要求4所述的网络软件在线测试方法,其特征在于,所述接收转发的数据包并转化为用户访问请求包括: 所述数据转发服务器或者服务器集群将数据包转化得到的用户访问请求进行复制从而得到多份用户访问请求,将所述多份用户访问请求转发到所述测试服务器。
6.如权利要求1所述的网络软件在线测试方法,其特征在于,所述在线测试包括预升级、性能测试和程序调试中的一种或多种。
7.一种网络软件在线测试系统,所述系统包括: 捕获转发单元,用于捕获线上服务器接收到的数据包并镜像转发; 接收转换单元,用于接收转发的数据包并转化为用户访问请求; 测试单元,用于根据所述用户访问请求对部署在线上的测试服务器中的待测试程序进行在线测试。
8.如权利要求7所述的网络软件在线测试系统,其特征在于,所述测试服务器为模拟所述线上服务器的服务器。
9.一种网络软件在线测试系统,包括线上服务器和测试服务器,所述测试服务器用于模拟所述线上服务器; 其中,所述线上服务器用于提供线上服务并将接收到的数据包捕获并镜像转发到所述测试服务器; 所述测试服务器用于接收被镜像转发的数据包并将其转换为用户访问请求,根据所述用户访问请求进行网络软件在线测试。
10.一种网络软件在线测试系统,包括线上服务器、测试服务器和数据转发装置; 所述线上服务器用于提供线上服务并将接收到的数据包捕获并镜像转发到所述数据转发装置;所述测试服务器用于模拟所述线上服务器; 所述数据转发装置用于接收来自线上服务器的转发数据包,将所述转发数据包转换为用户访问请求后复制为多份用户访问请求,将所述多份用户访问请求转发到所述测试服务器; 所述测试服务器用于根据来自所述数据转发装置的用户访问请求进行网络软件在线测试。
11.如权利要求10所述的网络软件在线测试系统,其特征在于,所述数据转发装置包括数据转发服务器或数据转发服务器`集群。
【文档编号】H04L12/26GK103580943SQ201210276456
【公开日】2014年2月12日 申请日期:2012年8月3日 优先权日:2012年8月3日
【发明者】元张毅, 罗峰, 黄苏支, 李娜 申请人:亿赞普(北京)科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1