构建企业级自动化压力测试平台

来源:互联网 发布:基于hadoop的数据分析 编辑:程序博客网 时间:2024/05/17 04:45

企业要求软件交付的时间越来越短,用户对软件产品体验的要求越来越高,软件性能作为决定用户体验的关键要素,性能测试这道坎必须坚持不懈,不能放松。

如果还是采用传统的性能测试方式,每次版本迭代由测试工程师准备环境和数据、开发脚本,进行测试,至少要花费好几天甚至好几周的功夫,效率上明显是跟不上的。采用自动化的压力测试策略,将测试环境和数据准备工作自动化,每次只对增量功能由测试工程师进行脚本开发和测试,存量功能由测试平台自动进行测试,能够显著提高测试效率和质量。

构建企业级自动化压力测试平台,一方面能够减少测试工程师花费在测试准备和重复性工作上的时间,另一方面能让测试工程师从繁复的低价值工作中解放出来,专注于发现性能问题。

如何构建企业级自动化压力测试平台呢?

自动化压力测试平台至少需要包含3个部件:脚本开发客户端,自动调度和管理服务端,大数据统计分析端。

脚本开发客户端:快速完成可复用、兼容和扩展性强的脚本开发。

自动调度和管理服务端:管理测试脚本和测试任务,管理负载机和测试结果,自动生成测试报告

大数据统计分析端:聚合所有测试相关数据,对测试结果进行图表分析和穿透查询分析。

如何选择脚本开发客户端?

脚本开发客户端有很多商业或开源的工具可供选择,如Loadrunner、Jmeter、Gatling、Grinder、Locust、HyperPacer等,具体选择哪一个可以从以下方面考虑:

  • 灵活强大的脚本编程能力:具备丰富和函数库和数据处理组件,具备强大的扩展开发能力,具备灵活调用外部组件库的能力。
  • 指标化的结果数据转储能力:能够将测试结果以指标化的数据格式转储到大数据统计分析系统。
  • 具备脚本后端执行调度能力:能在服务器上通过命令行或后端进程的方式解析和执行脚本。

自动调度和管理服务端,一般都需要自行开发,商业产品很昂贵,扩展应用难度高,开源的产品几乎没有。一般来说,自动调度和管理服务端至少要具有以下功能:

  • 脚本管理功能:能够将客户端开发的脚本进行统一存储和管理。
  • 任务管理功能:能够新建测试任务,支持立即执行和按计划任务执行,支持通过接口调度触发执行。
  • 负载机管理:执行负载机的增删改查和负载能力配置。
  • 测试报告管理:能够自动通用生成测试报告。

由于压力测试过程中会产生大量的测试统计数据,自行开发统计分析平台难度较高,幸运的是目前有很多开源的产品可供选择,比如ELK Stack。选择大数据统计分析端,可以从以下方面考虑:

  • 强大的数据汇总和聚合分析能力
  • 多样化的图表展示能力

HyperPacer自动化压力测试平台实现架构

0 0
原创粉丝点击