Java SDK 性能测试方案

本文探讨了在选择SDK性能压测时,代码模拟(如使用CountDownLatch)和工具压测(如LoadRunner和JMeter)的优缺点。通过实际部署对比实验,作者推荐JMeter作为开源且易于使用的解决方案,尤其适合对性能数据要求不高但希望成本较低的情况。
摘要由CSDN通过智能技术生成

方案选择

对于 SDK 进行性能压测,通过查询相关材料,无外乎两种方式:代码模拟并发、工具压测。

代码模拟

代码模拟是压测最方便的方式,编写 Java 代码,通过 CountDownLatch 管理线程池,来实现并发压测的效果。

具体实现方式可参考以下文章:
基于CountDownLatch和CyclicBarrier编写高并发测试工具类
Java代码模拟并发测试工具——用代码的方式模拟并发

但这种方式也存在不少问题:

  • 对线程池理解的不够深刻,设计的测试代码存在难以理解的异常
  • 没有合适的工具采集压测过程中产生的性能数据

如果客户对性能数据要求比较宽松,可以使用该方式给出简单的结果,但该种方式显然无法提供专业级别的测试报告

工具压测

市面上进行性能压测的工具非常多,使用最普遍的是:LoadRunner、Jmeter。

一般来说,LoadRunner 专业性更强,测试报告数据更为准确,但 LoadRunner 也存在不少缺点:

  • 属于商业级别的压测工具,需要付费使用
  • 安装包过于庞大,LR 11 安装包 3.1 GB
  • 脚本编写成本相对较高
  • 对压测机的配置要求较高

Jmeter 属于开源软件,最新版本已更新至 v5.4.1(需要 JDK 8+),属于较为成熟的压测工具。具备以下优点:

  • 属于开源软件,无需付费
  • 使用人群较为广泛,测试结果认可程度高
  • 安装包较小,不足 60 MB
  • 操作简单,学习成本低,脚本设计方便
  • 5.0 以后的版本,对报告功能进行增强(参阅:jmeter 5.0版本更新说明
  • 方便定制并进行二次开发

缺点:

  • 不适合对复杂系统进行压测
  • 脚本维护工作量较大
  • 结果分析方面没有 LR 强大

针对 Jmeter 与 LR 的对比,可参阅:性能测试工具 loadrunner 和 jmeter 大 PK

方案设计

由于 SDK 无法单独存在,需要进行对比验证。

后台开发同事配合,先后部署两套服务,一套完全不使用 Java SDK、Java A/B Testing SDK,另外一套服务使用 Java SDK、Java A/B Testing SDK。

设计 Jmeter 脚本,发起相同的 http 请求,分别验证在不同场景(并发)下,两套服务的性能占用情况。

使用 Jmeter 的聚合报告采集压测过程中网络请求的响应时间、吞吐量、错误率等,使用开源性能监测工具 nmon 监测压测期间服务器的性能(CPU、内存 等)。

nmon 使用方法参阅:nmon下载及使用方法(linux资源监控)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值