Automatizarea testării aplicațiilor web folosind Selenium o soluție populară printre dezvoltatorii de teste automate, iar C# este unul dintre cele mai populare limbaje de programare, așa că combinația acestor instrumente nu ridică întrebări. Pentru dezvoltarea folosind aceste tehnologii, adesea se utilizează software proprietar popular de la Microsoft pentru Windows, însă am fost curios să văd ce alternative gratuite pot fi folosite fără a ne abate de la stiva Selenium + C# pentru această sarcină.
Deoarece nu am găsit articole în limba rusă pe acest subiect, vreau să împărtășesc experiența mea de setare a mediului pentru dezvoltarea și depanarea testelor automate pe C# în Linux.
Ca sistem de operare am folosit Kubuntu 18.04 64-bit cu nucleul Linux 4.15.0-99-generic, instalat de pe imaginea ISO descărcată de pe . Cred că se va potrivi orice distribuție Linux modernă și suficient de populară.
În rolul CLR pentru C# a fost utilizat compilatorul JIT Mono versiunea 6.6.0.166. Instalarea sa a constat în copierea și executarea secvențială a comenzilor în terminal (în Kubuntu este Konsole) de pe .
Iar ca IDE am folosit , instalat similar cu Mono.
Selenium suportă numeroase browsere, dar mi-a fost lene să le instalez pe toate și m-am limitat la Chrome’, instalând .
Apoi creăm soluția în MonoDevelop:
- lansăm MonoDevelop
- intrăm în meniul „Fișier”
- alegem „Creare soluție”
- apăsăm „.NET”
- alegem „Proiect bibliotecă NUnit” și clic pe „Următorul”
- indicăm numele și calea soluției, clic pe „Creare”

Pentru gestionarea browserului, mai sunt necesare câteva pachete NuGet:
- mergem în meniul „Proiect” și alegem „Adaugă pachete NuGet”
- căutăm și instalăm pachetul Selenium.WebDriver
- căutăm și instalăm pachetul Selenium.WebDriver.ChromeDriver

Iată, practic, și totul, rămâne să scriem un cod pentru a verifica dacă totul s-a configurat corect. La crearea soluției, se generează automat un fișier pentru metodele de test Test.cs, în care am adăugat următoarele câteva rânduri de cod:
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"), "Ceva nu este în regulă =(");
driver.Quit();
}
}
}Testul se lansează din tab-ul „Teste modulare”, dacă acesta nu este vizibil, mergem în meniul „Vizualizare” și selectăm „Test”.

Automatizare de succes =)
Sursa: habr.com
