关于Java应用程序测试和调试的一组问题

关于Java应用程序测试和调试的一组问题,java,debugging,testing,load-testing,stress-testing,Java,Debugging,Testing,Load Testing,Stress Testing,1是否可以跟踪应用程序引发的异常数?我可以写一个测试来打印这样一个数字吗?未捕获的异常会停止执行,因此很容易,但是捕获的异常又如何呢 2如何编写一个测试,告诉我一秒钟内完成的活动数量?例如,代码每秒引发的平均异常数、每秒保存的平均实体数、每秒登录到站点的平均用户数等。例如,我想在我的webapp上施加一些负载,并找出在这种负载下它每秒可以保存多少实体,限制在哪里等 我想知道某行执行了多少次。我能在不更改代码的情况下完成吗 4我希望在执行代码的过程中看到表达式的值,而不更改代码* 5我不希望在断点

1是否可以跟踪应用程序引发的异常数?我可以写一个测试来打印这样一个数字吗?未捕获的异常会停止执行,因此很容易,但是捕获的异常又如何呢

2如何编写一个测试,告诉我一秒钟内完成的活动数量?例如,代码每秒引发的平均异常数、每秒保存的平均实体数、每秒登录到站点的平均用户数等。例如,我想在我的webapp上施加一些负载,并找出在这种负载下它每秒可以保存多少实体,限制在哪里等

我想知道某行执行了多少次。我能在不更改代码的情况下完成吗

4我希望在执行代码的过程中看到表达式的值,而不更改代码*

5我不希望在断点中停止应用程序的执行,但仅当某个表达式或变量等于某个值时才停止。例如,如果该变量为null,则停止应用程序。当然,不需要更改代码

*也许我可以用手表来做这个。Idea调试器具有此功能,我可以在执行过程中看到某些表达式的值。但当执行第二次到达该行时,旧值被清除。如何以动态的方式看待表达式值

是否可以跟踪应用程序引发的异常数

当你抓住它们时,数一数

我可以写一个测试来打印这样一个数字吗

数完后,打印出来。在单元测试中打印数字不是很有用,因为它们通常被忽略。它必须是自动化的

未捕获的异常会停止执行,因此很容易,但是捕获的异常又如何呢

您是捕获异常的人,因此您必须检查代码以记录此异常。如果它不是你的代码,你不需要担心测试它

如何编写一个测试,告诉我一秒钟内完成的活动数

重复执行一项任务一秒钟,然后打印它在一秒钟内执行了多少次。对于长时间运行的测试,最好运行几秒钟并将其平均。同样,仅仅打印这个数字并不总是很有用

我想知道某行执行了多少次。我能在不更改代码的情况下完成吗

我们讨论的是单元测试还是其他方法

对于单元测试,可以使用字节码操作,但这比更改代码复杂100倍

您可以使用代码覆盖率工具来提供这些信息和报告。e、 g.艾玛报告或想法内置于其中。注意:这不是免费版本内置的

我希望在代码执行期间看到表达式的值,而不更改代码

对于表达式和调试接口,可以使用beanshell实现这一点。同样,这比在代码中添加一行要复杂1000倍

通常,您会为此使用调试器

我不希望在断点中停止应用程序的执行,但仅当某个表达式或变量等于某个值时才停止。例如,如果该变量为null,则停止应用程序。当然,不需要更改代码

在不更改代码的情况下,无法停止

大多数调试器都支持这一点,但它们是通过在停止代码后执行检查并在不满足条件时自动继续来实现的

但当执行第二次到达该行时,旧值被清除。如何以动态的方式看待表达式值


使用手表而不是计算表达式。

单独来说,这些问题可能没问题,但鉴于该网站目前的形式,这些问题不适用于该网站,因此最好问5个问题而不是这个问题?谢谢Peter!注意:我不想更改代码,不是因为我懒惰:,而是因为我从存储库中获取的代码作为依赖项存在问题,这段代码不是我的,用日志记录代码替换这些类不是5分钟的事情。这就是为什么我总是寻找不意味着改变代码的方法。