#java #excel #selenium #testng-annotation-test
#java #excel #селен #testng-аннотация-тест
Вопрос:
Новичок в selenium / java здесь. 🙂 Пытаюсь понять все о тестовых аннотациях и о том, как использовать метод (он так называется) во всех классах.
У меня есть этот класс ниже, где у меня есть метод, вызываемый в каждом @Test , но я хотел бы поместить как можно больше информации в @BforeTest или сделать это другим разумным способом.
Есть ли у вас какие-нибудь умные идеи, как сделать это разумным способом? Заранее спасибо! С уважением, Фред
КАК ЕСТЬ:
public class xlsxreadtest {
@BeforeTest
public void setup() throws Exception {
}
@Test (priority = 1)
public void Read_xslx1() throws IOException {
FileInputStream fis = new FileInputStream("./files/Test.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet sheet = workbook.getSheetAt(0);
String text1 = sheet.getRow(2).getCell(1).toString();
System.out.println(text1);
}
@Test (priority = 2)
public void Read_xslx2() throws IOException {
FileInputStream fis = new FileInputStream("./files/Test.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet sheet = workbook.getSheetAt(0);
String text2 = sheet.getRow(3).getCell(1).toString();
System.out.println(text2);
}
@AfterTest
public void afterTest() {
System.out.println("AfterTest : Driver close");
driver.close();
}
}
Хотелось бы чего-то подобного, где мне нужно вызывать метод Excel или любой другой только один раз.
public class xlsxreadtest {
@BeforeTest
public void setup() throws Exception {
FileInputStream fis = new FileInputStream("./files/Test.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet sheet = workbook.getSheetAt(0);
}
@Test (priority = 1)
public void Read_xslx1() throws IOException {
String text1 = sheet.getRow(2).getCell(1).toString();
System.out.println(text1);
}
@Test (priority = 2)
public void Read_xslx2() throws IOException {
String text2 = sheet.getRow(3).getCell(1).toString();
System.out.println(text2);
}
@AfterTest
public void afterTest() {
System.out.println("AfterTest : Driver close");
driver.close();
}
}
Ответ №1:
Вы можете сделать свою локальную sheet
переменную переменной экземпляра:
public class xlsxreadtest {
XSSFSheet sheet;
@BeforeTest
public void setup() throws Exception {
FileInputStream fis = new FileInputStream("./files/Test.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(fis);
sheet = workbook.getSheetAt(0);
}
После чего вы можете ссылаться на него из своих методов тестирования:
@Test (priority = 1)
public void Read_xslx1() throws IOException {
String text1 = sheet.getRow(2).getCell(1).toString();
System.out.println(text1);
}
@Test (priority = 2)
public void Read_xslx2() throws IOException {
String text2 = sheet.getRow(3).getCell(1).toString();
System.out.println(text2);
}
Комментарии:
1. Ах, это просто! Спасибо!
2. Вы можете поблагодарить меня, приняв мой ответ 😉