gpt4 book ai didi

javascript - 如何使 HtmlUnit 的 WebClient 加速执行由 window.setTimeout 触发的 javascript?

转载 作者:搜寻专家 更新时间:2023-11-01 03:44:21 25 4
gpt4 key购买 nike

我正在使用 Java 库 HtmlUnit为网络应用程序创建回归测试套件。

我有一个挂接到应用程序页面主体的“onload”处理程序,用于在 session 过期后重定向到超时页面。处理程序是以下形式的一些 JavaScript:

window.setTimeout( function() { window.location = 'timout.html'; }, 3600000);

我想测试当时间到达时重定向最终会被触发,但我能找到的最接近的事情是实际等待整个持续时间(在上面的例子中说一个小时),正如建议的那样下面的 Java 示例:

WebClient webClient = new WebClient();
...
webClient.waitForBackgroundJavaScript( 3600000);

我想知道是否有可能欺骗脚本执行引擎使其表现得好像已经过了那么长时间,而实际上不必等待几分钟或几小时"real time"用于运行测试套件。

理想情况下,可以告诉引擎/客户端/解释器已经过了 X 毫秒(以模拟等待),或者可能设置某种“时间膨胀”因子并轮询页面以查看它是如何更新的。

最佳答案

我不认为你可以轻松做到这一点。我能看到它的唯一方法是模拟处理你测试中的 settimeout 的 Rhino 方法......也许使用像 Mockito 这样的框架......但这不是你想要的,因为如果你想测试页面重定向的有效性,你测试重定向所需的时间

干杯

常规

关于javascript - 如何使 HtmlUnit 的 WebClient 加速执行由 window.setTimeout 触发的 javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5958201/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com