CN103378989B - 一种获取性能测试数据的方法和装置 - Google Patents

一种获取性能测试数据的方法和装置 Download PDF

Info

Publication number
CN103378989B
CN103378989B CN201210105841.XA CN201210105841A CN103378989B CN 103378989 B CN103378989 B CN 103378989B CN 201210105841 A CN201210105841 A CN 201210105841A CN 103378989 B CN103378989 B CN 103378989B
Authority
CN
China
Prior art keywords
subsystem
cache
environment
tested
request data
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.)
Active
Application number
CN201210105841.XA
Other languages
English (en)
Other versions
CN103378989A (zh
Inventor
赖峥嵘
金敬亭
胡星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201210105841.XA priority Critical patent/CN103378989B/zh
Publication of CN103378989A publication Critical patent/CN103378989A/zh
Application granted granted Critical
Publication of CN103378989B publication Critical patent/CN103378989B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供了一种获取性能测试数据的方法和装置,其中方法包括:S1、预先接管被测试子***和环境子***之间的通信链路;S2、按照预设的数据量控制策略,将来自所述被测试子***的请求数据包有选择地转发至所述环境子***;S3、将所述环境子***返回的应答数据包转发给所述被测试子***,并将所述应答数据包存储至所述通信链路对应的缓存(cache);以及对于来自所述被测试子***而未被转发给所述环境子***的请求数据包,从所述cache中查找应答数据包发送给所述被测试子***。通过本发明能够提高从周边环境所获取的性能测试数据的丰富度和实时性,并尽量降低对环境子***引入的额外压力。

Description

一种获取性能测试数据的方法和装置
【技术领域】
本发明涉及计算机技术领域,特别涉及一种获取性能测试数据的方法和装置。
【背景技术】
在分布式软件***中,一个模块或者子***除了有直接的业务请求输入源之外,往往还需要在处理这些请求的过程中间与周围的模块或子***进行通信,获取相关的数据和信息,以完成对于请求的计算和处理。在针对这样的模块或子***进行性能测试时,需要在测试中获得与生产环境中数据量、复杂度和丰富度相当的周边返回的数据。也就是说,被测试子***和环境子***之间会进行通信,性能测试需要获取两者之间通信的数据。
现有获取性能测试数据的方式主要包括两种:
第一种方式:模拟周边的环境子***并人工分析构造环境子***返回的数据。但是人工分析构造的环境子***返回的数据,其数据丰富度和实时性上往往和生产环境中交互的数据相差较大,从而使得性能测试数据与生产环境中的实际运行结果存在明显差异,影响测试结果的准确度。
第二种方式:预先录制周边的环境子***返回的数据,然后在性能测试执行时进行回放。这种方式由于受到对获取数据的环境子***所引入额外压力的限制,决定了数据录制阶段往往耗时较长,另外,虽然数据丰富度上可以做到与生产环境相当,但是在时效性上存在缺陷。
【发明内容】
有鉴于此,本发明提供了一种获取性能测试数据的方法和装置,以便于提高从周边环境所获取的性能测试数据的丰富度和实时性。
具体技术方案如下:
一种获取性能测试数据的方法,该方法包括:
S1、预先接管被测试子***和环境子***之间的通信链路;
S2、按照预设的数据量控制策略,将来自所述被测试子***的请求数据包有选择地转发至所述环境子***;
S3、将所述环境子***返回的应答数据包转发给所述被测试子***,并将所述应答数据包存储至所述通信链路对应的缓存cache;以及对于来自所述被测试子***而未被转发给所述环境子***的请求数据包,从所述cache中查找应答数据包发送给所述被测试子***。
根据本发明一优选实施例,所述步骤S1具体包括:
通过预先配置转发IP和监听端口的方式,监听所述被测试子***和环境子***之间通信的请求数据包和应答数据包。
根据本发明一优选实施例,所述步骤S2具体包括:
按照预设的比例或者预设的速率阈值对来自所述被测试子***的请求数据包进行随机抽样,将抽样的请求数据包转发给所述环境子***;或者,
按照预设的比例或预设的速率阈值转发来自所述被测试子***的与时效性强相关的请求数据包给所述环境子***。
根据本发明一优选实施例,在所述cache中各缓存项以键key-值value对的方式存储,其中key表明请求数据包和应答数据包的业务对应关系,value为应答数据包;
从所述cache中查找应答数据包发送给所述被测试子***包括:在所述cache中查找与请求数据包具有相同key的缓存项中的应答数据包,将查找的应答数据包发送给所述被测试子***。
根据本发明一优选实施例,该方法还包括:
待所述cache中存储有一定量的缓存项后,针对所有来自所述被测试子***的请求数据包均从所述cache中查找应答数据包发送给所述被测试子***。
一种获取性能测试数据的装置,该装置包括:
链路接管单元,用于预先接管被测试子***和环境子***之间的通信链路;
请求控制单元,用于按照预设的数据量控制策略,将来自所述被测试子***的请求数据包有选择地转发至所述环境子***;
应答处理单元,用于将所述环境子***返回的应答数据包转发给所述被测试子***,并将所述应答数据包存储至所述通信链路对应的缓存cache;以及对于来自所述被测试子***而未被转发给所述环境子***的请求数据包,从所述cache中查找应答数据包发送给所述被测试子***。
根据本发明一优选实施例,所述链路接管单元通过预先配置转发IP和监听端口的方式,以使所述请求控制单元监听来自所述被测子***的请求数据包以及所述应答处理单元监听所述环境子***发送的应答数据包。
根据本发明一优选实施例,所述请求控制单元按照预设的比例或者预设的速率阈值对来自所述被测试子***的请求数据包进行随机抽样,将抽样的请求数据包转发给所述环境子***;或者,
按照预设的比例或者预设的速率阈值转发来自所述被测试子***的与时效性强相关的请求数据包给所述环境子***。
根据本发明一优选实施例,在所述cache中各缓存项以键key-值value对的方式存储,其中key表明请求数据包和应答数据包的业务对应关系,value为应答数据包;
所述应答处理单元在所述cache中查找与请求数据包具有相同key的缓存项中的应答数据包,将查找的应答数据包发送给所述被测试子***。
根据本发明一优选实施例,所述应答处理单元,还用于待所述cache中存储有一定量的缓存项后,针对所有来自所述被测试子***的请求数据包均从所述cache中查找应答数据包发送给所述被测试子***。
由以上技术方案可以看出,本发明是在被测试子***和环境子***的通信过程中获取的性能测试数据,保证了数据丰富度和实时性与实际生产环境相当,另外,通过对请求数据包的数据量控制,以及对于未转发给环境子***的请求数据包执行的基于cache的应答,在保证实时性的同时,尽量降低对环境子***引入的额外压力。
【附图说明】
图1为本发明实施例一提供的获取性能测试数据的方法流程图;
图2为本发明实施例二提供的获取性能测试数据的装置结构图;
图3为本发明实施例提供的应用于分布式软件***的示意图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
实施例一、
在本发明实施例一提供的获取性能测试数据的方法中,在被测试子***和环境子***之间的通信过程中获取性能数据,具体方法可以如图1所示,包括以下步骤:
步骤101:预先接管被测试子***和环境子***之间的通信链路。
在本步骤中,通过预先配置转发IP和监听端口的方式,监听被测试子***和环境子***之间通信的请求数据包和应答数据包,并负责这些数据包的转发,即将来自被测试子***的请求数据包转发给环境子***,将环境子***返回的应答数据包转发给被测试子***。通常在传输层或Socket层面进行接管,具体的接管方式可以采用现有技术中任意可实现的方式,本发明并不加以限制。
步骤102:按照预设的数据量控制策略,将来自被测试子***的请求数据包有选择地转发至环境子***。
在性能测试过程中,通常被测试子***所连接的环境子***往往不能够承受由于测试的需要所带来的很大压力,该环境子***的本质要求是数据保真度高,在现实中往往是直接的生产环境,或者是搭建的一个数据齐全但性能较低的镜像环境,无论哪一种都仅允许接受较小的压力。
鉴于此,在性能测试过程中,需要控制被测试子***发往环境子***的请求数据包的数据量,具体的数据量控制策略可以为:按预设的比例或者按预设的速率阈值进行随机抽样,
另外,为了在保证给环境子***所带来压力的同时尽量保证实时性,也可以采用其他较复杂的策略,例如:按照预设的比例或按预设的速率阈值优先转发与时效性强相关的请求数据包,也就是说,依旧转发特定百分比的请求数据包,但其中优先转发的是与时效性强相关的请求数据包。所述与时效性强相关的请求数据包通常与具体的业务类型相关,可以按照业务类型的时效性要求预设转发优先级,按照该转发优先级选取转发的请求数据包。
步骤103:将环境子***返回的应答数据包转发给被测试子***的同时,存储至本链路对应的缓存(cache),对于来自被测试子***而未转发给环境子***的请求数据包,从cache中查找应答数据包发送给被测试子***。
在本步骤中将环境子***返回的应答数据包转发给被测试子***的目的是为了给被测试子***提供响应,从而接续后续处理流程和结果。另外将应答数据包存储至本链路对应的cache的目的是为了给未转发的请求数据包提供应答数据包。在cache中存储应答数据包的方式可以是键-值(key-value)对的方式,key用于表明请求数据包和应答数据包的业务对应关系,可以采用请求标识、用户标识、服务标识等,value为应答数据包。
这样可以使得cache总得缓存项保持一定的更新比率,这样一方面满足了数据时效性需求,也为时效性需求和给环境子***带来压力之间矛盾的权衡留下了进行调节的空间,即通过控制请求数据包的转发数据量可以实现这一矛盾的调节。
由于被测试子***发送给环境子***的请求数据包大部分都被拦截下来而未被转发,因此为了不给被测试子***的后续处理带来影响,需要为这些未被转发的请求数据包选择应答数据包。可以存在以下两种选择方式:
其一、在cache中查找与请求数据包匹配的缓存项,即在cache中查找与请求数据包具有相同key的缓存项中的应答数据包。这种方式的业务匹配性较高。
其二、在大多数情况下,被测试子***从环境子***获取的应答数据包仅用于参与计算和展现,而不会形成自身状态的迁移而影响后续请求数据包的处理流程和结果,鉴于性能测试中对于环境子***返回的数据的本质需求与功能测试不同,不需要严格复现生产环境中的数据时序,而是要求返回数据的整体信息量、复杂度和时效性与生产环境尽量相当,因此,可以采用效率更高的方式,即从cache中随机选取缓存项中的应答数据包。
在进行一段时间的累积后,cache中会存储有一定量的缓存项,每次性能测试cache中的数据可以持久化并供后续性能测试使用。如果被测试子***对应答数据包的实效性要求不是太敏感,可以在执行上述方法在cache中累积一定量的缓存项后,对于所有请求数据包均采用查找cache的方式返回应答数据包,这时就类似于数据回放的方式。
实施例二、
图2为本发明实施例二提供的获取性能测试数据的装置结构图,如图2所示,该装置可以包括:链路接管单元201、请求控制单元202和应答处理单元203。
链路接管单元201预先接管被测试子***和环境子***之间的通信链路。该链路接管单元201用于对转发IP和监听端口进行设置,使得请求控制单元202和应答处理单元202能够监听被测试子***和环境子***之间通信的请求数据包和应答数据包。
请求控制单元202按照预设的数据量控制策略,将来自被测试子***的请求数据包有选择地转发至环境子***。
具体的数据量控制策略可以为:按照预设的比例对来自被测试子***的请求数据包进行随机抽样,将抽样的请求数据包转发给环境子***,例如按照1%从被测试子***发往环境子***的请求数据包中进行随机抽样,也就是说,仅转发1%的请求数据包至环境子***。或者,
按照预设的比例转发来自被测试子***的与时效性强相关的请求数据包给环境子***。例如:按照预设的比例优先转发与时效性强相关的请求数据包,也就是说,依旧转发1%的请求数据包,但其中优先转发的是与时效性强相关的请求数据包。所述与时效性强相关的请求数据包通常与具体的业务类型相关,可以按照业务类型的时效性要求预设转发优先级,按照该转发优先级选取转发的请求数据包。
应答处理单元203将环境子***返回的应答数据包转发给被测试子***,并将应答数据包存储至通信链路对应的缓存cache;以及对于来自被测试子***而未被转发给环境子***的请求数据包,从cache中查找应答数据包发送给被测试子***。
在cache中各缓存项以key-value对的方式存储,其中key表明请求数据包和应答数据包的业务对应关系,value为应答数据包。相应地,应答处理单元203在cache中查找与请求数据包具有相同key的缓存项中的应答数据包,将查找的应答数据包发送给被测试子***。
除了这种方式之外,应答处理单元203也可以采用效率更高的方式,即从cache中随机选取缓存项中的应答数据包。
另外,如果被测试子***对应答数据包的时效性要求不是太敏感,应答处理单元203可以待cache中存储有一定量的缓存项后,针对所有来自被测试子***的请求数据包均从cache中查找应答数据包发送给被测试子***。
本发明上述实施例中提供的方法和装置可以应用于分布式软件***中,被测试子***和多个环境子***构成的集群分别进行通信,则在每一个环境子***和被测试子***之间均可以通过本发明实施例提供的方法和装置进行实现。此时,被测试子***和每一个环境子***之间的通信链路均存在一个cache,分别用于存储对应环境子***发送的回应数据包。
可以在被测试子***和每一个环境子***之间都设置实施例二所示的装置,也可以共用一个本发明实施例二所示的装置。
当共用一个本发明实施例二所示的装置时,如图3所示,此时获取性能测试数据的装置接管被测试子***和所有环境子***之间的通信链路,监听被测试子***和各环境子***之间通信的请求数据包和应答数据包。这种情况下,每一条通信链路均对应一个cache,被测子***与环境子***1之间的通信链路对应cache1,被测子***与环境子***2之间的通信链路对应cache2,被测子***与环境子***3之间的通信链路对应cache3。获取性能测试数据的装置将各环境子***返回的应答数据包转发给被测试子***的同时,将应答数据包存储至对应的cache:来自环境子***1的应答数据包存储至cache1,来自环境子***2的应答数据包存储至cache2,来自环境子***3的应答数据包存储至cache3。对于来自被测试子***而未被转发给环境子***的请求数据包,从对应的cache中查找应答数据包发送给被测试子***。
举个例子,在网页搜索检索端性能测试中,依赖于存放和检索网页索引库的机群返回足够丰富和复杂的检索结果数据,符合这种质量要求的数据,只有从线上生产环境或高保真数据环境中才能获得。此时,被测试子***就是网页搜索检索端,而环境子***就是用于存放和检索网页索引库的机群,这种应用就是一种分布式软件***的性能测试场景。
由以上描述可以看出,本发明提供的方法和装置具备以下优点:
1)本发明在被测试子***和环境子***的通信过程中获取的性能测试数据,相比较现有模拟周边环境子***并人工分析构造环境子***返回的数据的方式,数据丰富度和实时性得到了提高。
2)由于本发明的数据获取和性能测试是一个过程,而现有预先录制周边的环境子***返回的数据并在性能测试执行时进行回访的方式是两个过程,首先在测试效率和测试时效性上得到了提高,与此同时,本发明有效地控制了对环境资源所引入的额外压力。
3)本发明无需任何搭建任何模拟环境,在实现成本上得到了有效的节约。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (10)

1.一种获取性能测试数据的方法,其特征在于,该方法包括:
S1、预先接管被测试子***和环境子***之间的通信链路;
S2、按照预设的数据量控制策略,将来自所述被测试子***的请求数据包有选择地转发至所述环境子***;
S3、将所述环境子***返回的应答数据包转发给所述被测试子***,并将所述应答数据包存储至所述通信链路对应的缓存cache;以及对于来自所述被测试子***而未被转发给所述环境子***的请求数据包,从所述cache中查找应答数据包发送给所述被测试子***。
2.根据权利要求1所述的方法,其特征在于,所述步骤S1具体包括:
通过预先配置转发IP和监听端口的方式,监听所述被测试子***和环境子***之间通信的请求数据包和应答数据包。
3.根据权利要求1所述的方法,其特征在于,所述步骤S2具体包括:
按照预设的比例或者预设的速率阈值对来自所述被测试子***的请求数据包进行随机抽样,将抽样的请求数据包转发给所述环境子***;或者,
按照预设的比例或预设的速率阈值转发来自所述被测试子***的与时效性强相关的请求数据包给所述环境子***。
4.根据权利要求1所述的方法,其特征在于,在所述cache中各缓存项以键key-值value对的方式存储,其中key表明请求数据包和应答数据包的业务对应关系,value为应答数据包;
从所述cache中查找应答数据包发送给所述被测试子***包括:在所述cache中查找与请求数据包具有相同key的缓存项中的应答数据包,将查找的应答数据包发送给所述被测试子***。
5.根据权利要求1所述的方法,其特征在于,该方法还包括:
待所述cache中存储有一定量的缓存项后,针对所有来自所述被测试子***的请求数据包均从所述cache中查找应答数据包发送给所述被测试子***。
6.一种获取性能测试数据的装置,其特征在于,该装置包括:
链路接管单元,用于预先接管被测试子***和环境子***之间的通信链路;
请求控制单元,用于按照预设的数据量控制策略,将来自所述被测试子***的请求数据包有选择地转发至所述环境子***;
应答处理单元,用于将所述环境子***返回的应答数据包转发给所述被测试子***,并将所述应答数据包存储至所述通信链路对应的缓存cache;以及对于来自所述被测试子***而未被转发给所述环境子***的请求数据包,从所述cache中查找应答数据包发送给所述被测试子***。
7.根据权利要求6所述的装置,其特征在于,所述链路接管单元通过预先配置转发IP和监听端口的方式,以使所述请求控制单元监听来自所述被测子***的请求数据包以及所述应答处理单元监听所述环境子***发送的应答数据包。
8.根据权利要求6所述的装置,其特征在于,所述请求控制单元按照预设的比例或者预设的速率阈值对来自所述被测试子***的请求数据包进行随机抽样,将抽样的请求数据包转发给所述环境子***;或者,
按照预设的比例或者预设的速率阈值转发来自所述被测试子***的与时效性强相关的请求数据包给所述环境子***。
9.根据权利要求6所述的装置,其特征在于,在所述cache中各缓存项以键key-值value对的方式存储,其中key表明请求数据包和应答数据包的业务对应关系,value为应答数据包;
所述应答处理单元在所述cache中查找与请求数据包具有相同key的缓存项中的应答数据包,将查找的应答数据包发送给所述被测试子***。
10.根据权利要求6所述的装置,其特征在于,所述应答处理单元,还用于待所述cache中存储有一定量的缓存项后,针对所有来自所述被测试子***的请求数据包均从所述cache中查找应答数据包发送给所述被测试子***。
CN201210105841.XA 2012-04-11 2012-04-11 一种获取性能测试数据的方法和装置 Active CN103378989B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210105841.XA CN103378989B (zh) 2012-04-11 2012-04-11 一种获取性能测试数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210105841.XA CN103378989B (zh) 2012-04-11 2012-04-11 一种获取性能测试数据的方法和装置

Publications (2)

Publication Number Publication Date
CN103378989A CN103378989A (zh) 2013-10-30
CN103378989B true CN103378989B (zh) 2016-08-17

Family

ID=49463570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210105841.XA Active CN103378989B (zh) 2012-04-11 2012-04-11 一种获取性能测试数据的方法和装置

Country Status (1)

Country Link
CN (1) CN103378989B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105515883A (zh) * 2014-09-22 2016-04-20 阿里巴巴集团控股有限公司 一种测试方法及***
CN106445798B (zh) * 2015-08-04 2019-11-08 阿里巴巴集团控股有限公司 一种数据处理方法和设备
CN109583688A (zh) * 2018-10-16 2019-04-05 深圳壹账通智能科技有限公司 性能测试方法、装置、计算机设备和存储介质
CN111859831A (zh) * 2020-07-16 2020-10-30 Oppo广东移动通信有限公司 芯片验证方法和***,及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101275987A (zh) * 2008-04-28 2008-10-01 深圳和而泰智能控制股份有限公司 一种设备测试***及方法
CN102075384A (zh) * 2010-12-20 2011-05-25 创新科存储技术有限公司 一种性能测试***及方法
CN102387082A (zh) * 2011-11-25 2012-03-21 西安电子科技大学 基于流分类的分组流量控制***及控制方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100800958B1 (ko) * 2001-10-04 2008-02-04 주식회사 케이티 토큰 버켓을 이용한 트래픽 플로우 제어 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101275987A (zh) * 2008-04-28 2008-10-01 深圳和而泰智能控制股份有限公司 一种设备测试***及方法
CN102075384A (zh) * 2010-12-20 2011-05-25 创新科存储技术有限公司 一种性能测试***及方法
CN102387082A (zh) * 2011-11-25 2012-03-21 西安电子科技大学 基于流分类的分组流量控制***及控制方法

Also Published As

Publication number Publication date
CN103378989A (zh) 2013-10-30

Similar Documents

Publication Publication Date Title
EP3058690B1 (en) System and method for creating a distributed transaction manager supporting repeatable read isolation level in a mpp database
CN106131213B (zh) 一种服务管理方法和***
CN103392321B (zh) 用于基于策略集成横向部署的wan优化设备的***和方法
CN103765851B (zh) 用于到任何服务的透明的层2重定向的***和方法
US10291704B2 (en) Networked solutions integration using a cloud business object broker
US8676951B2 (en) Traffic reduction method for distributed key-value store
US9705800B2 (en) Load distribution in data networks
CN102763393B (zh) 用于在多核***中管理跨越核的rtsp的端口的***和方法
CN106649630A (zh) 数据查询方法及装置
US20160042014A1 (en) Distributed database in software driven networks
CN102771086B (zh) 用于设备的虚拟服务器的侦听策略的***和方法
WO2017067117A1 (zh) 数据查询方法和装置
CN103440301B (zh) 一种数据多副本混合存储方法及***
CN102217273A (zh) 用于应用流畅性策略的***和方法
CN103378989B (zh) 一种获取性能测试数据的方法和装置
CN104348679A (zh) 一种分桶测试的方法、装置和***
WO2019210580A1 (zh) 访问请求处理方法、装置、计算机设备和存储介质
CN102402519A (zh) 搜索方法、搜索结果显示方法、搜索服务器及客户端
CN104408159A (zh) 一种数据关联、加载、查询方法及装置
CN109800336A (zh) 基于键值对存储***的表格实现方法、装置、设备和介质
CN102779160B (zh) 海量数据信息索引***和索引构建方法
JP2013015991A (ja) 情報処理装置、サーバ選択方法、及びプログラム
CN111258978A (zh) 一种数据存储的方法
CN108737527A (zh) 一种适用于平台大规模用户访问方法及***
CN107491463A (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