redis-JavaSDK压力测试方法及装置制造方法及图纸

技术编号:38718220 阅读:7 留言:0更新日期:2023-09-08 15:00
本申请提供了一种redis

【技术实现步骤摘要】
redis

JavaSDK压力测试方法及装置


[0001]本申请涉及压力测试领域,可应用于金融领域和其他领域,尤指一种redis

JavaSDK压力测试方法及装置。

技术介绍

[0002]企业在上线支持redis命令的产品时,需要对该产品进行多方面的测试,但常用的压力测试工具往往功能零散,不能覆盖足够多的指标和场景,例如redis

benchmark不支持监控功能,无法实时观测压测数据、JMeter只是发送报文请求并没有结合redis

JavaSDK,而调用方都是通过redis

JavaSDK对redis进行操作,所以这样的压力测试工具往往并不能得出真实的数据,并且JMeter没有限流功能,无法进行稳定性测试,基于以上背景总结了现有压测工具有以下缺点:1.现有压力测试工具功能零散,不能覆盖足够多的指标和场景。2.现有压力测试工具不能支持从redis

JavaSDK开始执行命令。调用方无法得到真实的压测数据。

技术实现思路

[0003]本申请目的在于提供一种redis

JavaSDK压力测试方法及装置,以覆盖目前的大多数压力测试所需要的场景和指标,对支持redis命令的产品进行全方位的测试。
[0004]为达上述目的,本申请所提供的redis

JavaSDK压力测试方法具体包含:根据用户提供的配置参数和预存的配置项生成配置文件;根据所述配置文件中线程参数设定对应的线程执行数据,以及根据所述配置文件中的客户端对象和命令集对象于预存的多个客户端信息和多种命令信息中获取对应的客户端信息和命令信息;根据所述线程执行数据、所述客户端信息和所述命令信息向执行器提供对应的调用接口,由执行器通过execute方法执行对应的redis

JavaSDK压力测试。
[0005]在上述redis

JavaSDK压力测试方法中,可选的,根据所述配置文件中的客户端对象和命令集对象于预存的多个客户端信息和多种命令信息中获取对应的客户端信息和命令信息包含:根据所述配置文件中client下sdk配置项,于预存的多个客户端信息中调取执行命令的对应的客户端信息;根据所述配置文件中key下commands配置项,于预存的多个命令信息中调取待执行的命令信息。
[0006]在上述redis

JavaSDK压力测试方法中,可选的,所述执行器通过execute方法执行对应的redis

JavaSDK压力测试包含:所述执行器通过execute方法根据所述调用接口调用选择器中get方法获得所述客户端信息和所述命令信息;根据所述客户端信息和所述命令信息按所述线程执行数据对应的线程数通过反射的方式执行对应的redis

JavaSDK压力测试。
[0007]在上述redis

JavaSDK压力测试方法中,可选的,所述执行器通过execute方法执行对应的redis

JavaSDK压力测试之前包含:根据所述配置文件获得限流阈值,根据所述限流阈值对所述执行器的测试频率进行限流。
[0008]在上述redis

JavaSDK压力测试方法中,可选的,根据所述限流阈值对所述执行器的测试频率进行限流包含:根据所述限流阈值通过令牌桶算法按对应速率的令牌;通过令牌维持所述执行器内执行线程执行对应的redis

JavaSDK压力测试。
[0009]在上述redis

JavaSDK压力测试方法中,可选的,所述执行器通过execute方法执行对应的redis

JavaSDK压力测试之后包含:统计所述执行器通过execute方法执行对应的redis

JavaSDK压力测试的测试数量获得统计结果,将统计结果提供至预定地址。
[0010]在上述redis

JavaSDK压力测试方法中,可选的,所述执行器通过execute方法执行对应的redis

JavaSDK压力测试还包含:根据所述配置文件中的key配置项和value配置项获得指定长度;采用ThreadLocalRandom来生成随机数,通过TheadLocalRandom内部Map中key存储当前线程ID,value存储当前seed;以及,利用StringBuilder来拼接字符串,且所述字符串长度小于所述指定长度时,向系统申请资源所带来消耗。
[0011]本申请还提供一种redis

JavaSDK压力测试装置,所述装置包含配置模块、线程工厂、数据库、选择器和执行器;所述配置模块用于根据用户提供的配置参数和预存的配置项生成配置文件;所述线程工厂用于根据所述配置文件中线程参数设定对应的线程执行数据;所述数据库用于预存多个客户端信息和多种命令信息;所述选择器分别与所述线程工厂和所述数据库相连,用于根据所述配置文件中的客户端对象和命令集对象于预存的多个客户端信息和多种命令信息中获取对应的客户端信息和命令信息,并根据所述线程执行数据、所述客户端信息和所述命令信息向执行器提供对应的调用接口;所述执行器与所述选择器相连,用于根据所述调用接口调用客户端信息、命令信息和所述线程执行数据,通过execute方法执行对应的redis

JavaSDK压力测试。
[0012]本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法。
[0013]本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述方法的计算机程序。
[0014]本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述方法的步骤。
[0015]本申请的有益技术效果在于:可以对支持redis命令的产品进行全方位的测试,在功能拓展性上也有良好的表现。
附图说明
[0016]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
[0017]图1为本申请一实施例所提供的redis

JavaSDK压力测试方法的流程示意图;
[0018]图2为本申请一实施例所提供的execute方法执行流程示意图;
[0019]图3为本申请一实施例所提供的限流流程示意图;
[0020]图4为本申请一实施例所提供的redis

JavaSDK压力测试装置的结构示意图;
[0021]图5为本申请一实施例所提供的redis

JavaSDK压力测试装置的应用流程示意图;
[0022]图6为本申请本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种redis

JavaSDK压力测试方法,其特征在于,所述方法包含:根据用户提供的配置参数和预存的配置项生成配置文件;根据所述配置文件中线程参数设定对应的线程执行数据,以及根据所述配置文件中的客户端对象和命令集对象于预存的多个客户端信息和多种命令信息中获取对应的客户端信息和命令信息;根据所述线程执行数据、所述客户端信息和所述命令信息向执行器提供对应的调用接口,由执行器通过execute方法执行对应的redis

JavaSDK压力测试。2.根据权利要求1所述的redis

JavaSDK压力测试方法,其特征在于,根据所述配置文件中的客户端对象和命令集对象于预存的多个客户端信息和多种命令信息中获取对应的客户端信息和命令信息包含:根据所述配置文件中client下sdk配置项,于预存的多个客户端信息中调取执行命令的对应的客户端信息;根据所述配置文件中key下commands配置项,于预存的多个命令信息中调取待执行的命令信息。3.根据权利要求1所述的redis

JavaSDK压力测试方法,其特征在于,所述执行器通过execute方法执行对应的redis

JavaSDK压力测试包含:所述执行器通过execute方法根据所述调用接口调用选择器中get方法获得所述客户端信息和所述命令信息;根据所述客户端信息和所述命令信息按所述线程执行数据对应的线程数通过反射的方式执行对应的redis

JavaSDK压力测试。4.根据权利要求1所述的redis

JavaSDK压力测试方法,其特征在于,所述执行器通过execute方法执行对应的redis

JavaSDK压力测试之前包含:根据所述配置文件获得限流阈值,根据所述限流阈值对所述执行器的测试频率进行限流。5.根据权利要求4所述的redis

JavaSDK压力测试方法,其特征在于,根据所述限流阈值对所述执行器的测试频率进行限流包含:根据所述限流阈值通过令牌桶算法按对应速率的令牌;通过令牌维持所述执行器内执行线程执行对应的redis

JavaSDK压力测试。6.根据权利要求1所述的redis

...

【专利技术属性】
技术研发人员:陈愿
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1