【问题标题】:Does anyone have Reportportal integration working with Karate 0.9.5.RC5? [duplicate]有没有人使用空手道 0.9.5.RC5 进行 Reportportal 集成? [复制]
【发布时间】:2020-12-06 00:49:37
【问题描述】:

我正在尝试使 Reportportal 集成与空手道版本 0.9.5.RC5 一起使用。我能够将结果推送到 Reportportal;但是,报告的步骤不按顺序进行,即使在使用适当的缺陷类型标记先前的故障之后,reportportal 也无法执行准确的自动分析。是否有人将 ReportPortal 与空手道版本 0.9.5.RC5 集成?

【问题讨论】:

标签: karate reportportal


【解决方案1】:

【讨论】:

    【解决方案2】:

    使用此类与报告门户进行交互: https://github.com/reportportal/agent-java-karate/blob/a84d3bef617f0f7bf479de57a29477b4b84792ae/src/main/java/com/epam/RPReporter.java

    在该提交中,开发人员更改了 Karate Runner,但我认为这太过分了,您可以使用 Karate 拥有的钩子并将其注入您的 runner。您也可以采用这种方法,但可能需要进行少量更改。

    以下是我的看法。您可能需要根据需要对其进行调整。请注意注释了 startLaunch() 和 finishLaunch() 的 beforeAll() 和 afterAll(),这是由于我自己的代码,因为我在不同的 Runners 中执行了几个不同的启动。您可能需要取消注释。

    在您使用该 RPReporter 类完成挂钩后,您将能够轻松地对其进行自定义。

    请注意,我还没有玩过 gatling,可能想在 perfEvent 方法中添加一些东西,以从您的指标中排除与 Report Portal 的集成。

    要将钩子添加到您的 Runner,只需使用 Runner API 的 .hook() 方法。

    public class RPExecutionHook implements ExecutionHook {
    
        private RPReporter rpReporter;
    
        public RPExecutionHook2(RPReporter rpReporter) {
            this.rpReporter = rpReporter;
        }
    
    
        @Override
        public boolean beforeScenario(Scenario scenario, ScenarioContext context) {
            return true; // make sure you keep this true or it breaks the Karate logic for Scenario Outline
        }
    
        @Override
        public void afterScenario(ScenarioResult result, ScenarioContext context) {
    
        }
    
        @Override
        public boolean beforeFeature(Feature feature, ExecutionContext context) {
            log.debug("Starting new feature: " + feature.getName());
            this.rpReporter.startFeature(context.result);
            return true;
        }
    
        @Override
        public void afterFeature(FeatureResult result, ExecutionContext context) {
            log.debug("Finishing feature: " + result.getFeature().getName());
            this.rpReporter.finishFeature(context.result);
        }
    
        @Override
        public void beforeAll(Results results) {
            //this.rpReporter.startLaunch();
        }
    
        @Override
        public void afterAll(Results results) {
            //this.rpReporter.finishLaunch();
        }
    
        @Override
        public boolean beforeStep(Step step, ScenarioContext context) {
            return true;
        }
    
        @Override
        public void afterStep(StepResult result, ScenarioContext context) {
    
        }
    
        @Override
        public String getPerfEventName(HttpRequestBuilder req, ScenarioContext context) {
            return null;
        }
    
        @Override
        public void reportPerfEvent(PerfEvent event) {
    
        }
    }
    

    【讨论】:

      【解决方案3】:

      空手道版本中经常发生不兼容的更改。

      reportportal 团队期待任何稳定版本的发布。

      但贡献者已将其更新为 0.9.5RC5 https://github.com/karthikbits/reportportal-karate

      【讨论】:

      • 没有。我们在 GitHub 中只有一个 develop 分支,我不明白你的困惑。
      • 更新:我们刚刚发布了 0.9.5 final - github.com/intuit/karate/releases/tag/v0.9.5
      • Karate 已发布最终稳定版 0.9.5,您是否有计划更新 Karate 的报告门户代理?
      猜你喜欢
      • 1970-01-01
      • 2021-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多