我正在尝试使 Reportportal 集成与空手道版本 0.9.5.RC5 一起使用。我能够将结果推送到 Reportportal;但是,报告的步骤不按顺序进行,即使在使用适当的缺陷类型标记先前的故障之后,reportportal 也无法执行准确的自动分析。是否有人将 ReportPortal 与空手道版本 0.9.5.RC5 集成?
问问题
1057 次
3 回答
2
空手道版本中经常发生不兼容的变化。
报告门户团队期待任何稳定版本的跟进。
但是贡献者将其更新为 0.9.5RC5 https://github.com/karthikbits/reportportal-karate
于 2020-02-10T18:13:59.417 回答
2
在该提交中,开发人员更改了 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) {
}
}
于 2020-07-19T14:27:31.450 回答
1
于 2020-12-15T08:43:43.450 回答