性能参数化大文件处理设想

本篇是个初步设想,mark一下,几次大促和书香节压测发现处理参数化时弊端挺多,想改进一下。现在还得以项目为主,搞完书香节压测我就把它完整实现

性能测试一个关键环节是压测参数化数据处理~,电商大促保障又或者新系统上线,系统性能评估、演练都需要给系统比较大的压力(参数化文件或者参数化报文至少上G或者10G的文本)
对于只能使用一次的数据,之前的做法是将数据分块,分别发送到压力机器上(前面的文章有一个windows之间文件分发的案例就是做这个用的)。

  • 优势
    • 不需要复杂的工具支持,直接使用文本工具就能够处理,比如可以在linux下直接借助split命令将文件按行数切分(只是一个列子,需求可能是多样的)
    • 对于小规模的测试快速,易上手
  • 劣势
    • 更换数据,需要重复执行(筛选数据,切割文件、分发文件)
    • 手工处理出错概率比较大
    • 大数据文件处理废时
    • 压力机器数量较多时,也比较废时

设想解决方案

1、不处理文件,将大文件分别copy到各个压力机上,使用p2p技术,增加服务下载文件的速度,然后在每个服务器上按位置读取文件

  • 不用处理文件,直接将文件上传到各个服务器上,但是这个需要相应客户端的支持(局域网可以局域网管理工具)
  • 在现有的工具中比如jmeter、lr中使用按位置读取文件,需要写插件

2、本地将文件处理分块,然后分发到各个服务

  • 可以借助linux切割文件
  • 程序实现读写文件处理逻辑

不管用哪种方式处理,都必须有源文件获取过程,文件上传过程~

计划

先采用第二种方案做

大概需要包含一下内容:

  • 源数据采集配置

    • 数据来源:数据库、文件系统、日志系统
    • 数据来源配置:
      • 数据库:数据库类型、ip、user、passwd、database
      • 文件系统:ip、user、passwd、path
      • 日志系统:ip、user、passwd、path
    • 筛选规则
      • 语句或者正则
  • 文件生成

    • 与采集配置是1:n关系
  • 数据分割
    • 使用java实现:使用消费者生产者的模式进行多线程读和多线程写
  • 服务器维护
    • 支持分组
    • 支持连续快捷选择
  • 分发文件到压力机
    • linux,可以简化用包装命令实现
    • windows之间的文件分发,使用pscp可以完成
    • 传输文件的完整性可以使用文件的md5校验

猜你喜欢

转载自blog.csdn.net/yue530tomtom/article/details/79431486
今日推荐