【发布时间】: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的位置。 (例如,对象被赋值的地方,或者值发生变化的地方等)这是一个很长的镜头,但由于您的计算机似乎太强大而无法重现此错误,您也可以在其上运行虚拟机来模拟较慢的计算机来尝试重现此错误。 -
这就是我尝试做的事情。但我的原始帖子与我面临的这个特定错误没有直接关系,而是一个更普遍的问题,在你遇到的情况下该怎么做无法仅通过查看代码来跟踪错误。您对虚拟机的建议是个好主意.. 我想我可以试一试..