服务器压力测试工具1——压力端模块设计

简介

压力端主要负责压力的产生,以及对服务器响应时间进行统计计算。

设计思路

主要设计为几个模块,包括biz(业务逻辑), config(配置文件),common(全局数据),robotctr(机器人控制),data(数据采样以及处理),robotsrv(压力机器人)以及一个日志模块。

各模块作用

RobotCtr模块

  1. start请求:遍历配置文件中给出的压测机URL列表,像每个压力机发送start请求。发送完毕后判断所有压力机是否开启成功,如果有压力机没有成功启动则向关闭所有压力机,测试失败。
  2. stop请求:两种情况下会发送stop请求,当start所有压力机失败时和捕获到系统信号ctrl+C时(也就是RobotCtr想要主动中止测试时)。在这两种情况下会向压测机URL列表中所有URL发送stop请求。
  3. status请求:获取压力测试信息请求,以10秒每次的速度向所有压力机发送status请求获取压测情况。并且计算汇总数据记录在日志文件中。
    RobotSrv模块
    1.robot:
    压力生成的主要模块,负责调用业务代码,定义接口给业务实现。以及机器人的初始化和管理。
    服务器压力测试工具1——压力端模块设计_第1张图片

2.ctr:
压力机器人的控制器,负责控制机器人按照指定的QPS执行压测任务。
服务器压力测试工具1——压力端模块设计_第2张图片
Config模块
配置文件模块,压力端的配置文件只包括RobotConf,其中主要包括测试机器人相关的配置项设置(机器人数量,机器人测试时间,测试ID,机器人开启速率,被测服务器地址等等),以及日志路径,所有压测机URL等。

Data模块
该模块主要负责数据相关的处理,包括数据的采集,存储与上传。
服务器压力测试工具1——压力端模块设计_第3张图片

Tlog模块
日志模块,负责记录测试中的机器人运行相关信息以及测试数据信息,主要分为三个日志。
服务器压力测试工具1——压力端模块设计_第4张图片

Biz模块
业务模块,需要实现各类场景,每个场景需要实现RobotScene要求的接口函数。该模块在向服务器发送请求的时候开始采样,收到回包后结束采样,并通过回包设置采样结果。

各模块之间关系

服务器压力测试工具1——压力端模块设计_第5张图片

你可能感兴趣的:(压力测试)