Выполнение параллельных тестов в среде на основе ключевых слов Selenium
В среде, управляемой данными, мы используем Selenium вместе с TestNG для параллельного запуска нескольких тестов. Как это может быть реализовано в структуре на основе ключевых слов?
В подходе, основанном на данных, мы можем определить каждый тестовый случай как отдельный метод и, следовательно, мы можем командовать TestNG посредством аннотаций, какие методы запускать и сколько запускать параллельно.
В подходе, основанном на ключевых словах, каждый контрольный пример представляет собой отдельный лист Excel, а несколько листов Excel в одной книге составляют набор тестов. Как эти таблицы Excel / контрольные примеры можно аннотировать / ссылать так, чтобы они выполнялись параллельно, аналогично структуре выполнения и процессу в управляемой данными структуре?
Одним из неудачных решений, о котором я думал, был гибридный подход, в котором создавались методы, которые вызывали бы лист Excel.
Например:
@Test
public void TestCase_001() {
// Read the keyword driven test case
// XLS_WorkbookName - The Excel Workbook or Test Suite containing multiple Test Cases
// XLS_SheetName - The Excel Sheet containing set of rows each of which contains ID of element, Operation to be performed and data to be used
ReadAndExecuteTestCase(XLS_WorkbookName_XYZ, XLS_SheetName_ABC);
}
@Test
public void TestCase_002() {
// Read the keyword driven test case
// XLS_WorkbookName - The Excel Workbook or Test Suite containing multiple Test Cases
// XLS_SheetName - The Excel Sheet containing set of rows each of which contains ID of element, Operation to be performed and data to be used
ReadAndExecuteTestCase(XLS_WorkbookName_ABC, XLS_SheetName_XYZ);
}
Я не уверен, что приведенный выше пример является подходящим способом для этого. Запрашивать предложения к тому же. Заранее спасибо.
1 ответ
Одним из решений может быть:
- Иметь основной лист дел для выполнения, который действует как ваша свита.
- Пусть ваш поставщик данных прочитает этот мастер-лист и у вас будет один метод @Test, который принимает аргументы данных тестового набора. Этот тестовый сценарий в основном читает шаги и выполняет что-то вроде вашего метода ReadAnExecureTestCase.
- Сделайте этот поставщик данных параллельным и управляйте с помощью счетчика потоков данных.