Отчет об экстентах Avenstack 4.1.0, показывающий только один отчет при выполнении тестовых случаев с несколькими данными, взятыми из файла Excel в Rest API Automation - PullRequest
0 голосов
/ 06 августа 2020

В настоящее время я использую Avenstack extension report версии 4.1.3 вместе со слушателями TestNG для создания отчетов об испытаниях. В моем сценарии автоматизации (java) я использую данные из таблицы Excel, используя apache POI и ExcelData для чтения файла класса utils. Проблема в том, что в моем API я отправляю 10 значений (т.е. выполняю один и тот же API 10 раз с разными данными), и после выполнения при проверке с помощью отчета avenstack HTML он показывает только один результат теста. Но эти отчеты об объеме работают правильно при использовании с Selenium webDriver. (Та же версия 4.1.2) Единственная разница в Selenium, я использовал аннотации TestNG @dataprovider для анализа данных из файла Excel и сохранял их в отдельном объект 2-мерный массив в отдельном классе, и из этого массива я буду вызывать в своих тестовых примерах внутри аннотации @Test. [т.е. @Test [dataprovider, dataProviderClass]], а здесь, в Rest API Automation, я буду непосредственный прием значений с помощью файла класса утилиты программы чтения Excel [i., e Итерация количества строк и столбцов на листе Excel внутри For l oop и выборка значений из ячейки без использования аннотации @DataProvider TestNG]. Таким образом, в случае Selenium сценарий работает отлично., Но мне нужно знать, почему он не работает в Rest Automation. Пожалуйста, дайте мне знать причину, по которой отчет о степени не удается получить тесты в автоматизации API.

Мой TestNG. xml

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Practice API Test Suite">

    <listeners>
        <listener class-name="practice.utils.ExtentReporting"/>
    </listeners>

    <test name="Login Test">

        <packages>
            <package name="practice.tests.POST.Login"/>
        </packages>

        <classes>
           <class name="practice.tests.POST.Login.LoginTestClass"/>

        </classes>
    </test>
</suite>

Мой класс слушателя TestNG с отчетами по экстентам:

public class ExtentReporting extends TestListenerAdapter
{
    public static ExtentSparkReporter sparkReporter;
    public static ExtentReports extentReport;
    public static ExtentTest extentTest;
    public static String reportPath = "C:\\Backup\\RestAPI Automation - Workspace\\Practice_API\\test-output\\"+"Test Report";


    public void onStart(ITestContext testContext)
    {
        DateFormat dateFormat = new SimpleDateFormat("dd-MMM-yyyy_HH-mm-ss");
        Date date = new Date();
        String filePathdate = dateFormat.format(date).toString();
        String actualReportPath = reportPath + "index.html";
        new File(actualReportPath).renameTo(new File(
                "C:\\Backup\\RestAPI Automation - Workspace\\Practice_API\\test-output\\"+ "Automation_" + filePathdate + ".html"));

        sparkReporter = new ExtentSparkReporter(reportPath);
        sparkReporter.config().setDocumentTitle("Automation Test Report");
        sparkReporter.config().setReportName("API Test Automation Report");
        sparkReporter.config().setTheme(com.aventstack.extentreports.reporter.configuration.Theme.DARK);
        extentReport = new ExtentReports();
        extentReport.attachReporter(sparkReporter);
        extentReport.setSystemInfo("Practice API", "Extent Report");
        extentReport.setSystemInfo("Windows", System.getProperty("os.name"));
        extentReport.setSystemInfo("Environment","QA");


    }

    public void onTestSuccess(ITestResult tr)
    {

        extentTest = extentReport.createTest(tr.getName());
        extentTest.log(Status.PASS,
                MarkupHelper.createLabel(tr.getName() + "Test Case passed", ExtentColor.GREEN));
        extentTest.pass(tr.getName() + "Test Case Passed");


    }

    public void onTestFailure(ITestResult tr)
    {
        extentTest = extentReport.createTest(tr.getName());
        extentTest.log(Status.FAIL, MarkupHelper.createLabel("Test Case Failed", ExtentColor.RED));
        extentTest.log(Status.FAIL,
                MarkupHelper.createLabel(tr.getThrowable() + "Test Case Failed", ExtentColor.RED));
        // Here you can add screenshot in the report for fail case

        String screenshotPath="C:\\Backup\\RestAPI Automation - Workspace\\Practice_API\\Screenshots"+tr.getName()+".png";

        File f = new File(screenshotPath);

        if(f.exists())
        {
            try {
                extentTest.fail("Screenshot is below:" + extentTest.addScreenCaptureFromPath(screenshotPath));
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }

        extentTest.fail(tr.getName() + "Test Step Failed");


    }
    public void onTestSkipped(ITestResult tr)

    {
        extentTest = extentReport.createTest(tr.getName());
        extentTest.log(Status.SKIP,
                MarkupHelper.createLabel(tr.getName() + "Test Case Skipped", ExtentColor.ORANGE));
        extentTest.skip(tr.getName() + "Test Skipped");

    }

    public void onFinish(ITestContext testContext)
    {
        extentReport.flush();
    }

}

Изображения прикреплены

Отчеты об экстентах Avenstack работают нормально в селене

Отчет Avenstack в моем API-интерфейсе показывает только один тест

Консоль IDE, показывающая, что тест выполнен 10 раз. т.е. только 1 тестовый пример, но с 10 разными значениями.

...