Automatizácia testovania webových aplikácií pomocou Selenium rozšírené riešenie medzi vývojármi automatizovaných testov, a C# jeden z najpopulárnejších programovacích jazykov, preto kombinácia týchto nástrojov nevytvára otázky. Na vývoj s využitím týchto technológií sa často používa populárny proprietárny softvér od Microsoftu pre Windows, avšak zaujímalo ma, aké voľné alternatívy je možné použiť bez odchodu od stacku Selenium + C# pre túto úlohu.
Keďže som nenašiel žiadne články v ruštine na túto tému, podelím sa o svoju skúsenosť s nastavením prostredia pre vývoj a ladenie automatizovaných testov na C# v Linuxe.
Ako operačný systém bola použitá Kubuntu 18.04 64-bit s jadrom Linux 4.15.0-99-generic, nainštalovaná z ISO obrazu, stiahnutého z . Predpokladám, že akýkoľvek moderný a dosť populárny distribúcia Linuxu bude vyhovovať.
V úlohe CLR pre C# fungoval Mono JIT kompilátor verzie 6.6.0.166. Jeho inštalácia spočívala v postupnom kopírovaní a vykonávaní príkazov v termináli (v Kubuntu je to Konsole) z .
A ako IDE bol použitý , nainštalovaný podobne ako Mono.
Selenium podporuje množstvo prehliadačov, ale mne sa nechcelo trápiť a obmedzil som sa na Chrome’om, nainštaloval som .
Potom vytvoríme riešenie v MonoDevelop:
- spustíme MonoDevelop
- prejdeme do menu „Súbor“
- vyberieme „Vytvoriť riešenie“
- klikneme na „.NET“
- vyberieme „Projekt knižnice NUnit“ a klikneme na „Ďalej“
- určíme názov a cestu riešenia, klikneme na „Vytvoriť“

Na správu prehliadača budú potrebné aj dve NuGet balíčky:
- prejdeme do menu „Projekt“ a vyberieme „Pridať NuGet balíčky“
- hľadáme a inštalujeme balík Selenium.WebDriver
- hľadáme a inštalujeme balík Selenium.WebDriver.ChromeDriver

No, vlastne to je všetko, zostáva napísať nejaký kód, aby sme skontrolovali, či je všetko nastavené správne. Pri vytváraní riešenia sa automaticky vytvorí súbor pre testovacie metódy Test.cs, do ktorého som vložil niekoľko riadkov 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"), "Niečo nie je v poriadku =(");
driver.Quit();
}
}
}Spustenie testu sa vykonáva z karty „Modulárne testy“, ak sa nezobrazuje, ideme do menu „Zobraziť“ a vyberáme „Test“.

Úspešná automatizácia =)
Zdroj: habr.com
