GladsonAntony / WebAutomation_AllureWDM

This is a Selenium Hybrid Framework written in JAVA using TestNG framework.. Supports Multiple Browsers and is Cross-Platform. Used Allure Reporting for Visually appealing and easy to understand report. Uses WebDriver Manager to auto download required WebDriver Binmaries.
Apache License 2.0
2 stars 12 forks source link

Can we generate Allure pdf report from allure test results #3

Open Sai7574 opened 5 months ago

Sai7574 commented 5 months ago

Can the Allure test results be used to generate an Allure PDF report? I need to create an Allure PDF report using the results of my Allure test as well as screen grabs. Is this feasible? If so, could you please provide me the code or instructions on how to create an Allure report?

Sai7574 commented 5 months ago

package com.Automation.Utils;

import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.util.HashMap;

import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory;

public class Excelutil2 { public Workbook book; public Sheet sheet;

public Excelutil2(String filePath, String sheetName) { try { FileInputStream file = new FileInputStream(new File(filePath)); book = WorkbookFactory.create(file); sheet = book.getSheet(sheetName); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (InvalidFormatException e) { e.printStackTrace(); } }

public Object[][] getTestData() { int rowCount = getRowCount(); int columnCount = getCellCount();

Object[][] data = new Object[rowCount][columnCount];

for (int i = 0; i < rowCount; i++) { Row row = sheet.getRow(i + 1); for (int j = 0; j < columnCount; j++) { Cell cell = row.getCell(j); cell.setCellType(Cell.CELL_TYPE_STRING); data[i][j] = cell.getStringCellValue().trim(); } }

return data; }

public HashMap<String, String> getTestDataInMap(int rowNum) { HashMap<String, String> testDataMap = new HashMap<>(); Row headerRow = sheet.getRow(0); Row dataRow = sheet.getRow(rowNum);

if (dataRow != null) { // Add null check for data row for (int i = 0; i < headerRow.getLastCellNum(); i++) { Cell headerCell = headerRow.getCell(i); Cell dataCell = dataRow.getCell(i);

    if (headerCell != null && dataCell != null) { // Add null checks for header and data cells
        headerCell.setCellType(Cell.CELL_TYPE_STRING);
        dataCell.setCellType(Cell.CELL_TYPE_STRING);

        String key = headerCell.getStringCellValue().trim();
        String value = dataCell.getStringCellValue().trim();

        testDataMap.put(key, value);
    }
}

} return testDataMap; }

public int getRowCount() { return sheet.getLastRowNum(); }

public int getCellCount() { Row headerRow = sheet.getRow(0); return headerRow.getLastCellNum(); } } ///////////////////////// String ExcelPath = "./TestData/CheckListExecutionData.xlsx"; String[] sheets = { "ChecklistExecutionData", "Sheet1", "Sheet2" };

@dataProvider(name = "ChecklistExecutionData") public Object[][] testDataSupplier() throws Exception { List<Object[]> testDataList = new ArrayList<>(); for (String sheet : sheets) { Excelutil2 excel = new Excelutil2(ExcelPath, sheet); for (int i = 1; i <= excel.getRowCount(); i++) { HashMap<String, String> testData = excel.getTestDataInMap(i); testDataList.add(new Object[] { sheet, testData }); } } return testDataList.toArray(new Object[0][]); } with this dataprovider how to use different sheets for different @test methods this is which u have created i have modified few things how to use single dataprovider for multiple testNG methods in class

Sai7574 commented 5 months ago

Could you please assist me with this problems? Thank you