Автоматизация на тестването на уеб приложения с помощта на Selenium разпространено решение сред разработчиците на автоматизирани тестове, и C# един от най-популярните програмни езици, така че комбинацията от тези инструменти не предизвиква въпроси. За разработка с използване на тези технологии, често се използва популярното собствено софтуерно решение от Microsoft за Windows, но ми беше интересно да разбера какви свободни аналози мога да използвам, без да се отклонявам от стека Selenium + C# за тази задача.
Понеже не намерих рускоезични статии по тази тема, ще споделя опита си в настройването на среда за разработка и отстраняване на грешки за автоматизирани тестове на C# в Linux.
Като операционна система използвах Kubuntu 18.04 64-бит с ядро Linux 4.15.0-99-generic, инсталирано от ISO образ, свален от . Смятам, че би подхождал всеки съвременен и достатъчно популярен дистрибутив на Linux.
В ролята на CLR за C# действал Mono JIT компилатор версия 6.6.0.166. Неговата инсталация се състоеше в последователно копиране и изпълнение на команди в терминала (в Kubuntu това е Konsole) от .
А като IDE използвах , инсталиран аналогично на Mono.
Selenium поддържа множество браузъри, но за мен беше мързеливо да му се мъча и се огранича до Chrome’ом, инсталирайки .
След това създаваме решение в 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();
}
}
}Стартирането на теста се извършва от раздела „Модулни тестове“, ако той не е видим, отиваме в менюто „Преглед“ и избираме „Тест“.

Успешна автоматизация =)
Източник: habr.com
