Automatisering af webapplikationstest ved hjælp af Selenium er en populær løsning blandt udviklere af automatiserede tests, og C# er et af de mest populære programmeringssprog, så kombinationen af disse værktøjer vækker ikke undren. Til udvikling med disse teknologier bruges der ofte populær proprietær software fra Microsoft til Windows, men jeg var interesseret i at finde ud af, hvilke frie alternativer man kan benytte uden at forlade stakken af Selenium + C# til denne opgave.
Da jeg ikke fandt nogen artikler på russisk om dette emne, vil jeg dele mine erfaringer med opsætning af miljøet til udvikling og debug af automatiserede tests på C# i Linux.
Som operativsystem blev Kubuntu 18.04 64-bit med Linux-kerne 4.15.0-99-generic brugt, installeret fra et ISO-billede, der blev downloadet fra . Jeg antager, at enhver moderne og ganske populær Linux-distribution vil fungere.
Mono JIT-kompilatoren version 6.6.0.166 fungerede som CLR for C#. Dens installation bestod i sekventielt at kopiere og udføre kommandoer i terminalen (i Kubuntu er dette Konsole) fra .
Og som IDE blev der brugt , installeret på samme måde som Mono.
Selenium understøtter mange browsere, men jeg magtede ikke at prøve dem alle og begrænsede mig til Chrome'en, installerede .
Dernæst opretter vi et projekt i MonoDevelop:
- åbner MonoDevelop
- går ind i menuen 'Fil'
- vælger 'Opret projekt'
- trykker på '.NET'
- vælger 'NUnit bibliotek projekt' og trykker 'Næste'
- angiver navn og sti for projektet, trykker 'Opret'

For at styre browseren kræves der også et par NuGet-pakker:
- går ind i menuen 'Projekt' og vælger 'Tilføj NuGet-pakker'
- søger og installerer pakken Selenium.WebDriver
- søger og installerer pakken Selenium.WebDriver.ChromeDriver

Og det var det, nu er der kun tilbage at skrive noget kode for at kontrollere, at alt er konfigureret korrekt. Når projektet oprettes, bliver der automatisk genereret en fil til testmetoderne Test.cs, hvor jeg har lagt følgende par linjer kode:
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"), "Noget er galt =(");
driver.Quit();
}
}
}Testen startes fra fanen "Modultests", hvis den ikke vises, går vi til menuen "Vis" og vælger "Test".

Held og lykke med automatiseringen =)
Kilde: habr.com
