如何测试请求是否增加指标,同时在 Vert.x 中没有得到任何响应?
How to test if requests increase metrics while not getting any response in Vert.x?
我的 Vert.x 服务器的工作是,当它收到一些无效请求时,不会发回任何响应,而只会增加相关指标。我怎样才能测试它?
以下代码不起作用,因为我们永远得不到返回的响应,处理程序的代码永远不会执行 - 我刚刚发布它是为了向您展示我在测试中想要的内容。
@Test
void invalidUrlTest(Vertx vertx, VertxTestContext testContext) {
HttpRequest<String> request = WebClient
.create(vertx, this.webClientOptions)
.get(8080, "localhost", "/someinvalidaddress/")
.as(BodyCodec.string());
request.send(s -> {assertThat(meterRegistry.counter("invalid.request.counter")).isEqualTo(1.0);
});
不确定为什么没有调用您的句柄(也许您的测试由于缺少 ctx.async() ?)但无论如何您都可以尝试使用 httpClient 进行调用并在以下情况下设置异常处理程序你做出你的断言:
@Test
void invalidUrlTest(Vertx vertx, VertxTestContext ctx) {
Async async = ctx.async();
HttpClient client = vertx.createHttpClient();
client.get(8080,"localhost","/someinvalidaddress/")
.exceptionHandler(ex -> {
assertThat(meterRegistry.counter("invalid.request.counter")).isEqualTo(1.0);
async.complete();
}).end();
}
我的 Vert.x 服务器的工作是,当它收到一些无效请求时,不会发回任何响应,而只会增加相关指标。我怎样才能测试它?
以下代码不起作用,因为我们永远得不到返回的响应,处理程序的代码永远不会执行 - 我刚刚发布它是为了向您展示我在测试中想要的内容。
@Test
void invalidUrlTest(Vertx vertx, VertxTestContext testContext) {
HttpRequest<String> request = WebClient
.create(vertx, this.webClientOptions)
.get(8080, "localhost", "/someinvalidaddress/")
.as(BodyCodec.string());
request.send(s -> {assertThat(meterRegistry.counter("invalid.request.counter")).isEqualTo(1.0);
});
不确定为什么没有调用您的句柄(也许您的测试由于缺少 ctx.async() ?)但无论如何您都可以尝试使用 httpClient 进行调用并在以下情况下设置异常处理程序你做出你的断言:
@Test
void invalidUrlTest(Vertx vertx, VertxTestContext ctx) {
Async async = ctx.async();
HttpClient client = vertx.createHttpClient();
client.get(8080,"localhost","/someinvalidaddress/")
.exceptionHandler(ex -> {
assertThat(meterRegistry.counter("invalid.request.counter")).isEqualTo(1.0);
async.complete();
}).end();
}