【问题标题】:How to test functionality which requires the task to take an undefined amount of time to complete如何测试需要任务花费未定义时间才能完成的功能
【发布时间】:2014-04-03 07:56:45
【问题描述】:

我目前正在开发一个网站并遇到了一些错误。为了修复一些错误,我需要重现它们,以便我可以调试等等。有些错误需要我在有限的时间范围内重复特定的按钮单击/复选框标记组合。 IE。我需要能够向后端发送多个相同的请求,以便在发送请求时不能完成前一个请求的处理。这是重现错误的唯一方法。

现在,我的问题是我的电脑速度太快,所以我无法足够快地执行必要的步骤来重现错误。所以我的后端在发送新请求之前完成了每个请求的处理。

我该如何解决这样的复制问题? - 我正在考虑降低 CPU 的时钟频率,但这似乎只是为了能够重新创建错误。是否有某种测试框架可以用来帮助解决这个问题? - 有某种方法可以通过一些浏览器插件快速重新发送请求..我不知道..谷歌还没有找到对我有用的东西..所以我希望这里的其他开发人员也有类似的问题并有一些指示对我来说:)

【问题讨论】:

  • 如果你基本知道问题出在哪里:"I need to be able to send multiple identical requests to the backend such that when a request is sent the previous request must not be done processing." 为什么需要重现这个bug?您应该能够在此基础上找到源代码中的错误。但是,如果这是为了测试您的修复程序现在是否正确处理该案例,那么情况就不同了。 :P
  • 问题是该错误导致 NullPointer,但我不知道为什么该对象为 null.. 这就是为什么我想看看请求到达时的样子。我可以在空检查中包含一些行,但这不是一个合适的解决方案,因为对象永远不应该为空,因此错误位于其他地方。我需要调试,因此我需要重现错误
  • 您可以回溯特定对象的生命周期,直到它被创建时,并记下该对象可能成为null 的位置。 (例如,对象被赋值的地方,或者值发生变化的地方等)这是一个很长的镜头,但由于您的计算机似乎太强大而无法重现此错误,您也可以在其上运行虚拟机来模拟较慢的计算机来尝试重现此错误。
  • 这就是我尝试做的事情。但我的原始帖子与我面临的这个特定错误没有直接关系,而是一个更普遍的问题,在你遇到的情况下该怎么做无法仅通过查看代码来跟踪错误。您对虚拟机的建议是个好主意.. 我想我可以试一试..

标签: java testing cpu-speed


【解决方案1】:

考虑使用 Apache JMeter,这是一个可能适合您的工具。它允许您向远程服务器发送多个请求,并根据响应/缺少响应/超时等执行操作。

这里是 JMeter 文档:https://jmeter.apache.org/usermanual/index.html

【讨论】:

  • 为什么它可能适合 OP?这个工具提供了什么帮助?您能否提供此工具的一些文档的链接?
  • 添加了一些关于 jmeter 可能应用的细节。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-26
  • 1970-01-01
  • 2022-12-23
  • 2021-05-05
相关资源
最近更新 更多