Снимок экрана в Extended Cucumber Reports для параллельного выполнения - PullRequest
0 голосов
/ 25 апреля 2020

У меня проблемы с захватом скриншотов в Расширенные отчеты по огурцам для параллельного выполнения.

Есть несколько проблем:

  1. Иногда, скриншот не захватывается когда вызывается метод captureScreen ().
  2. Иногда один и тот же снимок экрана снимается несколько раз.
  3. Даже если снимки экрана сохраняются в каталоге, одни и те же снимки экрана вставляются несколько раз.
  4. Иногда текущая настройка работает нормально, но во многих случаях возникают вышеуказанные проблемы.

Способ захвата экрана :

public static synchronized void captureScreen() {
    try {

        File screenshot = ((TakesScreenshot) getDriver()).getScreenshotAs(OutputType.FILE);  // getDriver() is a custom Method fetches the WebDriver instance for the current thread. I am saving the driver objects in a HashMap with ThreadId being the key.

        byte[] data = FileUtils.readFileToByteArray(screenshot);

        getScenario().embed(data, "image/png");  // getScenario() is a custom Method fetches the Scenario for the current thread. I am saving the Scenario objects in a HashMap with ThreadId being the key.


    } catch (Exception ex) {
        ex.printStackTrace();

    }

}

Cucumber Runner : -

import com.github.mkolisnyk.cucumber.runner.*;
import cucumber.api.CucumberOptions;
import org.junit.runner.RunWith;

@RunWith(ExtendedParallelCucumber.class)
@ExtendedCucumberOptions(jsonReport = "reports/cucumber.json",
        //retryCount = 1,
        threadsCount = 2,
        detailedReport = true,
        detailedAggregatedReport = true,
        overviewReport = true,
        coverageReport = true,
        screenShotLocation = "./screenshots",
        screenShotSize = "900px",
        jsonUsageReport = "reports/cucumber-usage.json",
        usageReport = false,
        toPDF = true,
        pdfPageSize = "landscape",
        excludeCoverageTags = {"@flaky" },
        includeCoverageTags = {"@passed" },
        outputFolder = "reports/ExtendedCucumber")

@CucumberOptions(plugin = { "html:reports/cucumber-html-report",
        "json:reports/cucumber.json", "pretty:reports/cucumber-pretty.txt",
        "usage:reports/cucumber-usage.json", "junit:reports/cucumber-results.xml" },
        features = { "./src/test/resources/features" },
        glue = { "stepDefinitions" },
        dryRun = false )

Папка отчетов

Можете ли вы предложить следующие шаги

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...