无法使用 Testcafe 拦截来自页面的传出 AJAX 请求
Cannot intercept outgoing AJAX request from page using Testcafe
我正在尝试将 TestCafe 用于客户端 javascript 库,但我无法通过计数机制捕获任何传出的 AJAX 测试页面加载请求。
我的尝试涉及使用此库中的 RequestLogger
对象,包括使用正则表达式 /\.org/
设置第一个参数,以捕获任何使用 .org 后缀的传出磁贴请求。我相信这是有道理的,因为所有传出请求都会发送到 openstreetmap.org,目的是获取 png 地图图块。
我的测试核心如下所示:
import { RequestLogger } from "testcafe";
fixture`Hello World - Leaflet`.page`http://localhost:8080`;
const logger = RequestLogger(/org/, {
logRequestHeaders: true,
logResponseHeaders: true
});
test("Test if there's an outgoing network request...", async t => {
// Do something...
await t
.wait(5000)
.expect(logger.count(() => true))
.gt(0, "Must detect more than zero outgoing requests to openstreetmap");
});
为了捕获 AJAX 请求的正确传出计数,我是否遗漏了什么?
如果有帮助,我已经制作了一个包含此问题的回购协议,其设置方式使人们无需配置即可尝试解决:
感谢您的详细描述。
您需要 attach logger
到您的 test
/fixture
。您还可以在测试 运行 期间使用 t.addRequestHooks
和 t.removeRequestHooks
方法附加和分离挂钩。
在测试代码中,我将 logger
挂钩附加到 test
:
import { RequestLogger } from "testcafe";
fixture`Hello World - Leaflet`.page`http://localhost:8080`;
const logger = RequestLogger(/org/);
test
.requestHooks(logger)
("Test if there's an outgoing network request...", async t => {
await t
.wait(5000)
.expect(logger.count(() => true))
.gt(0, "Must detect more than zero outgoing requests to openstreetmap");
});
我正在尝试将 TestCafe 用于客户端 javascript 库,但我无法通过计数机制捕获任何传出的 AJAX 测试页面加载请求。
我的尝试涉及使用此库中的 RequestLogger
对象,包括使用正则表达式 /\.org/
设置第一个参数,以捕获任何使用 .org 后缀的传出磁贴请求。我相信这是有道理的,因为所有传出请求都会发送到 openstreetmap.org,目的是获取 png 地图图块。
我的测试核心如下所示:
import { RequestLogger } from "testcafe";
fixture`Hello World - Leaflet`.page`http://localhost:8080`;
const logger = RequestLogger(/org/, {
logRequestHeaders: true,
logResponseHeaders: true
});
test("Test if there's an outgoing network request...", async t => {
// Do something...
await t
.wait(5000)
.expect(logger.count(() => true))
.gt(0, "Must detect more than zero outgoing requests to openstreetmap");
});
为了捕获 AJAX 请求的正确传出计数,我是否遗漏了什么?
如果有帮助,我已经制作了一个包含此问题的回购协议,其设置方式使人们无需配置即可尝试解决:
感谢您的详细描述。
您需要 attach logger
到您的 test
/fixture
。您还可以在测试 运行 期间使用 t.addRequestHooks
和 t.removeRequestHooks
方法附加和分离挂钩。
在测试代码中,我将 logger
挂钩附加到 test
:
import { RequestLogger } from "testcafe";
fixture`Hello World - Leaflet`.page`http://localhost:8080`;
const logger = RequestLogger(/org/);
test
.requestHooks(logger)
("Test if there's an outgoing network request...", async t => {
await t
.wait(5000)
.expect(logger.count(() => true))
.gt(0, "Must detect more than zero outgoing requests to openstreetmap");
});