本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何测试 Java DBMS 应用程序的性能

发布于2025-01-07 22:04     阅读(306)     评论(0)     点赞(17)     收藏(3)


以下是我的情况:

我有一个 Java 应用程序,它从数据库 D1 的表 T1 读取数据,处理数据并将其放入另一个数据库 D2 的另一个表 T2 中。这是实时发生的,即,当在表 T1 中插入或更新记录时,应用程序将选择数据、处理数据并将其推送到目标表。我希望使用测试(最好是 JUnit)和/或性能框架来监控此应用程序的性能。在我的测试用例中,我希望有以下内容

  • 在数据库 D1 的表 T1 上以固定时间间隔插入和更新固定数量的记录。
  • 在固定时间之后,检查数据库 D2 的 T2 中存在的记录数或查找特定记录的存在。

我希望创建的测试应该是

  • 数据库无关
  • 提供可以显示趋势并可使用 Jenkins 等 CI 工具进行配置的结果

所以,我的问题是,测试这种情况的最佳方法是什么? 是否有可用的工具可以帮助我实现这一点?


解决方案


数据库无关

为了实现这一点,我建议使用最简单的 SQL 和一些低级 JDBC 抽象层:

数据库实用工具

Commons DbUtils 库是一小组类,旨在简化 JDBC 的使用。JDBC 资源清理代码是单调乏味且容易出错的工作,因此这些类将所有清理任务从您的代码中抽象出来,让您专注于您真正想用 JDBC 做的事情:查询和更新数据。

迈巴提斯

MyBatis 是一流的持久性框架,支持自定义 SQL、存储过程和高级映射。MyBatis 消除了几乎所有的 JDBC 代码以及手动设置参数和检索结果的麻烦。MyBatis 可以使用简单的 XML 或注释进行配置,并将原语、Map 接口和 Java POJO(普通旧式 Java 对象)映射到数据库记录。

两者都能帮你解决问题。只要你足够注意细节,你就能提供足够灵活的解决方案,并测试尽可能多的数据库。

提供可以显示趋势并可使用 Jenkins 等 CI 工具进行配置的结果

定义几个KPI,并确保您可以定期获取所有值。例如,您可以测量吞吐量(每秒记录数)。定期导出数据(例如以 CSV 或属性的形式)并使用PlotPlugin进行可视化:

在此处输入图片描述

您还可以查看相关问题:如何在 Jenkins 矩阵项目中绘制基准数据

适当的测试

请确保您的测试策略明确,并且不会错过任何内容:

  1. 负载测试
  2. 压力测试


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/694779/14b8f662bcf2f4923b06/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

17 0
收藏该文
已收藏

评论内容:(最多支持255个字符)