Автоматизация на тестовете на уеб приложения с помощта на 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 използвах , инсталиран по аналогичен начин на 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
