如何配置AppDynamics来测量Hibernate查询的执行时间?

时间:2016-11-06 18:01:12

标签: java spring hibernate appdynamics

我无法找到有关AppDynamics测试JUnit代理配置的任何信息。我想测试Spring数据库支持的基于PostgreSQL的Web服务的Hibernate查询的性能。测试必须能够在终止时回滚数据。

它应该是单元测试还是集成测试?完成它的最佳方法是什么?如何使AppDynamics收集并显示查询执行时间图?

更新:

我无法为IDEA中的JUnit测试设置addDynamics代理。 VM参数指向代理-javaagent:"C:\Tools\AppDynamicsAgent\javaagent.jar",防火墙已关闭,但出于某种原因,appdynamics基于Web(SaaS)设置对话框显示没有代理能够连接:

enter image description here

2 个答案:

答案 0 :(得分:0)

您需要进行单元测试和集成测试。单元测试不应该在数据库或文件等中使用。我喜欢使用Spring配置文件进行测试。例如,如果我有一个名为integeration_test的配置文件。

@ActiveProfiles("integeration_test")
@ContextConfiguration(locations = {
        "classpath:you-context.xml"})
@RunWith(SpringJUnit4ClassRunner.class)
public abstract class DaoTest
{

    @Autowired
    protected DataSource dataSource;

    // delete all your stuff here
    protected void clearDatabase()
    {
        JdbcTemplate jdbc = new JdbcTemplate(dataSource);
        jdbc.execute("delete table");
    }

    @Before
    public final void init()
    {
        clearDatabase();
    }

    @After
    public final void cleanup()
    {
        clearDatabase();
    }

}

(我正在使用xml)然后在您的上下文中执行以下操作:<beans profile="test">TODO </beans>并在那里配置您的数据源。

我知道有一些方法可以在运行测试后回滚所有事务,但我更喜欢这样做。只是不要删除真实数据库中的所有内容哈哈,甚至可以在clearDatabase中放置一些安全代码,以确保不会发生。

对于性能测试,您确实需要弄清楚要实现的目标以及显示的意义。如果您有关于性能测试的特定问题,您可以问这个问题,否则它的主题会过于宽泛。

也许您可以制作一个mini-webapp,它会为您进行性能测试,并将结果公开为以HTML格式显示的URL请求。真的只取决于你愿意花多少钱和你想要测试的东西。

答案 1 :(得分:0)

与代理连接后,您可以使用AppDynamics Database Queries Window