Параллельное выполнение тестов в TestNG:
Существуют ситуации, когда мы хотим запустить несколько тестов в одном или разных браузерах одновременно. В таких случаях мы можем использовать атрибут «parallel» в testng.xml для выполнения параллельного выполнения теста в TestNG.
Смотреть: кросс-браузерное тестирование в Selenium с использованием BrowserStack
атрибут тега набора может принимать четыре значения:
tests – все тестовые примеры внутри тега <test> файла testng.xml будут запускать параллельные
классы. – Все тестовые примеры внутри класса Java будут выполняться параллельно
методами – Все методы с аннотацией @Test будут выполняться параллельно
< p>экземпляры. Тестовые случаи в одном и том же экземпляре будут выполняться параллельно, но два метода двух разных экземпляров будут выполняться в разных потоках.
давайте посмотрим на пример выполнения параллельного теста в TestNG.
В приведенной ниже программе я использовал два метода. Первый метод открывает драйвер Firefox, переходит на https://www.softwaretestingmaterial.com и закрывает браузер. Второй метод открывает драйвер Chrome и переходит к тому же URL-адресу и закрывает браузер. o-tab-size:4;-webkit-tab-size:4;tab-size:4;размер шрифта:12px!важно;line-height:15px!важно>пакет программного обеспечения TestingMaterial; импортировать org.openqa.selenium.WebDriver; импортировать org.openqa.selenium.chrome.ChromeDriver; импортировать org.openqa.selenium.firefox.FirefoxDriver; импортировать org.testng.annotations.Test; public class ParallelTests { @Test public void getFirefox(){ //System.setProperty("webdriver.gecko.driver", "geckodriver.exe path"); System.setProperty("webdriver.gecko.driver", "D://Selenium Environment//Drivers//geckodriver.exe"); System.out.println("Метод GetFirefox выполняется в потоке: " + Thread.currentThread().getId()); Драйвер WebDriver = новый FirefoxDriver(); driver.get("https://www.softwaretestingmaterial.com"); водитель.закрыть(); } @Test public void getChorme(){ //System.setProperty("webdriver.chrome.driver", "путь chromedriver.exe"); System.setProperty("webdriver.chrome.driver", "D://Selenium Environment//Drivers//chromedriver.exe"); System.out.println("Метод GetChrome выполняется в потоке: " + Thread.currentThread().getId()); Драйвер WebDriver = новый ChromeDriver(); driver.get("https://www.softwaretestingmaterial.com"); водитель.закрыть(); } }
123456789101112131415161718192021222324252627282930 | пакет программного обеспечения TestingMaterial; импорт org.openqa.selenium.WebDriver; импорт org.openqa.selenium.chrome.ChromeDriver; импорт org.openqa.selenium.firefox.FirefoxDriver; импорт org.testng.annotations.Test; public class ParallelTests {@Testpublic void getFirefox(){ //System.setProperty(“webdriver.gecko.driver”, “geckodriver.exe path”); System.setProperty(“webdriver.gecko.driver”, “D://Selenium Environment//Драйверы//geckodriver.exe”); System.out.println(“Метод GetFirefox выполняется в потоке: ” + Thread.currentThread().getId()); Драйвер WebDriver = new FirefoxDriver();driver.get(“https://www.softwaretestingmaterial.com” );driver.close();}@Testpublic void getChorme(){ //System.setProperty(“webdriver.chrome.driver”, “chromedriver.exe path”);System.setProperty(“webdriver.chrome.driver”, “D://Selenium Environment//Drivers//chromedriver.exe”); System.out.println(“Метод GetChrome выполняется в потоке: ” + Thread.currentThread().getId()); Драйвер WebDriver = new ChromeDriver();driver.get(“https://www.softwaretestingmaterial.com” );driver.close();} |
файл testng.xml без упоминания parallel атрибут:
123456789 | <?xml version=”1.0″ encoding=”UTF-8″?><!DOCTYPE suite SYSTEM “http://testng.org/testng-1.0.dtd”><suite name=”softwaretestingmaterial”>< ;test name=”testngTest”><classes><class name=”softwareTestingMaterial.ParallelTests” /></classes></test></suite> |
После запуска testng.xml с использованием вышеуказанного кода вы сначала увидите браузер Firefox в действии, а затем драйвер Chrome в действии.
Чтобы запустить оба браузера параллельно, используйте приведенный ниже код в своем testng. Файл .xml.
123456789 | <?xml version=”1.0″ encoding=”UTF-8″?><!DOCTYPE suite SYSTEM “http://testng.org/testng-1.0.dtd”><suite name=”softwaretestingmaterial” parallel= “methods” thread-count=”2″><имя теста=”testngTest”><классы><имя класса=”softwareTestingMaterial.ParallelTests” /></classes></test></suite > |
Запустив файл testng.xml с помощью приведенного выше кода, вы сможете увидеть работу обоих браузеров одновременно.
Здесь, в приведенном выше файле testng.xml, я передал parallel=methods и thread-count=2 на уровне пакета. Я хотел бы выполнять сценарии селена параллельно в разных потоках. В большинстве случаев эти два метода будут выполняться в разных потоках. Идентификатор потока может меняться при каждом запуске. Здесь мы просто передаем количество потоков, но мы не назначаем идентификатор потока, назначением идентификатора потока занимается ваш системный процессор.
Вы можете найти полный Учебное пособие по TestNG здесь.
Полное руководство по TestNG
Здесь я выбрал несколько сообщений, которые помогут вам узнать больше о том, что связано с собеседованием:
- Вопросы для собеседования с TestNG
- Объясните структуру автоматизации тестирования
- Вопросы для собеседования по платформе автоматизации тестирования
- Вопросы для собеседования по SQL
- Вопросы для собеседования по ручному тестированию
- Вопросы для собеседования по Agile
- Почему вы выбираете тестирование программного обеспечения в качестве карьеры
- Общие вопросы для собеседования< /ul>
Если у вас есть еще вопросы, не стесняйтесь задавать их в комментариях. Если вы считаете этот пост полезным, поделитесь им с друзьями в социальных сетях.
TAG: qa