CN110457199A - 性能测试的方法和装置 - Google Patents
性能测试的方法和装置 Download PDFInfo
- Publication number
- CN110457199A CN110457199A CN201810431423.7A CN201810431423A CN110457199A CN 110457199 A CN110457199 A CN 110457199A CN 201810431423 A CN201810431423 A CN 201810431423A CN 110457199 A CN110457199 A CN 110457199A
- Authority
- CN
- China
- Prior art keywords
- block number
- flow block
- playback
- server
- request packet
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Abstract
本发明公开了一种性能测试的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:采集线上服务器接收到的请求包对应的流量块数据,并将流量块数据转发给回放服务器;将回放服务器根据流量块数据生成的测试请求包发送给测试服务器以进行性能测试;将测试服务器根据测试请求包生成的响应包返回给回放服务器以完成性能测试。该实施方式能够在方便地使用线上真实流量数据进行性能测试的同时,无需专门对测试服务器返回的响应包进行丢弃处理,且组网简单,系统扩展方便。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种性能测试的方法和装置。
背景技术
性能测试作为系统性能的一种评估方式显然非常重要,尤其是对于互联网相关的服务系统来说,系统性能的好坏将直接决定用户的体验。越接近真实情况的性能测试越能最大程度上提前发现系统的瓶颈、评估系统的容量、优化系统并发挥系统的最大优势。目前大部分互联网公司的性能测试多采用第三方主动式压测技术进行性能测试,即通过电脑模拟大量用户的并发请求,发送到线上服务器,而这些大量的用户请求,多为测试人员模拟构造,因此并不能做到真实情况的完全再现。
发明内容
有鉴于此,本发明实施例提供一种性能测试的方法和装置,能够在方便地使用线上真实流量数据进行性能测试的同时,无需专门对测试服务器返回的响应包进行丢弃处理,且组网简单,系统扩展方便。
为实现上述目的,根据本发明实施例的一个方面,提供了一种性能测试的方法。
一种性能测试的方法,包括:采集线上服务器接收到的请求包对应的流量块数据,并将所述流量块数据转发给回放服务器;将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试;将所述测试服务器根据所述测试请求包生成的响应包返回给所述回放服务器以完成性能测试。
可选地,所述流量块数据包括:请求开始时间、请求协议类型及版本号、请求路径、请求信息头、请求操作类型和请求数据内容。
可选地,将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,还包括:通过所述回放服务器对所述流量块数据进行解析以确定所述流量块数据完整,并获取完整的流量块数据。
可选地,将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,还包括:通过所述回放服务器对所述流量块数据进行过滤,以获取指定内容的请求包对应的流量块数据。
可选地,将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,还包括:通过所述回放服务器将所述流量块数据添加到回放队列中,并从所述回放队列中取出需要回放的流量块数据来生成测试请求包。
可选地,还包括:若采集的流量块数据对应的请求包的类别有多个,则通过转发服务器将不同类别的请求包对应的流量块数据转发到不同的回放服务器。
根据本发明实施例的另一方面,提供了一种性能测试的装置。
一种性能测试的装置,包括:数据采集模块,用于采集线上服务器接收到的请求包对应的流量块数据,并将所述流量块数据转发给回放服务器;请求发送模块,用于将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试;响应返回模块,用于将所述测试服务器根据所述测试请求包生成的响应包返回给所述回放服务器以完成性能测试。
可选地,所述流量块数据包括:请求开始时间、请求协议类型及版本号、请求路径、请求信息头、请求操作类型和请求数据内容。
可选地,还包括数据解析模块,用于:在将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,通过所述回放服务器对所述流量块数据进行解析以确定所述流量块数据完整,并获取完整的流量块数据。
可选地,还包括数据过滤模块,用于:在将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,通过所述回放服务器对所述流量块数据进行过滤,以获取指定内容的请求包对应的流量块数据。
可选地,还包括请求生成模块,用于:在将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,通过所述回放服务器将所述流量块数据添加到回放队列中,并从所述回放队列中取出需要回放的流量块数据来生成测试请求包。
可选地,还包括数据转发模块,用于:若采集的流量块数据对应的请求包的类别有多个,则通过转发服务器将不同类别的请求包对应的流量块数据转发到不同的回放服务器。
根据本发明实施例的又一方面,提供了一种性能测试的电子设备。
一种性能测试的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的性能测试的方法。
根据本发明实施例的再一方面,提供了一种计算机可读介质。
一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的性能测试的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过采集线上服务器接收到的请求包对应的流量块数据并转发给回放服务器,回放服务器根据流量块数据生成测试请求包并发送给测试服务器,可以使测试服务器生成的响应包被返回给回放服务器,从而可以在方便地使用线上真实流量数据进行性能测试的同时,无需专门对测试服务器返回的响应包进行丢弃处理,且组网简单,系统扩展方便。采用本发明的技术方案,可以使得性能压测变得更简单,只需要有线上流量块数据即可,无需单独进行复杂的网络层面的组网设计,除了增加用于转发流量块数据的转发服务器外,没有多余的资源开销;通过使用能反映用户真实访问行为的线上流量或日志来进行测试,使得测试人员无需再模拟数据,拼接请求链接;通过按照线上服务器接收到的请求的时间戳进行流量块数据的回放,可以完全模拟用户访问的高峰、低谷时段的场景,使得对这一过程的模拟更加真实;另外,通过设置转发服务器对不同类别的请求对应的流量块数据进行转发,可以非常方便的进行多个系统的同时性能压测,只需要增加压力机,就可以轻松实现流量的增加。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是TCPCopy的一种实现方式;
图2是本发明实施例的性能测试系统的架构图;
图3是根据本发明实施例的性能测试的方法的主要流程的示意图;
图4是本发明实施例的回放服务器进行流量回放的流程示意图;
图5是根据本发明实施例的性能测试的装置的主要模块的示意图;
图6是本发明实施例可以应用于其中的示例性系统架构图;
图7是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
为了能在最大程度上提前发现系统的瓶颈、评估系统的容量、优化系统并发挥系统的最大优势,那么,在进行系统的性能测试时,就需要选择能再现真实情况的性能测试方法。目前,有少量的公司会采用流量复制方式进行线上流量复制与回放,可以把在线流量导入到测试系统中去,故而可以实现对真实情况的完全再现。
现有流量复制的典型方案为TCPCopy。TCPCopy是一种请求复制工具,其复制基于TCP(Transmission Control Protocol传输控制协议)的数据包packets,可以把在线流量导入到测试系统中去。其实现原理如下:通过复制线上服务器的在线数据包,并修改数据包的TCP/IP头部信息,然后发送给测试服务器以达到欺骗测试服务器的TCP程序的目的。由于TCPCopy不是基于应用层的复制,而是基于底层数据包的请求复制,故可以做到无需穿透整个协议栈,快速地将复制的请求发送给测试服务器,以实现基于流量复制的性能测试。
图1是TCPCopy的一种实现方式。如图1所示,采用TCPCopy的流量复制方式进行性能测试的过程如下:
1、线上服务器,即:实际承载流量的服务器,是真实用户访问的服务器,其上运行的TCPCopy进程捕获在线请求包,并复制捕获的请求包,然后更改请求包的目的IP(Internet Protocol,网络之间互连的协议)和目的端口号以发送到测试服务器,并且保持TCP连接;
2、测试服务器,即:部署需要进行测试的应用程序的服务器,其更改响应包的路由设置,目的是将测试应用程序的响应包路由到辅助服务器;
3、辅助服务器,用于捕获测试服务器处理完请求后的响应包并且丢弃,防止响应包回传到线上服务器影响真实用户。辅助服务器通过intercept(拦截)进程捕获到测试服务器转发过来的响应包,然后过滤相关信息并将响应包的头部抽取后发送给线上服务器的TCPCopy进程,关闭TCP连接,以完成一次请求流量的复制。
但是,使用TCPCopy的流量复制方式进行性能测试时还存在如下的问题:
1、组网比较复杂,测试人员需要具备足够的网络知识,以及TCP/IP的基本原理知识;
2、需要设置专门的辅助服务器来接收响应包并丢弃以防影响线上服务的正常运行;
3、扩充难度较大,例如:当需要把流量复制到多台机器上时,需要配置多组测试服务器以及辅助服务器,并且不便于管理;
4、为了使响应包的头部能够正常返回以关闭TCP连接,必须事先知道请求包是经过线上服务器的哪个网卡进行传输的。
为了解决以上提到的问题,本发明提供了一种基于流量复制的性能测试方法,通过实时或离线地获取线上服务器接收到的请求包对应的流量数据,然后使用回放服务器根据获取的流量数据生成测试请求包并发送给测试服务器以进行测试,可以使得测试服务器生成的响应包被返回给回放服务器,从而可以方便地对线上流量进行放大或缩小,达到通过线上真实流量进行性能测试的目的,同时,无需专门对测试服务器返回的响应包进行丢弃处理,且组网简单,系统扩展方便。
图2是本发明实施例的性能测试系统的架构图。如图2所示,本发明的性能测试系统建立了一个基于流量复制的性能测试控制中心,主要负责控制对线上服务器的日志或请求包的实时或离线采集、控制流量复制和回放的频率、进行测试目标调整等工作。本发明实施例的性能测试控制中心通过执行本发明提出的性能测试方法,来实现对线上服务器接收到的请求包对应的流量块数据的采集、并通过转发服务器将不同类型的请求包对应的流量块数据转发给不同的回放服务器、再由回放服务器根据流量块数据生成测试请求包并发送给测试服务器,从而使得测试服务器可以直接将响应包返回给回放服务器以完成性能测试。
图3是根据本发明实施例的性能测试的方法的主要流程的示意图。如图3所示,本发明的性能测试的方法主要包括如下的步骤S301至步骤S303。
步骤S301:采集线上服务器接收到的请求包对应的流量块数据,并将流量块数据转发给回放服务器。
根据本发明的实施例,可以使用TCP层的抓包工具抓取线上服务器接收到的请求包并对请求包进行解析以获取请求包对应的流量块数据,或者采集线上服务器的流量或日志数据,并对流量或日志数据进行分析整理以获取请求包对应的流量块数据。线上服务器自身携带有日志采集服务,但是日志信息并不能包含所有需要的数据信息,为了获取需要的流量块数据,可预先对线上服务器的日志采集服务进行设置。每个请求包对应的数据信息称为一个流量块数据。每个流量块数据可以包括:请求开始时间、请求协议类型及版本号、请求路径、请求信息头、请求操作类型和请求数据内容。另外,当需要根据线上服务器的响应结果对测试服务器的返回结果进行校验时,流量块数据还可以包括响应信息及响应时间(即:请求结束时间)。其中,请求开始和结束的时间戳例如是精确到微秒级的数据;请求信息头,是能够反映当前请求的特征标识,例如可以是User-Agent(用户代理),Cookie(储存在用户本地终端上的数据),Content-Type(内容类型),Host(主机),Connection(连接类型)等。在进行日志采集时,可以是实时采集,也可以是离线采集。
在获取到流量块数据之后,需要将流量块数据转发给回放服务器,以便回放服务器可以使用流量块数据生成用于测试的测试请求包。
根据本发明的实施例,若采集的流量块数据对应的请求包的类别有多个,则通过转发服务器将不同类别的请求包对应的流量块数据转发到不同的回放服务器,以便实现将特定的流量块数据发送到特定的测试服务器。例如:同时采集了多个类别的服务系统(如服务1、服务2)的请求包对应的流量块数据,这些服务系统对应的流量块数据需要分别发送给服务1回放服务器、服务2回放服务器,以便生成测试请求包并回放至服务1测试服务器、服务2测试服务器,此时,通过转发服务器可以根据服务的类别(如服务1、服务2等)进行流量块数据的转发路径和目的地的修改,以实现将服务1的请求包对应的流量块数据转发给服务1回放服务器,将服务2的请求包对应的流量块数据转发给服务2回放服务器,进而将服务1回放服务器生成的测试请求包发送给服务1测试服务器,将服务2回放服务器生成的测试请求包发送给服务2测试服务器。
步骤S302:将回放服务器根据流量块数据生成的测试请求包发送给测试服务器以进行性能测试。
在该步骤之前,需要使回放服务器使用流量块数据生成用于测试的测试请求包。回放服务器收到转发过来的流量块数据后,需要对流量块数据进行解析并获取完整的流量块数据,然后对流量块数据进行过滤,然后将过滤后的流量块数据保存到回放队列中以用于生成测试请求包。具体地,可以通过回放服务器对流量块数据进行解析以确定流量块数据完整,并获取完整的流量块数据;再通过回放服务器对流量块数据进行过滤,以获取指定内容的请求包对应的流量块数据;然后,通过回放服务器将流量块数据添加到回放队列中,并从回放队列中取出需要回放的流量块数据来生成测试请求包。在根据流量块数据生成测试请求包时,通过对流量块数据进行解析,可以预先对流量块数据进行筛选,以删除无法解析(例如:日志中含有特殊字符或乱码信息等)或解析不通过(例如:流量块数据不完整)的流量块数据。通过对流量块数据进行过滤,以获取指定内容的请求包对应的流量块数据,例如:可以获取请求操作类型为读操作的请求包对应的流量块数据并将请求操作类型为写操作的流量块数据删除,以便只回放读操作对应的流量块数据,故而不会修改数据库中的数据,从而无需建立虚拟数据库,简化了测试;又如,根据测试需要,可以获取指定请求路径的请求包对应的流量块数据,等等;再如,回放服务器接收到的流量块数据中,可能仅有几种请求的量比较大,其他请求的量都非常小,为了对服务器进行压力测试,可以仅获取请求量大的几种请求包对应的流量块数据,等等。通过将流量块数据保存到回放队列,然后从回放队列中取出流量块数据来生成测试请求包,可以根据流量块数据的请求开始时间来限定测试请求包的发送顺序,故而能更好地体现真实用户的行为。
回放服务器收到转发过来的流量块数据后,按照请求开始标识、协议标识、请求路径标识、请求信息头标识、请求数据标识、响应数据标识、请求结束标识等信息进行实时解析,解析后放到回放队列中,随时供回放程序使用。解析后的流量块数据的格式可以为任意格式,可以优选键值对格式,比如对一个流量块数据包含的信息进行解析后的一种可能实施例如下:
流量块开始
请求开始标识:时间戳
协议标识:http
请求信息头标识:
信息头开始
信息头内容
信息头结束
请求数据标识:123
请求结束标识:时间戳
流量块结束。
所有正常解析为键值对的流量块数据全部加入回放队列中,回放进程从回放队列中依次取出需要回放的流量块数据,根据测试要求进行请求路径和请求目标地址的设置,比如HTTP协议中是包含URL路径的,这个路径可以进行修改,又比如通过配置主机HOST,就可以将请求目标地址设置为指定IP的测试服务器。之后,回放服务器在发送生成的测试请求时,即可根据修改后的URL路径进行发送,且发送到指定的测试服务器。具体地,例如:根据测试要求(比如放大10倍、发送到测试服务器A)将原来流量块数据的请求目标地址修改为测试服务器A,并根据流量块数据的请求协议类型及版本号、请求路径、请求信息头、请求操作类型和请求数据内容等生成测试请求包,然后通过线程池启用10个线程(即:将该测试请求包放大10倍)将测试请求包发送给测试服务器A以进行性能测试。另外,当需要进行流量放大回放时,可以通过线程池启用多线程同时回放来实现,也可以通过其他的方式,例如根据两个流量块数据之间的时间间隔,通过协程的方式控制测试请求包发送的频率,从而实现流量的放大回放。其中,协程是一种程序组件,适于用来实现合作式多任务,迭代器,无限列表和管道等等。
下面结合图4介绍本发明实施例进行流量回放的具体流程。图4是本发明实施例的回放服务器进行流量回放的流程示意图。如图4所示,本发明实施例的回放服务器的回放进程1在接收到流量块数据以后,首先解析流量块数据,若解析成功,则将该流量块数据加入到回放队列中,否则删除该流量块数据并继续解析下一个流量块数据,所有成功解析的流量块数据都将不断的加入到回放队中;同时一个新的回放进程2不断的从队列中获取流量块数据,若需要回放该流量块数据,则修改流量块数据中的目标IP地址为被测服务器IP地址并生成测试请求包;若需要放大回放,则开启多个线程进行放大回放,首先启动与放大倍数对应个数的线程,然后这些线程中的每个线程都将生成的测试请求包发送给测试服务器以实现放大回放,否则,直接开启一个线程将测试请求包发送给测试服务器以进行回放操作。
步骤S303:将测试服务器根据测试请求包生成的响应包返回给回放服务器以完成性能测试。
测试服务器根据回放服务器发来的测试请求包进行性能测试后将生成响应包。由于测试请求包是由回放服务器发来的,故生成的响应包会自动返回给回放服务器,以完成此次基于流量复制的性能测试。由于响应包不会返回给线上服务器,故不会影响线上服务和用户体验。通过将用户真实请求的流量块数据发送给回放服务器,由回放服务器生成测试请求包进行回放并发送给测试服务器,使得测试服务器可以将响应包直接返回给回放服务器,而无需另外进行响应包的拦截和丢弃等操作,且本发明的技术方案无需在线上服务器上部署流量拦截的TCPCopy进程即可实现,从而不会对线上服务器造成影响。
通过以上步骤S301至步骤S303,实现了线上流量复制到测试服务器的过程,并且在这个过程中,用户不需要关心任何网络组网信息,只需要设定转发服务器、回放服务器、测试服务器的路由配置信息即可。
在实际测试过程中,一般会实时进行流量的同步回放,但是也会需要不停的进行某些已知流量的回放,故而需要进行流量的离线回放。根据上述的方法,当需要进行流量的离线回放时,实现方案有多种:可以通过离线采集日志以得到流量块数据并将流量块数据保存到离线数据服务器,并在接收到性能测试控制中心的转发和回放指令后,将流量块数据转发给回放服务器以进行流量离线回放;也可以是实时采集日志并得到流量块数据,通过设置转发服务器的转发时间间隔来实现将流量块数据非实时地转发给回放服务器以进行流量离线回放;还可以是实时采集日志并处理得到流量块数据,然后保存到回放服务器,根据性能测试控制中心的回放指令进行流量块数据的离线回放,等等。在具体实施时,可根据需要灵活选择实现方案。
图5是根据本发明实施例的性能测试的装置的主要模块的示意图。如图5所示,本发明实施例的性能测试的装置500主要包括数据采集模块501、请求发送模块502和响应返回模块503。
数据采集模块501用于采集线上服务器接收到的请求包对应的流量块数据,并将流量块数据转发给回放服务器;
请求发送模块502用于将回放服务器根据流量块数据生成的测试请求包发送给测试服务器以进行性能测试;
响应返回模块503用于将测试服务器根据测试请求包生成的响应包返回给回放服务器以完成性能测试。
根据本发明的实施例,流量块数据主要可以包括:请求开始时间、请求协议类型及版本号、请求路径、请求信息头、请求操作类型和请求数据内容。
根据本发明的技术方案,性能测试的装置500还可以包括数据解析模块(图中未示出),用于:
在将回放服务器根据流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,通过回放服务器对流量块数据进行解析以确定流量块数据完整,并获取完整的流量块数据。
根据本发明的技术方案,性能测试的装置500还可以包括数据过滤模块(图中未示出),用于:
在将回放服务器根据流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,通过回放服务器对流量块数据进行过滤,以获取指定内容的请求包对应的流量块数据。
根据本发明的技术方案,性能测试的装置500还可以包括请求生成模块(图中未示出),用于:
在将回放服务器根据流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,通过回放服务器将流量块数据添加到回放队列中,并从回放队列中取出需要回放的流量块数据来生成测试请求包。
根据本发明实施例的技术方案,性能测试的装置500还可以包括数据转发模块(图中未示出),用于:
若采集的流量块数据对应的请求包的类别有多个,则通过转发服务器将不同类别的请求包对应的流量块数据转发到不同的回放服务器。
根据本发明实施例的技术方案,通过采集线上服务器接收到的请求包对应的流量块数据并转发给回放服务器,回放服务器根据流量块数据生成测试请求包并发送给测试服务器,可以使测试服务器生成的响应包被返回给回放服务器,从而可以在方便地使用线上真实流量数据进行性能测试的同时,无需专门对测试服务器返回的响应包进行丢弃处理,且组网简单,系统扩展方便。采用本发明的技术方案,可以使得性能压测变得更简单,只需要有线上流量块数据即可,无需单独进行复杂的网络层面的组网设计,除了增加用于转发流量块数据的转发服务器外,没有多余的资源开销;通过使用能反映用户真实访问行为的线上流量或日志来进行测试,使得测试人员无需再模拟数据,拼接请求链接;通过按照线上服务器接收到的请求的时间戳进行流量块数据的回放,可以完全模拟用户访问的高峰、低谷时段的场景,使得对这一过程的模拟更加真实;另外,通过设置转发服务器对不同类别的请求对应的流量块数据进行转发,可以非常方便的进行多个系统的同时性能压测,只需要增加压力机,就可以轻松实现流量的增加。
图6示出了可以应用本发明实施例的性能测试的方法或性能测试的装置的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的性能测试的方法一般由服务器605执行,相应地,性能测试的装置一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图7,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机系统700的结构示意图。图7示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括数据采集模块、请求发送模块和响应返回模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,数据采集模块还可以被描述为“用于采集线上服务器接收到的请求包对应的流量块数据,并将流量块数据转发给回放服务器的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:采集线上服务器接收到的请求包对应的流量块数据,并将所述流量块数据转发给回放服务器;将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试;将所述测试服务器根据所述测试请求包生成的响应包返回给所述回放服务器以完成性能测试。
根据本发明实施例的技术方案,通过采集线上服务器接收到的请求包对应的流量块数据并转发给回放服务器,回放服务器根据流量块数据生成测试请求包并发送给测试服务器,可以使测试服务器生成的响应包被返回给回放服务器,从而可以在方便地使用线上真实流量数据进行性能测试的同时,无需专门对测试服务器返回的响应包进行丢弃处理,且组网简单,系统扩展方便。采用本发明的技术方案,可以使得性能压测变得更简单,只需要有线上流量块数据即可,无需单独进行复杂的网络层面的组网设计,除了增加用于转发流量块数据的转发服务器外,没有多余的资源开销;通过使用能反映用户真实访问行为的线上流量或日志来进行测试,使得测试人员无需再模拟数据,拼接请求链接;通过按照线上服务器接收到的请求的时间戳进行流量块数据的回放,可以完全模拟用户访问的高峰、低谷时段的场景,使得对这一过程的模拟更加真实;另外,通过设置转发服务器对不同类别的请求对应的流量块数据进行转发,可以非常方便的进行多个系统的同时性能压测,只需要增加压力机,就可以轻松实现流量的增加。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (14)
1.一种性能测试的方法,其特征在于,包括:
采集线上服务器接收到的请求包对应的流量块数据,并将所述流量块数据转发给回放服务器;
将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试;
将所述测试服务器根据所述测试请求包生成的响应包返回给所述回放服务器以完成性能测试。
2.根据权利要求1所述的方法,其特征在于,所述流量块数据包括:
请求开始时间、请求协议类型及版本号、请求路径、请求信息头、请求操作类型和请求数据内容。
3.根据权利要求1所述的方法,其特征在于,将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,还包括:
通过所述回放服务器对所述流量块数据进行解析以确定所述流量块数据完整,并获取完整的流量块数据。
4.根据权利要求1或3所述的方法,其特征在于,将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,还包括:
通过所述回放服务器对所述流量块数据进行过滤,以获取指定内容的请求包对应的流量块数据。
5.根据权利要求1或3所述的方法,其特征在于,将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,还包括:
通过所述回放服务器将所述流量块数据添加到回放队列中,并从所述回放队列中取出需要回放的流量块数据来生成测试请求包。
6.根据权利要求1所述的方法,其特征在于,还包括:
若采集的流量块数据对应的请求包的类别有多个,则通过转发服务器将不同类别的请求包对应的流量块数据转发到不同的回放服务器。
7.一种性能测试的装置,其特征在于,包括:
数据采集模块,用于采集线上服务器接收到的请求包对应的流量块数据,并将所述流量块数据转发给回放服务器;
请求发送模块,用于将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试;
响应返回模块,用于将所述测试服务器根据所述测试请求包生成的响应包返回给所述回放服务器以完成性能测试。
8.根据权利要求7所述的装置,其特征在于,所述流量块数据包括:
请求开始时间、请求协议类型及版本号、请求路径、请求信息头、请求操作类型和请求数据内容。
9.根据权利要求7所述的装置,其特征在于,还包括数据解析模块,用于:
在将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,通过所述回放服务器对所述流量块数据进行解析以确定所述流量块数据完整,并获取完整的流量块数据。
10.根据权利要求7或9所述的装置,其特征在于,还包括数据过滤模块,用于:
在将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,通过所述回放服务器对所述流量块数据进行过滤,以获取指定内容的请求包对应的流量块数据。
11.根据权利要求7或9所述的装置,其特征在于,还包括请求生成模块,用于:
在将所述回放服务器根据所述流量块数据生成的测试请求包发送给测试服务器以进行性能测试之前,通过所述回放服务器将所述流量块数据添加到回放队列中,并从所述回放队列中取出需要回放的流量块数据来生成测试请求包。
12.根据权利要求7所述的装置,其特征在于,还包括数据转发模块,用于:
若采集的流量块数据对应的请求包的类别有多个,则通过转发服务器将不同类别的请求包对应的流量块数据转发到不同的回放服务器。
13.一种性能测试的电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810431423.7A CN110457199A (zh) | 2018-05-08 | 2018-05-08 | 性能测试的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810431423.7A CN110457199A (zh) | 2018-05-08 | 2018-05-08 | 性能测试的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110457199A true CN110457199A (zh) | 2019-11-15 |
Family
ID=68480370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810431423.7A Pending CN110457199A (zh) | 2018-05-08 | 2018-05-08 | 性能测试的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110457199A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110912783A (zh) * | 2019-12-18 | 2020-03-24 | 北京嘀嘀无限科技发展有限公司 | 流量回放方法、装置、电子设备及存储介质 |
CN111309604A (zh) * | 2020-02-07 | 2020-06-19 | Tcl移动通信科技(宁波)有限公司 | 离线自动化测试方法、系统、存储介质及移动终端 |
CN111352821A (zh) * | 2020-03-10 | 2020-06-30 | 深圳市宝能投资集团有限公司 | 业务测试方法、装置、电子设备和计算机可读存储介质 |
CN111371650A (zh) * | 2020-03-06 | 2020-07-03 | 中国银行股份有限公司 | 一种基于流量转发的准生产设备测试方法及系统 |
CN112214395A (zh) * | 2020-09-02 | 2021-01-12 | 浙江大搜车融资租赁有限公司 | 基于流量数据的接口测试方法、电子装置及存储介质 |
CN112559361A (zh) * | 2020-12-22 | 2021-03-26 | 京东数字科技控股股份有限公司 | 流量回放方法、装置、设备及计算机可读介质 |
CN113127356A (zh) * | 2021-04-22 | 2021-07-16 | 挂号网(杭州)科技有限公司 | 压测方法、装置、电子设备及存储介质 |
CN113315677A (zh) * | 2021-05-19 | 2021-08-27 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种基于镜像流量的压测方法、装置、存储介质和设备 |
CN113472687A (zh) * | 2021-07-15 | 2021-10-01 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN113742217A (zh) * | 2021-08-03 | 2021-12-03 | 北京达佳互联信息技术有限公司 | 一种性能测试方法、设备及存储介质 |
CN114124747A (zh) * | 2021-10-15 | 2022-03-01 | 微梦创科网络科技(中国)有限公司 | 一种流量压测系统 |
CN114448825A (zh) * | 2020-11-06 | 2022-05-06 | 行吟信息科技(上海)有限公司 | 流量比对方法、装置、设备及存储介质 |
CN114531345A (zh) * | 2020-11-06 | 2022-05-24 | 行吟信息科技(上海)有限公司 | 流量比对结果存储方法、装置、设备及存储介质 |
CN115396346A (zh) * | 2022-08-30 | 2022-11-25 | 北京知道创宇信息技术股份有限公司 | 仿真压力测试方法、装置、系统和电子设备 |
CN116107913A (zh) * | 2023-04-06 | 2023-05-12 | 阿里云计算有限公司 | 单节点服务器的测试控制方法、装置及系统 |
CN114124747B (zh) * | 2021-10-15 | 2024-04-30 | 微梦创科网络科技(中国)有限公司 | 一种流量压测系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002082727A1 (en) * | 2001-04-06 | 2002-10-17 | Nfratech Inc. | Method for collecting a network performance information, computer readable medium storing the same, and an analysis system and method for network performance |
CN103428042A (zh) * | 2012-05-22 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 对服务器进行压力测试的方法及系统 |
CN103580943A (zh) * | 2012-08-03 | 2014-02-12 | 亿赞普(北京)科技有限公司 | 一种网络软件在线测试方法和系统 |
CN105471674A (zh) * | 2015-11-20 | 2016-04-06 | 珠海多玩信息技术有限公司 | 测试服务器性能的方法及系统 |
-
2018
- 2018-05-08 CN CN201810431423.7A patent/CN110457199A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002082727A1 (en) * | 2001-04-06 | 2002-10-17 | Nfratech Inc. | Method for collecting a network performance information, computer readable medium storing the same, and an analysis system and method for network performance |
CN103428042A (zh) * | 2012-05-22 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 对服务器进行压力测试的方法及系统 |
CN103580943A (zh) * | 2012-08-03 | 2014-02-12 | 亿赞普(北京)科技有限公司 | 一种网络软件在线测试方法和系统 |
CN105471674A (zh) * | 2015-11-20 | 2016-04-06 | 珠海多玩信息技术有限公司 | 测试服务器性能的方法及系统 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110912783A (zh) * | 2019-12-18 | 2020-03-24 | 北京嘀嘀无限科技发展有限公司 | 流量回放方法、装置、电子设备及存储介质 |
CN111309604A (zh) * | 2020-02-07 | 2020-06-19 | Tcl移动通信科技(宁波)有限公司 | 离线自动化测试方法、系统、存储介质及移动终端 |
CN111309604B (zh) * | 2020-02-07 | 2023-10-03 | Tcl移动通信科技(宁波)有限公司 | 离线自动化测试方法、系统、存储介质及移动终端 |
CN111371650A (zh) * | 2020-03-06 | 2020-07-03 | 中国银行股份有限公司 | 一种基于流量转发的准生产设备测试方法及系统 |
CN111371650B (zh) * | 2020-03-06 | 2022-03-25 | 中国银行股份有限公司 | 一种基于流量转发的准生产设备测试方法及系统 |
CN111352821A (zh) * | 2020-03-10 | 2020-06-30 | 深圳市宝能投资集团有限公司 | 业务测试方法、装置、电子设备和计算机可读存储介质 |
CN112214395A (zh) * | 2020-09-02 | 2021-01-12 | 浙江大搜车融资租赁有限公司 | 基于流量数据的接口测试方法、电子装置及存储介质 |
CN114448825A (zh) * | 2020-11-06 | 2022-05-06 | 行吟信息科技(上海)有限公司 | 流量比对方法、装置、设备及存储介质 |
CN114531345B (zh) * | 2020-11-06 | 2023-08-18 | 行吟信息科技(上海)有限公司 | 流量比对结果存储方法、装置、设备及存储介质 |
CN114531345A (zh) * | 2020-11-06 | 2022-05-24 | 行吟信息科技(上海)有限公司 | 流量比对结果存储方法、装置、设备及存储介质 |
CN112559361A (zh) * | 2020-12-22 | 2021-03-26 | 京东数字科技控股股份有限公司 | 流量回放方法、装置、设备及计算机可读介质 |
CN113127356A (zh) * | 2021-04-22 | 2021-07-16 | 挂号网(杭州)科技有限公司 | 压测方法、装置、电子设备及存储介质 |
CN113315677B (zh) * | 2021-05-19 | 2023-03-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种基于镜像流量的压测方法、装置、存储介质和设备 |
CN113315677A (zh) * | 2021-05-19 | 2021-08-27 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种基于镜像流量的压测方法、装置、存储介质和设备 |
CN113472687A (zh) * | 2021-07-15 | 2021-10-01 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN113472687B (zh) * | 2021-07-15 | 2023-12-05 | 北京京东振世信息技术有限公司 | 一种数据处理方法和装置 |
CN113742217A (zh) * | 2021-08-03 | 2021-12-03 | 北京达佳互联信息技术有限公司 | 一种性能测试方法、设备及存储介质 |
CN114124747A (zh) * | 2021-10-15 | 2022-03-01 | 微梦创科网络科技(中国)有限公司 | 一种流量压测系统 |
CN114124747B (zh) * | 2021-10-15 | 2024-04-30 | 微梦创科网络科技(中国)有限公司 | 一种流量压测系统 |
CN115396346A (zh) * | 2022-08-30 | 2022-11-25 | 北京知道创宇信息技术股份有限公司 | 仿真压力测试方法、装置、系统和电子设备 |
CN116107913A (zh) * | 2023-04-06 | 2023-05-12 | 阿里云计算有限公司 | 单节点服务器的测试控制方法、装置及系统 |
CN116107913B (zh) * | 2023-04-06 | 2023-11-14 | 阿里云计算有限公司 | 单节点服务器的测试控制方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110457199A (zh) | 性能测试的方法和装置 | |
US7013251B1 (en) | Server recording and client playback of computer network characteristics | |
CN105024872B (zh) | 网络性能测试的方法及装置 | |
CN103257989B (zh) | 网页下载时间分析 | |
CN107562620A (zh) | 一种埋点自动设置方法和装置 | |
CN108897691A (zh) | 基于接口模拟服务的数据处理方法、装置、服务器和介质 | |
CN105068876B (zh) | 基于分布式部署真机采集手机app性能数据的方法 | |
CN108334562A (zh) | 一种页面显示方法和装置 | |
CN102098327A (zh) | 在线视频嗅探下载方法及装置 | |
CN108959337A (zh) | 大数据获取方法、装置、设备及存储介质 | |
CN105897850A (zh) | 用于cdn平台的响应处理方法、调度代理服务器及系统 | |
CN105794175B (zh) | 输送web内容的系统的性能度量 | |
CN110046092A (zh) | 实验分流方法、装置、电子设备和计算机可读存储介质 | |
CN110084698A (zh) | 基于区块链的交互系统、交互方法和装置 | |
US10775751B2 (en) | Automatic generation of regular expression based on log line data | |
CN106559498A (zh) | 风控数据收集平台及其收集方法 | |
CN101184002A (zh) | 一种点对点流量深度监测方法和设备 | |
CN110019363A (zh) | 一种校验数据的方法和装置 | |
CN107104997A (zh) | 一种重定向方法、终端及系统 | |
Helgason | Performance analysis of Web Services: Comparison between RESTful & GraphQL web services | |
Qiao et al. | Interest packets scheduling and size-based flow control mechanism for content-centric networking web servers | |
CN114416597A (zh) | 测试用例记录的生成方法和装置 | |
US10027774B2 (en) | Information on navigation behavior of web page users | |
CN107517237A (zh) | 一种视频识别方法和装置 | |
CN113067878A (zh) | 信息采集方法、装置、设备、介质及程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |