【问题标题】:A set of questions on testing and debugging of Java applications [closed]关于 Java 应用程序测试和调试的一组问题 [关闭]
【发布时间】:2012-09-07 19:09:49
【问题描述】:

1) 是否可以跟踪应用程序抛出的异常数量?我可以编写一个能打印出这样一个数字的测试吗?未捕获的异常会停止执行,所以很简单,但是捕获的异常呢?

2) 我如何编写一个能告诉我一秒钟内完成的活动数量的测试?例如,代码在一秒钟内抛出的平均异常数,每秒保存的平均实体数,每秒登录到该站点的平均用户数等。例如,我想在我的 web 应用程序上加载一些负载并找出有多少在这样的负载下每秒可以保存的实体,限制等

3) 我想知道某行执行了多少次。不改代码可以吗?

4)我想在不改变代码的情况下,在代码执行过程中看到表达式的值(*)

5) 我想不在断点处停止我的应用程序的执行,但只有在某个表达式或变量等于某个值时(例如,如果此变量为空,则停止应用程序)。当然,无需更改代码。

(*) 也许我可以为此使用 Watches。 Idea调试器有这个功能,我可以在执行过程中看到一些表达式的值。但是当执行第二次到达该行时,旧值被清除。如何以动态方式查看表达式值?

【问题讨论】:

  • 就个人而言,这些问题可能没问题,但考虑到它的当前形式,它们不适合这个网站
  • 所以最好问5个问题而不是这个?

标签: java debugging testing load-testing stress-testing


【解决方案1】:

是否可以跟踪应用程序抛出的异常数量?

当你抓住它们时,数一数。

我可以编写一个能打印出这样一个数字的测试吗?

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

未捕获的异常会停止执行,所以很容易,但是捕获的异常呢?

你是捕捉异常的人,所以你必须检查你的代码来记录这一点。如果它不是您的代码,则无需担心对其进行测试。

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

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

我想知道某行执行了多少次。不改代码可以吗?

我们谈论的是单元测试还是其他方式?

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

您可以使用代码覆盖率工具来为您提供这些信息和报告。例如艾玛报告或想法是内置的。注意:这不是免费版内置的。

我想在不改变代码的情况下,在代码执行过程中看到表达式的值

您可以使用 beanshell 为表达式和调试接口执行此操作。这比在代码中添加一行要复杂 1000 倍。

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

我想不在断点处停止我的应用程序的执行,但只有在某个表达式或变量等于某个值时(例如,如果此变量为空,则停止应用程序)。当然,无需更改代码。

你不能在不改变代码的情况下停止。

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

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

使用 Watch 而不是 Evaluate 表达式。

【讨论】:

  • 谢谢彼得!注意:我不想更改代码不是因为我很懒 :),而是因为我从存储库作为依赖项获得的代码存在问题,所以这段代码不是我的,用我的代码替换这些类不是 5 分钟的事情与日志记录。这就是为什么我一直在寻找不意味着更改代码的方法。
猜你喜欢
  • 1970-01-01
  • 2017-03-11
  • 1970-01-01
  • 2016-06-27
  • 2023-02-12
  • 1970-01-01
  • 1970-01-01
  • 2015-01-23
  • 1970-01-01
相关资源
最近更新 更多