Automatizace testování webových aplikací pomocí Selenium je běžné řešení mezi vývojáři automatizovaných testů, a C# je jedním z nejpopulárnějších programovacích jazyků, takže kombinace těchto nástrojů nevzbuzuje žádné otázky. Pro vývoj s využitím těchto technologií se často používá populární proprietární software od Microsoftu pro Windows, ale zajímalo mě, jaké svobodné alternativy lze použít bez odchýlení se od stacku Selenium + C# pro tento úkol.
Jelikož jsem nenašel žádné články v ruštině na toto téma, podělím se o své zkušenosti s nastavením prostředí pro vývoj a ladění automatizovaných testů v C# na Linuxu.
Jako operační systém byla použita Kubuntu 18.04 64-bit s jádrem Linux 4.15.0-99-generic, nainstalovaná z ISO obrazu staženého z . Myslím, že jakákoliv moderní a dostatečně populární distribuce Linuxu bude vyhovovat.
V roli CLR pro C# sloužil Mono JIT kompilátor verze 6.6.0.166. Jeho instalace spočívala v sekvenčním kopírování a provádění příkazů v terminálu (v Kubuntu je to Konsole) s .
A jako IDE byl použit , nainstalovaný obdobně jako Mono.
Selenium podporuje mnoho prohlížečů, ale všechny mě mátly a omezil jsem se pouze na ChromeChromium, nainstaloval jsem .
Dále vytvoříme řešení v MonoDevelop:
- spustíme MonoDevelop
- jdeme do menu "Soubor"
- vybereme "Vytvořit řešení"
- klikneme na ".NET"
- vybereme "Projekt knihovna NUnit" a klikneme na "Další"
- určíme název a cestu řešení, klikneme na "Vytvořit"

Pro ovládání prohlížeče budou potřeba ještě dvě NuGet balíčky:
- jdeme do menu "Projekt" a vybereme "Přidat NuGet balíčky"
- hledáme a instalujeme balíček Selenium.WebDriver
- hledáme a instalujeme balíček Selenium.WebDriver.ChromeDriver

Tak, a to je vlastně vše, zbývá napsat nějaký kód, abychom ověřili, že se vše nastavilo správně. Při vytvoření řešení se automaticky vytvoří soubor pro testovací metody Test.cs, do kterého jsem přidal následující řádky kódu:
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"), "Něco není v pořádku =(");
driver.Quit();
}
}
}Spuštění testu se provádí z karty "Modulární testy", pokud není zobrazená, jdeme do menu "Zobrazit" a vybereme "Test".

Úspěšná automatizace =)
Zdroj: habr.com
