Pull to refresh

Selenium тесты на C# в Linux

Reading time2 min
Views16K
Автоматизация тестирования веб-приложений с помощью Selenium распространённое решение среди разработчиков автотестов, а C# один из самых популярных языков программирования, поэтому сочетание этих инструментов не вызывает вопросов. Для разработки с использованием этих технологий, зачастую используется популярное проприетарное ПО от Microsoft для Windows, однако мне было интересно узнать какие свободные аналоги можно использовать не отходя от стека Selenium + C# для данной задачи.

Так как русскоязычных статей на эту тему я не нашёл, то поделюсь своим опытом настройки среды для разработки и отладки автотестов на C# в Linux.

В качестве ОС использовалась Kubuntu 18.04 64-bit с ядром Linux 4.15.0-99-generic, установленная с ISO-образа, скаченного с официального сайта. Полагаю подойдёт любой современный и достаточно популярный дистрибутив Linux.

В роли CLR для C# выступал Mono JIT компилятор версии 6.6.0.166. Его установка заключалась в последовательном копировании и выполнении команд в терминал(в Kubuntu это Konsole) с этой страницы.

А в качестве IDE использовался MonoDevelop 7.8.4 (build 2), установленный аналогично Mono.

Selenium поддерживает множество браузеров, но все мне было мучить лень и я ограничился Chrome’ом, установив 64-bit .deb пакет.

Далее создаем решение в MonoDevelop:

  • запускаем MonoDevelop
  • заходим в меню «Файл»
  • выбираем «Создать решение»
  • нажимаем «.NET»
  • выбираем «Проект библиотеки NUnit» и жмём «Далее»
  • указываем название и путь решения, жмём «Создать»



Для управления браузером ещё потребуются пара пакетов NuGet:

  • идём в меню «Проект» и выбираем «Добавить пакеты NuGet»
  • ищем и устанавливаем пакет Selenium.WebDriver
  • ищем и устанавливаем пакет Selenium.WebDriver.ChromeDriver



Вот, собственно, и всё, осталось написать какой-нибудь код, чтобы проверить, что всё настроилось как надо. При создании решения, автоматически создаётся файл для тестовых методов Test.cs, в него я положил следующие несколько строк кода:

using NUnit.Framework;
using System;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;

namespace SeleniumTests
{
    [TestFixture()]
    public class Test
    {
        [Test()]
        public void TestCase()
        {
            IWebDriver driver = new ChromeDriver();
            driver.Navigate().GoToUrl("http://habr.com/");
            Assert.IsTrue(driver.Url.Contains("habr.com"), "Что-то не так =(");
            driver.Quit();
        }
    }
}

Запуск теста осуществляется из вкладки «Модульные тесты», если она не отображается, идем в меню «Просмотреть» и выбираем «Тест».



Успешной автоматизации =)
Tags:
Hubs:
+2
Comments17

Articles