作者 | 赵里京

Yuntestin 以云架构为核心,基于 Jmeter 作为性能引擎的轻量级压测平台。它集脚本生成、修改、多执行机并发、报告展示以及结果对比为一体,是一个能快速低成本实施压测,帮助用户分析性能瓶颈的测试平台。降低了入门使用成本,让开发和测试都可以方便的执行性能压测。

系统架构

  1. 分布式集群压测,压力可观,总样本数 = 线程数 * 循环次数 * 执行机总数。
  2. 云架构设计,为实现多用户同时工作,且相互独立。

在线编辑压测脚本

  1. 获取参数,对线上已有接口可通过输入接口名查询获取线上参数值,对查询结果集进行处理,随机取参数最多的一组。点击查询后,可自动补齐下面的域名路径等信息。
  2. 分布试运行,可按需选择施压机集群,提交后便可生成测试任务。
  3. 可下载在线编辑好的 jmx,在本地用 jmeter 打开并执行。 任务如下图

上传压测脚本

可将本地编辑好的脚本上传至服务器生成任务并执行。

修改执行机 hosts

修改施压机群所在服务器的 hosts,指向您的待测系统,进行压测,支持线上线下压测。

结果对比

为了敏捷开发流,做到小步快走,快速试错,适应需求变化频繁的情况。实现了可将每一个任务或者一个任务的多次执行结果进行直观的比较,来验证优化效果。这需要结果数据的收集,这方面默认的 Jmeter 不能满足需求,自己对 jmeter 进行了二次开发,捕获 jmeter 的每一次关键结果,再进行入库保存。
下图为结果对比报表与曲线图:

测试报告

最后平台也会帮助您生成 jmeter 的原生性能测试报告

任务重复使用

每一个任务都可对其进行修改再执行操作,使得一个任务可以一直使用下去无需再新建重复任务。

未来可提升的地方

1、机器监控数据(如 cpu 和内存等)收集:
目前平台暂未支持此功能,可以通过 Agent 程序运行在受压机上,定时读取/proc 目录中的一些系统参数或者通过执行 Linux 命令来收集数据统计得来,并直接上传到控制中心。
2、将控制中心从 wf 层脱离。
3、将获取的线上参数自动压测,无需人工参与,产生报告并将结果发送邮件。


↙↙↙阅读原文可查看相关链接,并与作者交流