Учебники

24) Введение в TestNG Groups

TestNG — это инфраструктура тестирования , охватывающая различные типы проектов тестирования, такие как модульные, функциональные, сквозные, пользовательский интерфейс и интеграционные тесты.

Вы можете запустить один или несколько пакетов (под пакетом здесь подразумевается инкапсуляция группы классов в правильном формате директора), создав XML и запустив его через maven.

В этом уроке вы узнаете

TestNG группы с примером

Мы используем группы в Testng, когда,

  • Мы не хотим определять методы тестирования отдельно в разных классах (в зависимости от функциональности) и
  • В то же время хотите игнорировать (не выполнять) некоторые контрольные примеры, как будто их нет в коде.
  • Таким образом, чтобы осуществить это, мы должны сгруппировать их. Это делается с помощью механизмов «include» и «exclude», поддерживаемых в testNG.

В приведенном ниже примере мы показали синтаксис использования групп в файле XML.

@Test (groups = { "bonding", "strong_ties" })	

Здесь мы используем 2 имени группы, то есть «bonding» и «strong_ties» (это логические имена, которые могут быть изменены по вашему желанию).

Тег <groups> определяет начало групп в XML.

Настройте свой XML, чтобы выбрать упомянутую группу из тестовых классов. Ниже приведен синтаксис объявления групп в файле XML, например:

 <groups>		
   <run>		
    <include name="bonding" />		
   </run>		
  </groups>		

Итак, предположим, что в классе есть 10 методов тестирования.

Из них,

  • 6 методов помечены в группе «склеивание» и
  • 4 в группе «strong_ties»

В дальнейшем мы собираемся установить путь maven / Java и использовать Eclipse IDE, чтобы продемонстрировать использование групп, использующих файлы XML, в проекте maven на основе Java .

Установите maven и путь Java в переменной среды (для пользователя windows)

Пожалуйста, обратитесь https://www.guru99.com/maven-jenkins-with-selenium-complete-tutorial.html

https://www.guru99.com/install-java.html

Введение в XML и как сделать файлы XML

  • Файл XML (расширяемый язык разметки) в среде Maven содержит информацию об одном или нескольких тестах и ​​определяется тегом <suite> .
  • Тестовая информация в XML представлена тегом <test> и может содержать один или несколько классов TestNG.
  • Класс Java, который содержит аннотацию @Test выше тестовых методов, определяется как методы TestNG.

Несколько тегов используются в последовательности для создания рабочего testNG XML, такого как <suite>, <test> и <class>

  • Во-первых, это тег <suite>, который содержит логическое имя, которое определяет полную информацию для testNG, о которой сообщается для генерации отчета о выполнении.
  • Во-вторых, <test name = «Guru 99 Smoke Test Demo»>, обратите внимание, что это логическое имя, которое содержит информацию отчета о выполнении теста, такую ​​как прохождение, неудача, пропуск тестовых случаев и другую информацию, такую ​​как общее время выполнения и информацию о группе
  • В-третьих, <class name = » com.group.guru99.TC_Class1 » />, com.group.guru99 — используемый пакет, а имя тестового класса — TC_Class1.
<?xml version="1.0" encoding="UTF-8" ?>	
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">	
 	<suite name="Suite">	
		<test name="Guru 99 Smoke Test Demo">	
			<groups>	
				<run>	
   					 <include name="strong_ties" />	
        		</run>	
       		</groups>	
			<classes>	
					<class name="com.group.guru99.TC_Class1" />	
           	</classes>	
		</test>	
  </suite>	

Мы будем использовать этот XML для будущего видео.

Другой механизм вместо группировки — «исключить» или «включить» в тестовом XML

Предположим, вы обнаружите использование комплекса групповых механизмов, а testNG XML упростит функциональность для исключения / включения теста.

Exclude Tag:  Syntax for exclude tag <exclude name="${TEST_CASE_NAME}" />
Include Tag:  Syntax for include tag <include name="${TEST_CASE_NAME}" />

Примечание. Мы можем включать / исключать несколько тестовых примеров по одному, и это также работает с группами.

Как запустить код с использованием файла XML (видео-демонстрация)

Объяснение кода Java и XML с группой, исключить и включить тег в XML.

Примечание . Каждый шаг, который вы кодируете, должен быть объявлен в отдельных методах, но при выполнении он будет выполнять тестовые методы в зависимости от записей в файле XML.

Способ 1. Инициализируйте браузер и запустите URL-адрес (tc01LaunchURL ())

Способ 2. Проверка заголовка страницы входа (tc02VerifyLaunchPage ())

Способ 3 : введите имя пользователя и пароль в форме входа (tc03EnterCredentials ())

Способ 4. Проверьте наличие идентификатора диспетчера на панели пользователя (tc04VerifyLoggedInPage ())

Способ 5 : проверьте еще несколько ссылок на панели пользователя (tc05VerifyHyperlinks ())

Код для нашего сценария:

package com.group.guru99;	

import java.util.concurrent.TimeUnit;	

import org.openqa.selenium.By;	
import org.openqa.selenium.WebDriver;	
import org.openqa.selenium.firefox.FirefoxDriver;	
import org.testng.Assert;	
import org.testng.annotations.Test;	

public class TC_Class1 {	
    public static final WebDriver webDriver = new FirefoxDriver();;	

    String launchPageHeading = "//h3[text()='Guru99 Bank']";	
    final String userName_element = "//input[@name='uid']", password_element = "//input[@name='password']",	
            signIn_element = "//input[@name='btnLogin']";	
    final String userName_value = "mngr28642", password_value = "ydAnate";	
    final String managerID = "//td[contains(text(),'Manger Id')]";	
    final String newCustomer = "//a[@href='addcustomerpage.php']", fundTransfer = "//a[@href='FundTransInput.php']";	

    /**	
     * This test case will initialize the webDriver	
     */	
    @Test(groups = { "bonding", "strong_ties" })	
    public void tc01LaunchURL() {	
        webDriver.manage().window().maximize();	
        webDriver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);	
        webDriver.get("http://www.demo.guru99.com/V4/");	
    }	

    /**	
     * Will check the presence of Heading on Login Page	
     */	
    @Test(groups = { "bonding" })	
    public void tc02VerifyLaunchPage() {	
        Assert.assertTrue(webDriver.findElement(By.xpath(launchPageHeading)).isDisplayed(),	
                "Home Page heading is not displayed");	
        System.out.println("Home Page heading is displayed");	
    }	

    /**	
     * This test case will enter User name, password and will then click on	
     * signIn button	
     */	
    @Test(groups = { "bonding", "strong_ties" })	
    public void tc03EnterCredentials() {	
        webDriver.findElement(By.xpath(userName_element)).sendKeys(userName_value);	
        webDriver.findElement(By.xpath(password_element)).sendKeys(password_value);	
        webDriver.findElement(By.xpath(signIn_element)).click();	
    }	

    /**	
     * This test case will verify manger's ID presence on DashBoard	
     */	
    @Test(groups = { "strong_ties" })	
    public void tc04VerifyLoggedInPage() {	
        Assert.assertTrue(webDriver.findElement(By.xpath(managerID)).isDisplayed(),	
                "Manager ID label is not displayed");	
        System.out.println("Manger Id label is displayed");	
    }	

    /**	
     * This test case will check the presence of presence of New customer link	
     * And FundTransfer link in Left pannel	
     */	
    @Test(groups = { "bonding" })	
    public void tc05VerifyHyperlinks() {	
        Assert.assertTrue(webDriver.findElement(By.xpath(newCustomer)).isEnabled(),	
                "New customer hyperlink is not displayed");	
        System.out.println("New customer hyperlink is displayed");	

        Assert.assertTrue(webDriver.findElement(By.xpath(fundTransfer)).isEnabled(),	
                "Fund Transfer hyperlink is not displayed");	
        System.out.println("Fund Transfer hyperlink is displayed");	
    }	

}	

Обратите внимание: учетные данные действительны только в течение 20 дней, поэтому, если вы пытаетесь запустить код на локальном компьютере, вы можете столкнуться с ошибкой неверных учетных данных. Пожалуйста, найдите ниже шаги для создания ваших учетных данных:

  1. Запустите http://www.demo.guru99.com
  2. Введите свой адрес электронной почты в поле.
  3. Нажмите ввод и увидите ваши данные для входа на экране.

Объяснение кода:

Как уже упоминалось выше, мы создали 5 тестовых случаев для выполнения каждого действия в независимых методах.

Вы можете заметить, что с каждым методом мы связали групповой параметр, содержащий некоторое значение в нем.

По сути, это название дифференцирующих групп, т. Е. «Strong_ties» и «bonding».

  • Первый и третий методы помечены как «bonding», «strong_ties», что означает, что если XML обновлен в какой-либо группе, этот тестовый пример будет запущен.
  • Второй метод помечается только как «связывающая» группа, это означает, что если XML обновляется связующей группой. Только в этом случае этот тест будет выполнен.
  • Четвертый контрольный пример помечен для группы strong_ties, что означает, что этот контрольный пример будет выполняться только в том случае, если XML обновлен с именем группы strong_ties.
  • Последний, но не менее пятый контрольный пример присоединяется к группе связывания, что означает, что этот тестовый пример будет выполняться только в том случае, если XML обновляется с именем группы связи.

Итак, в целом у нас есть 4 сценария;

  1. Мы хотим запустить все тестовые случаи независимо от имени группы. В этом случае мы удалим тег Group из запущенного XML.
  1. Мы хотим запустить несколько тестов, которые относятся только к одной из групп, т.е.
  • Пожалуйста, обратитесь:

  • В этом видео параметр Group комментируется при запуске XML. Следовательно, вы увидите, что все тесты были выполнены.
  • В продолжение видео, теперь мы включили имя группы в XML, вы можете увидеть только те тестовые случаи, которые относятся только к этой группе.
  1. Мы используем механизм исключения, чтобы исключить контрольный пример:
  • Пожалуйста, обратитесь

  • Вы видите, что мы использовали исключить несколько тестовых случаев (tc02), написав их имя в запущенном XML. В конечном итоге упомянутые тестовые примеры не выполнялись.
  1. Наконец, мы используем механизм включения теста для включения тестовых случаев (tc01LaunchURL, tc03EnterCredentials и tc05VerifyHyperlinks)
  • Пожалуйста, обратитесь

  • В этом видео вы увидите, что тестовые случаи, упомянутые в XML, выполняются только во время выполнения теста.

Пожалуйста, загрузите код с указанного URL, он будет содержать все типы testXML:

Загрузите вышеуказанный код

Вывод

Мы узнали здесь относительно новый способ запуска тестовых случаев с использованием XML в проекте Maven.

Мы начали с краткого введения в testNG и продолжили с полной технической спецификацией групп, исключая и включая.