15:34:21.132 [main] INFO com.intuit.karate - Karate version: 1.5.1
2025-01-27T15:34:24.197Z
15:34:24.197 [main] INFO com.intuit.karate - mock server initialized: ../../karate/mockserver.feature
2025-01-27T15:34:24.793Z
15:34:24.793 [main] DEBUG com.intuit.karate.http.HttpServer - server started: 169.254.49.101:8081
2025-01-27T15:34:30.249Z
INIT_REPORT Init Duration: 10009.08 ms Phase: init Status: timeout
2025-01-27T15:34:30.914Z
15:34:30.911 [main] INFO com.intuit.karate - Karate version: 1.5.1
2025-01-27T15:34:32.761Z
15:34:32.761 [main] INFO com.intuit.karate - mock server initialized: ../../karate/mockserver.feature
2025-01-27T15:34:32.912Z
15:34:32.912 [main] DEBUG com.intuit.karate.http.HttpServer - server started: 169.254.49.101:8081
2025-01-27T15:39:30.334Z
INIT_REPORT Init Duration: 300059.50 ms Phase: invoke Status: timeout
2025-01-27T15:39:30.334Z
START RequestId: e4bb592d-5042-4e70-900e-e1c82b8741f1 Version: $LATEST
2025-01-27T15:39:30.342Z
2025-01-27T15:39:30.340Z e4bb592d-5042-4e70-900e-e1c82b8741f1 Task timed out after 300.07 seconds
2025-01-27T15:39:30.342Z
END RequestId: e4bb592d-5042-4e70-900e-e1c82b8741f1
因此,我想知道导致空手道模拟服务器不通过init并调用阶段并给我超时错误的步骤中缺少什么。
空手道模拟服务器是一个Java进程,可以启动并等待传入的连接。因此,对于Lambda运行时,看起来好像已经悬挂了。
我认为在EC2或ECS上运行的普通码头容器是最好的方法。从理论上讲,您可以将API网关连接到lambda,然后编写一些Java代码将传入请求转换为
com.intuit.karate.http.Request
对象,并将其传递给一些内部空手道类,并获得“ True” Lambda支持的模拟。但这打败了模拟的全部点,即要做最少的工作以旋转HTTP服务器进行测试。因此,我的建议是坚持使用后必须关闭的普通容器。
使用lambda“层”是克服罐子尺寸限制的一种方式。