服务器压力测试工具0——需求与设计

简介

目前网上有各种服务器的压力测试工具,大多针对于支持http协议的web服务器。现在需要实现一个压力测试工具,能够实现对各种连接协议的服务器进行测试,包括但不限于http,tcp,websocket协议。

功能需求

1.能够实时获取服务器对客户端请求的最大最小以及平均响应时间,百分之九十响应时间,超时任务数,请求错误数,错误率和实时的QPS,并同步监控服务器的性能信息。
2.可以实现对不同类型连接协议进行测试,包括但不限于HTTP,TCP,WEBSOCKET连接。
3.实现对不同的业务场景进行单一测试以及组合测试。
4.因为可能存在一台压力机性能问题,所以需要实现可控制多台压力机同时对服务器进行测试,同时开启,同时停止。并且控制端能够获取当前所有压力机的运行情况与测试数据。
5.能够控制服务器在指定的QPS运行,也能够测试服务器的极限QPS。
6.获取的数据存储到数据库。
7.能够以图表的形式实时展示数据。

设计

压力端设计

工具压力端主要分为两个模块,控制器RobotCtr,压力生成器RobotSrv,以及业务模块biz。
控制器通过发送http请求控制压力机器人的start,stop和status。压力机器人则开http端口进行监听执行相应动作,可以持续向被测服务器产生大量请求进行压测,并实现对压力的控制和对数据的采集上报。最终数据上传至数据库。
服务器压力测试工具0——需求与设计_第1张图片

数据收集展示端设计

在被测的服务器上部署相应的性能采集工具,实时的收集服务器的各类性能信息,并上传至数据库。
数据展示则提供一个数据展示的web服务器,能够实时的从服务器中拉取当前的测试数据,以及服务器性能情况等数据。
服务器压力测试工具0——需求与设计_第2张图片

最终结果展示

部分效果最终如下图所示。
服务器压力测试工具0——需求与设计_第3张图片
服务器压力测试工具0——需求与设计_第4张图片
服务器压力测试工具0——需求与设计_第5张图片
服务器压力测试工具0——需求与设计_第6张图片

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