Тестирование пользовательского интерфейса с помощью Selenium

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Выполнение тестирования пользовательского интерфейса в рамках конвейера выпуска — отличный способ обнаружения непредвиденных изменений и не требует трудностей. В этом разделе описывается использование Selenium для тестирования веб-сайта во время непрерывного выпуска развертывания и автоматизации тестирования. Особые рекомендации, которые применяются при выполнении тестов пользовательского интерфейса, рассматриваются в рекомендациях по тестированию пользовательского интерфейса.

Обычно вы будете запускать модульные тесты в рабочем процессе сборки и функциональные тесты (пользовательский интерфейс) в рабочем процессе выпуска после развертывания приложения (обычно в среде QA).

Дополнительные сведения об автоматизации браузера Selenium см. в следующем разделе:

Создание тестового проекта

Так как для тестирования Selenium нет шаблона, проще всего приступить к работе с шаблоном модульного теста. Это автоматически добавляет ссылки на платформу тестирования и позволяет запускать и просматривать результаты из теста Visual Studio Обозреватель.

  1. В Visual Studio откройте меню "Файл" и выберите "Создать проект", а затем выберите "Тестовый проект" и выберите "Проект модульного теста". Кроме того, откройте контекстное меню решения и нажмите кнопку "Добавить новый проект", а затем проект модульного теста.

  2. После создания проекта добавьте ссылки на драйвер Selenium и браузер, используемые браузером для выполнения тестов. Откройте контекстное меню проекта модульного теста и выберите пункт "Управление пакетами NuGet". Добавьте в проект следующие пакеты:

    • Selenium.WebDriver
    • Selenium.Firefox.WebDriver
    • Selenium.WebDriver.ChromeDriver
    • Selenium.WebDriver.IEDriver

    Добавление пакетов драйверов браузера в решение

  3. Создайте тесты. Например, следующий код создает класс по умолчанию с именем MySeleniumTests , который выполняет простой тест на веб-сайте Bing.com. Замените содержимое функции TheBingSearchTest кодом Selenium, необходимого для тестирования веб-приложения или веб-сайта. Измените назначение браузера в функции SetupTest на браузер, который вы хотите использовать для теста.

    using System;
    using System.Text;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using OpenQA.Selenium;			
    using OpenQA.Selenium.Firefox;	
    using OpenQA.Selenium.Chrome;	
    using OpenQA.Selenium.IE;
    
    namespace SeleniumBingTests
    {
      /// <summary>
      /// Summary description for MySeleniumTests
      /// </summary>
      [TestClass]
      public class MySeleniumTests
      {
        private TestContext testContextInstance;
        private IWebDriver driver;
        private string appURL;
    
        public MySeleniumTests()
        {
        }
    
        [TestMethod]
        [TestCategory("Chrome")]
        public void TheBingSearchTest()
        {
          driver.Navigate().GoToUrl(appURL + "/");
          driver.FindElement(By.Id("sb_form_q")).SendKeys("Azure Pipelines");
          driver.FindElement(By.Id("sb_form_go")).Click();
          driver.FindElement(By.XPath("//ol[@id='b_results']/li/h2/a/strong[3]")).Click();
          Assert.IsTrue(driver.Title.Contains("Azure Pipelines"), "Verified title of the page");
        }
    
        /// <summary>
        ///Gets or sets the test context which provides
        ///information about and functionality for the current test run.
        ///</summary>
        public TestContext TestContext
        {
          get
          {
            return testContextInstance;
          }
          set
          {
            testContextInstance = value;
          }
        }
    
        [TestInitialize()]
        public void SetupTest()
        {
          appURL = "http://www.bing.com/";
    
          string browser = "Chrome";
          switch(browser)
          {
            case "Chrome":
              driver = new ChromeDriver();
              break;
            case "Firefox":
              driver = new FirefoxDriver();
              break;
            case "IE":
              driver = new InternetExplorerDriver();
              break;
            default:
              driver = new ChromeDriver();
              break;
          }
    
        }
    
        [TestCleanup()]
        public void MyTestCleanup()
        {
          driver.Quit();
        }
      }
    }
    
  4. Запустите тест Selenium локально с помощью тестовой Обозреватель и проверка, которые он работает.

Определение конвейера сборки

Вам потребуется конвейер сборки непрерывной интеграции (CI), который создает тесты Selenium. Дополнительные сведения см. в статье "Создание классического приложения .NET для Windows".

Создание веб-приложения

Для тестирования потребуется веб-приложение. Вы можете использовать существующее приложение или развернуть его в конвейере выпуска непрерывного развертывания (CD). Приведенный выше пример кода выполняет тесты на Bing.com. Дополнительные сведения о настройке собственного конвейера выпуска для развертывания веб-приложения см. в статье "Развертывание в Azure веб-приложения".

Выбор способа развертывания и тестирования приложения

Вы можете развернуть и протестировать приложение с помощью агента, размещенного корпорацией Майкрософт в Azure, или локально размещенного агента, устанавливаемого на целевых серверах.

  • При использовании размещенного корпорацией Майкрософт агента следует использовать веб-драйверы Selenium, предварительно установленные в агентах Windows (агенты с именем Hosted VS 20xx), так как они совместимы с версиями браузера, установленными на образах агента, размещенных корпорацией Майкрософт. Пути к папкам, содержащим эти драйверы, можно получить из переменных среды с именем IEWebDriver (Интернет Обозреватель), ChromeWebDriver (Google Chrome) и GeckoWebDriver (Firefox). Драйверы не предварительно установлены в других агентах, таких как Linux, Ubuntu и macOS. Также см . рекомендации по тестированию пользовательского интерфейса.

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

Включение теста в выпуск

  1. Если у вас нет существующего конвейера выпуска, который развертывает веб-приложение:

    • Откройте страницу "Выпуски" в разделе Azure Pipelines в Azure DevOps или в центре сборки и выпуска в TFS (см. навигацию веб-портала) и выберите + значок, а затем нажмите кнопку "Создать конвейер выпуска".

      Создание конвейера выпуска

    • Выберите шаблон развертывания службы приложение Azure и нажмите кнопку "Применить".

    • В разделе "Артефакты" вкладки "Конвейер" нажмите кнопку "+ Добавить". Выберите артефакты сборки и нажмите кнопку "Добавить".

      Выбор артефактов

    • Щелкните значок триггера непрерывного развертывания в разделе "Артефакты" на вкладке "Конвейер". В области триггера непрерывного развертывания включите триггер, чтобы создать новый выпуск из каждой сборки. Добавьте фильтр для ветвь по умолчанию.

      Настройка непрерывного развертывания

    • Откройте вкладку "Задачи", выберите раздел "Этап 1" и введите сведения о подписке и имя веб-приложения, в котором вы хотите развернуть приложение и тесты. Эти параметры применяются к задаче развертывания приложение Azure Service.

      Настройка переменных

  2. Если вы развертываете приложение и тестируете в средах, где целевые компьютеры, на которых размещены агенты, не установлены Visual Studio:

    • На вкладке "Задачи" конвейера выпуска выберите + значок в разделе "Запуск в агенте". Выберите задачу установщика платформы тестирования Visual Studio и нажмите кнопку "Добавить". Оставьте все параметры значениями по умолчанию.

      Добавление задачи установщика платформы тестирования Visual Studio

      Задачу проще найти с помощью текстового поля поиска.

  3. На вкладке "Задачи" конвейера выпуска выберите + значок в разделе "Запуск в агенте". Выберите задачу "Тест Visual Studio" и нажмите кнопку "Добавить".

    Добавление задачи тестирования Visual Studio

  4. Если вы добавили задачу установщика платформы тестирования Visual Studio в конвейер, измените параметр версии платформы тестирования в разделе "Параметры выполнения" задачи "Тест Visual Studio" на "Установленные установщиком инструментов".

    Настройка версии тестовой платформы

    Разделы справки передать параметры в тестовый код из конвейера сборки?

  5. Сохраните конвейер выпуска и запустите новый выпуск. Для этого можно выполнить очередь новой сборки CI или выбрав команду "Создать выпуск" из раскрывающегося списка "Выпуск" в конвейере выпуска.

    Создание нового выпуска

  6. Чтобы просмотреть результаты теста, откройте сводку о выпуске на странице "Выпуски " и выберите ссылку "Тесты ".

Следующие шаги