Я тестирую синхронизацию данных между двумя системами: A и B. Мой набор тестов создает, изменяет, перемещает и удаляет данные в A и проверяет их в B. Всего у меня есть около 30 методов Test в отдельных файлах классов, которые я навести порядок в тестинг. xml. Хотя это работает, это приводит к большому количеству повторяющегося кода в testng. xml и файлах классов. Я хочу выяснить, как поместить все в один файл класса, чтобы уменьшить это.
Вот пример того, что у меня есть:
public class test {
WebDriver driver;
WebDriverWait wait;
JavascriptExecutor js;
@BeforeSuite
public void beforeSuite() {
System.out.println("beforeSuite");
}
@BeforeMethod(onlyForGroups = {"A"})
public void beforeA() {
System.out.println("beforeA");
}
@BeforeMethod(onlyForGroups = {"B"})
public void beforeB() {
System.out.println("beforeB");
}
@AfterSuite
public void afterSuite() {
System.out.println("afterSuite");
}
@Test(priority = 0, groups = {"A"}, dataProvider = "customer", dataProviderClass = Testdata.class)
public void a1() {
System.out.println("A-1");
}
@Test(priority = 2, groups = {"nav"}, dataProvider = "customer", dataProviderClass = Testdata.class)
public void a2() {
System.out.println("A-2");
}
@Test(priority = 1, groups = {"B"}, dataProvider = "customer", dataProviderClass = Testdata.class)
public void b1() {
System.out.println("B-1");
}
@Test(priority = 3, groups = {"B"}, dataProvider = "customer", dataProviderClass = Testdata.class)
public void b2() {
System.out.println("B-2");
}
}
Предполагая, что каждый dataProvider предоставляет три записи, я ищем следующий вывод:
beforeSuite
beforeA
A-1
A-1
A-1
beforeB
B-1
B-1
B-1
beforeA
etc.
Вместо этого, когда каждая запись вызывает метод тестирования, вывод становится следующим:
beforeSuite
beforeA
A-1
beforeA
A-1
beforeA
A-1
beforeB
B-1
etc.
beforeA () и beforeB () - методы для входа в систему и получить доступ к определенной c части веб-сайта - повторение их для каждой записи значительно увеличивает время, необходимое для запуска тестов. В целях тестирования невозможно изменить порядок тестирования на A1-A2-A3 ... B1 и т. Д. c.
Пока что мне не повезло найти аннотацию, которую можно использовать для этого. @BeforeGroups и @BeforeTest будут запускаться только один раз (до a1 ()).
Использование TestNG версии 7.0.1.