以下是我的情景:
我有一个java应用程序,它从数据库D1的表T1中读取数据,处理它并将其放入另一个数据库D2的另一个表T2中。这是实时发生的,即,当在表T1中插入或更新记录时,应用程序将挑选数据,处理数据并将其推送到目标表。我希望使用测试(最好是JUnit)和/或性能框架来监控这个应用程序的性能。在我的测试用例中,我希望有以下内容
我想要创建的测试应该是
所以,我的问题是,测试这种情况的最佳方法是什么?有没有可用的工具可以帮助我实现这个目标?
答案 0 :(得分:1)
数据库不可知
为了实现这一点,我建议使用最简单的SQL和一些低级JDBC抽象层:
Commons DbUtils库是一小组专门设计的类 更容易使用JDBC。 JDBC资源清理代码是平凡的,错误 倾向于工作,所以这些类抽象出所有的清理任务 你的代码让你知道你真正想用JDBC做什么 第一位:查询和更新数据。
MyBatis是一个支持自定义的第一类持久性框架 SQL,存储过程和高级映射。 MyBatis消除了 几乎所有的JDBC代码和手动设置参数和 检索结果。 MyBatis可以使用简单的XML或Annotations 配置和映射原语,Map接口和Java POJO(Plain 旧Java对象)到数据库记录。
两者都可以帮到你。通过对细节的高度重视,您可以提供足够灵活的解决方案,并根据需要测试多个数据库。
提供可显示趋势的结果,并可使用Jenkins等CI工具进行配置
定义多个KPIs并确保您可以定期获取所有值。例如,您可以测量吞吐量(每秒记录数)。定期导出数据(例如CSV或属性)并使用PlotPlugin进行可视化:
您还可以查看相关问题:How do I plot benchmark data in a Jenkins matrix project
正确测试
请确保您的测试策略定义明确,不会遗漏任何内容: