首页 > 解决方案 > afterScenario 执行挂钩的详细信息

问题描述

我正在使用空手道的 ExecutionHook

需要以下详细信息,例如场景名称、标签、端点、请求、响应、状态和错误

@Override
    public void afterScenario(ScenarioResult result, ScenarioContext context) {
        System.out.println("This is into Hook, scenario tags is "+ result.getScenario().getTags());
        System.out.println("This is into Hook, scenario name is "+ result.getScenario().getName());
        System.out.println("This is into Hook, scenario EndPoint is "+ context.getHttpClient());
        System.out.println("This is into Hook, scenario request is "+ context.getPrevRequest());
        System.out.println("This is into Hook, scenario response is "+ context.getPrevResponse());
        System.out.println("This is into Hook, scenario status is "+ result.isFailed());
        System.out.println("This is into Hook, scenario Error is "+ result.getError());
    }

问题:无法获得端点、请求和响应的确切详细信息。有什么帮助吗?

更新:使用以下方法时执行暂停

System.out.println("This is into Hook, scenario request is "+ context.getRequestBuilder().getBody().getAsJsonDocument());
        System.out.println("This is into Hook, scenario response is "+ context.getPrevResponse().getBody().toString());

在此处输入图像描述

标签: karate

解决方案


一个内可以有多个 HTTP 调用Scenariohttps ://stackoverflow.com/a/46080568/143475

也许您正在寻找afterStephttps ://stackoverflow.com/a/59080128/143475

getPrevRequest()对您的问题的getPrevResponse()简短回答:查看ScenarioContext. 信息在那里,例如 URL 在getPrevRequest().getUri()

编辑:这ExecutionHook是为高级用户设计的,因此没有记录。此外,有关方法ScenarioContext应被视为“内部使用”,并且可能会在未来版本的空手道中发生变化。建议那些寻找特定需求的人自行解决或通过拉取请求向空手道(开源)贡献代码。


推荐阅读