Я работаю над тестированием API отдыха с использованием Rest Assured и использую аннотацию @BeforeTest для вызова данных jxl и записи результатов в них с помощью аннотации @Dataprovider для передачи тестовых данных.
Но здесь у меня всего 4 API, и я хочу прочитать конкретный лист для конкретного API для остальных, основываясь на имени метода в аннотации @Test для разных классов.
Пример:
1.cardvalidation - Лист проверки 2.Purchase - Лист покупки 3.Cancel - отменить лист покупки
Например, если метод называется cardvalidation, тогда я возьму только Лист проверки и т. Д. Для всех 4 API иЯ использую аннотацию Before Method, но она записывает результаты только для одной строки, а не для всех строк тестовых данных.
Пример кода:
@BeforeMethod
public void excelWriter(Method method) throws BiffException, IOException, RowsExceededException, WriteException {
File file = new File(inputFile);
FileInputStream testFile = new FileInputStream(file);
Workbook workBook = Workbook.getWorkbook(testFile);
String methodName = method.getName();
if(methodName.equals("validateTesting")) {
sheet = workBook.getSheet("Validate_TestData");
}else if(methodName.equals("purchaseTesting")) {
sheet = workBook.getSheet("Purchase_TestData");
}
int rows = sheet.getRows();
int columns = sheet.getColumns();
String dataFile[][] = new String[rows][columns];
File outputResults = new File(outputFile);
// Write data into file
FileOutputStream fileOutputStream = new FileOutputStream(outputResults);
// Create the workbook
workbookCopy = Workbook.createWorkbook(fileOutputStream);
if(methodName.equals("validateTesting")) {
writablesh = workbookCopy.createSheet("Validate_Results", 0);
}else if(methodName.equals("purchaseTesting")) {
writablesh = workbookCopy.createSheet("Purchase_Results", 1);
}
// Copy all data from source file to Destination File
for (int i = 0; i < rows; i++) {
for (int j = 0; j < columns; j++) {
dataFile[i][j] = sheet.getCell(j, i).getContents();
Label l = new Label(j, i, dataFile[i][j]);
Label L2 = new Label(13, 0, "Results");
writablesh.addCell(l);
writablesh.addCell(L2);
}
}
}