Automatyzacja testowania aplikacji internetowych za pomocą Selenium jest popularnym rozwiązaniem wśród twórców testów automatycznych, a C# jest jednym z najpopularniejszych języków programowania, dlatego połączenie tych narzędzi nie budzi wątpliwości. Do rozwoju z użyciem tych technologii często używa się popularnego oprogramowania proprietary od Microsoft dla Windows, jednak byłem ciekaw, jakie możliwe są darmowe odpowiedniki, które można wykorzystać w stosie Selenium + C# do tego zadania.
Ponieważ nie znalazłem artykułów w języku rosyjskim na ten temat, chciałbym podzielić się swoim doświadczeniem w konfigurowaniu środowiska do rozwoju i debugowania testów automatycznych w C# w Linuxie.
Jako system operacyjny używałem Kubuntu 18.04 64-bit z jądrem Linux 4.15.0-99-generic, zainstalowanego z obrazu ISO pobranego z . Uważam, że każdy nowoczesny i wystarczająco popularny dystrybucja Linuxa będzie odpowiednia.
W roli CLR dla C# używałem kompilatora Mono JIT wersji 6.6.0.166. Jego instalacja polegała na kolejnych kopiowaniu i wykonywaniu poleceń w terminalu (w Kubuntu to Konsole) z .
A jako IDE używałem , zainstalowanego podobnie jak Mono.
Selenium obsługuje wiele przeglądarek, ale mi się nie chciało i ograniczyłem się do Chrome’a, instalując .
Następnie tworzymy rozwiązanie w MonoDevelop:
- uruchamiamy MonoDevelop
- przechodzimy do menu „Plik”
- wybieramy „Utwórz rozwiązanie”
- klikamy „.NET”
- wybieramy „Projekt biblioteki NUnit” i klikamy „Dalej”
- podajemy nazwę i ścieżkę rozwiązania, klikamy „Utwórz”

Aby zarządzać przeglądarką, jeszcze potrzebne będą dwa pakiety NuGet:
- przechodzimy do menu „Projekt” i wybieramy „Dodaj pakiety NuGet”
- szukamy i instalujemy pakiet Selenium.WebDriver
- szukamy i instalujemy pakiet Selenium.WebDriver.ChromeDriver

To właściwie wszystko, pozostaje napisać jakiś kod, aby sprawdzić, czy wszystko skonfigurowano poprawnie. Przy tworzeniu rozwiązania automatycznie generuje się plik dla metod testowych Test.cs, do którego dodałem kilka linii kodu:
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"), "Coś poszło nie tak =(");
driver.Quit();
}
}
}Uruchomienie testu odbywa się z zakładki „Testy jednostkowe”, jeśli nie jest wyświetlana, przechodzimy do menu „Widok” i wybieramy „Test”.

Udanej automatyzacji =)
Źródło: habr.com
