Selenium-tests på C# i Linux

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 den officielle hjemmeside. 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 denne side.

Og som IDE blev der brugt MonoDevelop 7.8.4 (build 2), 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 64-bit .deb-pakken.

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'

Selenium-tests på C# i Linux

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

Selenium-tests på C# i Linux

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".

Selenium-tests på C# i Linux

Held og lykke med automatiseringen =)

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster