[发明专利]一种获取性能测试数据的方法和装置有效
申请号: | 201210105841.X | 申请日: | 2012-04-11 |
公开(公告)号: | CN103378989A | 公开(公告)日: | 2013-10-30 |
发明(设计)人: | 赖峥嵘;金敬亭;胡星 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | H04L12/26 | 分类号: | H04L12/26 |
代理公司: | 北京鸿德海业知识产权代理事务所(普通合伙) 11412 | 代理人: | 袁媛 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 获取 性能 测试数据 方法 装置 | ||
【技术领域】
本发明涉及计算机技术领域,特别涉及一种获取性能测试数据的方法和装置。
【背景技术】
在分布式软件系统中,一个模块或者子系统除了有直接的业务请求输入源之外,往往还需要在处理这些请求的过程中间与周围的模块或子系统进行通信,获取相关的数据和信息,以完成对于请求的计算和处理。在针对这样的模块或子系统进行性能测试时,需要在测试中获得与生产环境中数据量、复杂度和丰富度相当的周边返回的数据。也就是说,被测试子系统和环境子系统之间会进行通信,性能测试需要获取两者之间通信的数据。
现有获取性能测试数据的方式主要包括两种:
第一种方式:模拟周边的环境子系统并人工分析构造环境子系统返回的数据。但是人工分析构造的环境子系统返回的数据,其数据丰富度和实时性上往往和生产环境中交互的数据相差较大,从而使得性能测试数据与生产环境中的实际运行结果存在明显差异,影响测试结果的准确度。
第二种方式:预先录制周边的环境子系统返回的数据,然后在性能测试执行时进行回放。这种方式由于受到对获取数据的环境子系统所引入额外压力的限制,决定了数据录制阶段往往耗时较长,另外,虽然数据丰富度上可以做到与生产环境相当,但是在时效性上存在缺陷。
【发明内容】
有鉴于此,本发明提供了一种获取性能测试数据的方法和装置,以便于提高从周边环境所获取的性能测试数据的丰富度和实时性。
具体技术方案如下:
一种获取性能测试数据的方法,该方法包括:
S1、预先接管被测试子系统和环境子系统之间的通信链路;
S2、按照预设的数据量控制策略,将来自所述被测试子系统的请求数据包有选择地转发至所述环境子系统;
S3、将所述环境子系统返回的应答数据包转发给所述被测试子系统,并将所述应答数据包存储至所述通信链路对应的缓存cache;以及对于来自所述被测试子系统而未被转发给所述环境子系统的请求数据包,从所述cache中查找应答数据包发送给所述被测试子系统。
根据本发明一优选实施例,所述步骤S1具体包括:
通过预先配置转发IP和监听端口的方式,监听所述被测试子系统和环境子系统之间通信的请求数据包和应答数据包。
根据本发明一优选实施例,所述步骤S2具体包括:
按照预设的比例或者预设的速率阈值对来自所述被测试子系统的请求数据包进行随机抽样,将抽样的请求数据包转发给所述环境子系统;或者,
按照预设的比例或预设的速率阈值转发来自所述被测试子系统的与时效性强相关的请求数据包给所述环境子系统。
根据本发明一优选实施例,在所述cache中各缓存项以键key-值value对的方式存储,其中key表明请求数据包和应答数据包的业务对应关系,value为应答数据包;
从所述cache中查找应答数据包发送给所述被测试子系统包括:在所述cache中查找与请求数据包具有相同key的缓存项中的应答数据包,将查找的应答数据包发送给所述被测试子系统。
根据本发明一优选实施例,该方法还包括:
待所述cache中存储有一定量的缓存项后,针对所有来自所述被测试子系统的请求数据包均从所述cache中查找应答数据包发送给所述被测试子系统。
一种获取性能测试数据的装置,该装置包括:
链路接管单元,用于预先接管被测试子系统和环境子系统之间的通信链路;
请求控制单元,用于按照预设的数据量控制策略,将来自所述被测试子系统的请求数据包有选择地转发至所述环境子系统;
应答处理单元,用于将所述环境子系统返回的应答数据包转发给所述被测试子系统,并将所述应答数据包存储至所述通信链路对应的缓存cache;以及对于来自所述被测试子系统而未被转发给所述环境子系统的请求数据包,从所述cache中查找应答数据包发送给所述被测试子系统。
根据本发明一优选实施例,所述链路接管单元通过预先配置转发IP和监听端口的方式,以使所述请求控制单元监听来自所述被测子系统的请求数据包以及所述应答处理单元监听所述环境子系统发送的应答数据包。
根据本发明一优选实施例,所述请求控制单元按照预设的比例或者预设的速率阈值对来自所述被测试子系统的请求数据包进行随机抽样,将抽样的请求数据包转发给所述环境子系统;或者,
按照预设的比例或者预设的速率阈值转发来自所述被测试子系统的与时效性强相关的请求数据包给所述环境子系统。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210105841.X/2.html,转载请声明来源钻瓜专利网。