Automatisering van webapplicatietests met behulp van Selenium is een veelgebruikte oplossing onder ontwikkelaars van automatische tests, en C# is een van de populairste programmeertalen, waardoor de combinatie van deze tools geen vragen oproept. Voor ontwikkeling met deze technologieën wordt vaak populaire propriëtaire software van Microsoft voor Windows gebruikt, maar ik was benieuwd welke vrije alternatieven kunnen worden gebruikt zonder af te wijken van de stack Selenium + C# voor deze taak.
Aangezien ik geen Nederlandstalige artikelen over dit onderwerp kon vinden, deel ik mijn ervaring met het instellen van de ontwikkel- en debugomgeving voor automatische tests in C# op Linux.
Als besturingssysteem werd Kubuntu 18.04 64-bit gebruikt met de Linux-kernel 4.15.0-99-generic, geïnstalleerd met een ISO-image, gedownload van . Ik neem aan dat elke moderne en vrij populaire Linux-distributie geschikt is.
De CLR voor C# was de Mono JIT-compiler versie 6.6.0.166. De installatie bestond uit het sequentiëel kopiëren en uitvoeren van opdrachten in de terminal (in Kubuntu is dit Konsole) van .
Als IDE werd gebruikt , geïnstalleerd op dezelfde manier als Mono.
Selenium ondersteunt veel browsers, maar ik had er geen zin in en beperkte me tot Chrome’s, waarbij ik .
Vervolgens maken we een oplossing in MonoDevelop:
- we starten MonoDevelop
- gaan naar het menu ‘Bestand’
- kiezen ‘Nieuwe oplossing’
- drukken op ‘.NET’
- kiezen ‘NUnit-bibliotheekproject’ en klikken op ‘Volgende’
- geven de naam en het pad van de oplossing op, klikken op ‘Maken’

Voor het beheer van de browser zijn nog een paar NuGet-pakketten nodig:
- we gaan naar het menu ‘Project’ en kiezen ‘NuGet-pakketten toevoegen’
- zoeken en installeren het Selenium.WebDriver-pakket
- zoeken en installeren het Selenium.WebDriver.ChromeDriver-pakket

Nou, dat is eigenlijk alles, het enige dat nog resteert is om wat code te schrijven om te controleren of alles correct is ingesteld. Bij het aanmaken van de oplossing wordt automatisch een bestand voor de testmethoden Test.cs aangemaakt, waarin ik de volgende paar regels code heb geplaatst:
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"), "Er klopt iets niet =(");
driver.Quit();
}
}
}Het uitvoeren van de test gebeurt vanuit het tabblad ‘Moduletests’; als deze niet zichtbaar is, gaan we naar het menu ‘Weergave’ en kiezen ‘Test’.

Succesvolle automatisering =)
Bron: habr.com
